linux/drivers/pinctrl/pinctrl-tegra.c
<<
>>
Prefs
   1/*
   2 * Driver for the NVIDIA Tegra pinmux
   3 *
   4 * Copyright (c) 2011-2012, NVIDIA CORPORATION.  All rights reserved.
   5 *
   6 * Derived from code:
   7 * Copyright (C) 2010 Google, Inc.
   8 * Copyright (C) 2010 NVIDIA Corporation
   9 * Copyright (C) 2009-2011 ST-Ericsson AB
  10 *
  11 * This program is free software; you can redistribute it and/or modify it
  12 * under the terms and conditions of the GNU General Public License,
  13 * version 2, as published by the Free Software Foundation.
  14 *
  15 * This program is distributed in the hope it will be useful, but WITHOUT
  16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  17 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  18 * more details.
  19 */
  20
  21#include <linux/err.h>
  22#include <linux/init.h>
  23#include <linux/io.h>
  24#include <linux/module.h>
  25#include <linux/of.h>
  26#include <linux/platform_device.h>
  27#include <linux/pinctrl/machine.h>
  28#include <linux/pinctrl/pinctrl.h>
  29#include <linux/pinctrl/pinmux.h>
  30#include <linux/pinctrl/pinconf.h>
  31#include <linux/slab.h>
  32
  33#include "core.h"
  34#include "pinctrl-tegra.h"
  35
  36struct tegra_pmx {
  37        struct device *dev;
  38        struct pinctrl_dev *pctl;
  39
  40        const struct tegra_pinctrl_soc_data *soc;
  41
  42        int nbanks;
  43        void __iomem **regs;
  44};
  45
  46static inline u32 pmx_readl(struct tegra_pmx *pmx, u32 bank, u32 reg)
  47{
  48        return readl(pmx->regs[bank] + reg);
  49}
  50
  51static inline void pmx_writel(struct tegra_pmx *pmx, u32 val, u32 bank, u32 reg)
  52{
  53        writel(val, pmx->regs[bank] + reg);
  54}
  55
  56static int tegra_pinctrl_get_groups_count(struct pinctrl_dev *pctldev)
  57{
  58        struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
  59
  60        return pmx->soc->ngroups;
  61}
  62
  63static const char *tegra_pinctrl_get_group_name(struct pinctrl_dev *pctldev,
  64                                                unsigned group)
  65{
  66        struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
  67
  68        return pmx->soc->groups[group].name;
  69}
  70
  71static int tegra_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
  72                                        unsigned group,
  73                                        const unsigned **pins,
  74                                        unsigned *num_pins)
  75{
  76        struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
  77
  78        *pins = pmx->soc->groups[group].pins;
  79        *num_pins = pmx->soc->groups[group].npins;
  80
  81        return 0;
  82}
  83
  84#ifdef CONFIG_DEBUG_FS
  85static void tegra_pinctrl_pin_dbg_show(struct pinctrl_dev *pctldev,
  86                                       struct seq_file *s,
  87                                       unsigned offset)
  88{
  89        seq_printf(s, " %s", dev_name(pctldev->dev));
  90}
  91#endif
  92
  93static int reserve_map(struct device *dev, struct pinctrl_map **map,
  94                       unsigned *reserved_maps, unsigned *num_maps,
  95                       unsigned reserve)
  96{
  97        unsigned old_num = *reserved_maps;
  98        unsigned new_num = *num_maps + reserve;
  99        struct pinctrl_map *new_map;
 100
 101        if (old_num >= new_num)
 102                return 0;
 103
 104        new_map = krealloc(*map, sizeof(*new_map) * new_num, GFP_KERNEL);
 105        if (!new_map) {
 106                dev_err(dev, "krealloc(map) failed\n");
 107                return -ENOMEM;
 108        }
 109
 110        memset(new_map + old_num, 0, (new_num - old_num) * sizeof(*new_map));
 111
 112        *map = new_map;
 113        *reserved_maps = new_num;
 114
 115        return 0;
 116}
 117
 118static int add_map_mux(struct pinctrl_map **map, unsigned *reserved_maps,
 119                       unsigned *num_maps, const char *group,
 120                       const char *function)
 121{
 122        if (WARN_ON(*num_maps == *reserved_maps))
 123                return -ENOSPC;
 124
 125        (*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
 126        (*map)[*num_maps].data.mux.group = group;
 127        (*map)[*num_maps].data.mux.function = function;
 128        (*num_maps)++;
 129
 130        return 0;
 131}
 132
 133static int add_map_configs(struct device *dev, struct pinctrl_map **map,
 134                           unsigned *reserved_maps, unsigned *num_maps,
 135                           const char *group, unsigned long *configs,
 136                           unsigned num_configs)
 137{
 138        unsigned long *dup_configs;
 139
 140        if (WARN_ON(*num_maps == *reserved_maps))
 141                return -ENOSPC;
 142
 143        dup_configs = kmemdup(configs, num_configs * sizeof(*dup_configs),
 144                              GFP_KERNEL);
 145        if (!dup_configs) {
 146                dev_err(dev, "kmemdup(configs) failed\n");
 147                return -ENOMEM;
 148        }
 149
 150        (*map)[*num_maps].type = PIN_MAP_TYPE_CONFIGS_GROUP;
 151        (*map)[*num_maps].data.configs.group_or_pin = group;
 152        (*map)[*num_maps].data.configs.configs = dup_configs;
 153        (*map)[*num_maps].data.configs.num_configs = num_configs;
 154        (*num_maps)++;
 155
 156        return 0;
 157}
 158
 159static int add_config(struct device *dev, unsigned long **configs,
 160                      unsigned *num_configs, unsigned long config)
 161{
 162        unsigned old_num = *num_configs;
 163        unsigned new_num = old_num + 1;
 164        unsigned long *new_configs;
 165
 166        new_configs = krealloc(*configs, sizeof(*new_configs) * new_num,
 167                               GFP_KERNEL);
 168        if (!new_configs) {
 169                dev_err(dev, "krealloc(configs) failed\n");
 170                return -ENOMEM;
 171        }
 172
 173        new_configs[old_num] = config;
 174
 175        *configs = new_configs;
 176        *num_configs = new_num;
 177
 178        return 0;
 179}
 180
 181void tegra_pinctrl_dt_free_map(struct pinctrl_dev *pctldev,
 182                               struct pinctrl_map *map, unsigned num_maps)
 183{
 184        int i;
 185
 186        for (i = 0; i < num_maps; i++)
 187                if (map[i].type == PIN_MAP_TYPE_CONFIGS_GROUP)
 188                        kfree(map[i].data.configs.configs);
 189
 190        kfree(map);
 191}
 192
 193static const struct cfg_param {
 194        const char *property;
 195        enum tegra_pinconf_param param;
tegr30D23 >.] > {
      {, &quonvidia,pull;s"                  PE_CO_PARAM_PULNEL" class="srefTEGRA_">PE_CO_PARAM_PULNegr30a>,
      {, &quonvidia,"sta>ste;s"              PE_CO_PARAM_TRISTATEEL" class="srefTEGRA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elable-2ers/pinctamec
PE_CO_PARAM_TRISTATEEL" class=" nABLE_INPUTA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,"sta>ste;/pinctamec
PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,pull;s"                  PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elable-2ersquot;                  PE_CO_PARAM_TRISTATEEL" class="IORESETA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elable-2;                  PE_CO_PARAM_TRISTATEEL" class="HIGH_SPEED_MODRA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elable-2ersquot2;                  PE_CO_PARAM_TRISTATEEL" class="SCHMITTA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elable-2t;                  PE_CO_PARAM_TRISTATEEL" class="LOW_POWER_MODRA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elabl;                  PE_CO_PARAM_TRISTATEEL" class="DRIVE_DOWN_STRENGTHA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elablbl;                  PE_CO_PARAM_TRISTATEEL" class="DRIVE_UP_STRENGTHA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elablb;                  PE_CO_PARAM_TRISTATEEL" class="SLEW_REGR_FALLINGA_">PE_CO_PARAM_TRISTATEegr30a>,
      {, &quonvidia,elablbb;                  PE_CO_PARAM_TRISTATEEL" class="SLEW_REGR_refINGA_">PE_CO_PARAM_TRISTATEegr30a>,
  44};
 111
  71static int add_config(struct device * 111
add_config(st_ndna> = map,
  74                                    struct pinctrl_map **map,
 135          ap" class="sref">map, unsigned *reserved_maps,
  86          "sref">reserved_maps, unsigned *)
 137{
  93st      co       int i;
                       const char *i;
 190 190(i;
num_configs, unsigned long i;
group, unsigned long *num_conNcodTEGRA_">PE_CO_PNrefTEGRcode=i" class="sref">i;
 163       >        * 178        return 0;
map, unsign href="+code=reserved_TEGRcode=i" class="sref">i;
        constr *i;
i;
 177
  93st      new_f_de=prope_read_        = dev, &quonvidia,ela&ass="sref">pctldonst char *i;
 187         st      new_configs) {
/* EINVAL=mis=c#g, which is fc#L =c#ce it's opunctal */vidia,e="sref">new_configs) {
 187         st                    INVAL     )
 182add_config        dev_err(dev, );
pctldonst char *num_conNcodTEGRA_">PE_CO_PNrefTEGRcode=i" class="sref">i;
 191}
 191}
 186        for (i = 0; ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" class="sref">d">tegr30D23 >.num_maps; new_configs) {
  93st      new_f_de=prope_read_unctrl-tegraf="+co_f_de=prope_read_unc=kfree" class="sref"na> = tegr30D23 >.map[pctldwritel( 168  st      new_configs) {
 16088="L93">  93igned long new_TRISTATEEL" claCKif (" class="sref">d">tegr30D23 >.map[);
  93st      newstatic int dev_err(pctldalloc(*pctld unsigned *  93igned long  182 187         st      );
  93exi      i;
/* EINVAL=mis=c#g, which is fc#L =c#ce it's opunctal */vidia,e="sref">new_configs) {
 187         st                    INVAL     new_configs) {
  93           dev_err(dev, )
  93">tegr30D23 >.map[);
 191}
 191}
 180
map, unsign href="+code=reserved_TEGRass8"> 178        return 0;
 122 onst char *num_conNcodTEGRA_">PE_CO_PNrefTEGRas) failed\n");
map, unsign href="+code=reserved_TEGRclass="sref">num_maps)++;
 122   unsigned num_configs)
map, unsign href="+code=reserved_TEGRclass="sref">num_maps)++;
 166new_f_de=prope_count_    = dev, );
 122 st      new_configs) {
  93           dev_err(dev, );
  93exi      i;
 191}
map, unsign href="+code=reserved_TEGRa* class="sref">newst      i;
 192
 173newserved_uct dev_err(pinctrl_map **newserved_ed *, unsigned *newserved_ href="+code=reserved_TEGRigs) failed\n");
 122 st      );
  93exi      i;
 191}
new_f_de=prope_for_each_        = dev, newonstr *newonst char *new_configs) {
 122 onst char *new_configs) {
 173newstatic int pinctrl_map **newserved_ed *, unsigned *new_configs) {
newonst char *i;
 122 st      );
 182     5gotos="L93">  93exi      i;
 191}
 174
 122   unsigned new_configs) {
  93st      newstatic int dev_err(pinctrl_map **newserved_ed *new_configs) {
  93 unsigned *newonst char *configs,
 188  93 unssigned i;
 122 st      );
  93exi      i;
 191}
 191}
 191}
  93st       178        return 0;
 185
  93exi       185
new/a>        .configs);
newst      i;
 179}
 180
  71static int add_configpinctrl_dev *pctldev,
 182     5aass="sref">add_config(st_ndnatic int pctldev,
add_configpinctrl_map **reserved_maps, unsigned *)
new_configs) {
map, unsigned *i;
add_config(st_ndna> = i;
  93st      i;
 158
map, unsigned * 178        return 0;
pinctrl_map **num_conNcodTEGRA_">PE_CO_PNrefTEGRcode=i" class="sref">i;
, unsigned * 178        return 0;
 192
 173  93 a> = new_configs) {
pctldst      newstatic int pinctrl_dev *pctldev_err(pinctrlna> = map,
 135                            &ass="sref">pctldserved_ed *, unsigned *configs);
 122 st      new_configs) {
newstatic int tegrs="sref">pinctrl_dev *pinctrl_map *configs);
 188newst      i;
 179}
 191}
 111
 178        return 0;
 191}
 174
add_confignewstatic int new_configs) {
coet_+codes_countchar *newstatic int map,
coet_+code_7" ichar *newstatic int map,
coet_+code_
newstatic int map,
newclass=_DEBUG_FSchar * 174
newstatic int map,
map,
newstatic int map,
teg" class="sref">newstatic int teg=map" class="sref">map,
  44};
 185
 159static int add_configpinctrl_dev * 137{
add_configpinctrlm newpinctrl_dev oet_drvef">i].>tegrs="sref">pinctrl_dev *configs);
 189
newlm pctldsa> = pctldnde=functed *i;
 191}
 192
add_configpinctrl_dev *pctldev,
map,onst char *pctldev,
 137{
add_configpinctrlm newpinctrl_dev oet_drvef">i].>tegrs="sref">pinctrl_dev *configs);
 177
newlm pctldsa> = pctldde=functed *configs);
 179}
 180
 159static int add_configpinctrl_dev *pctldev,
 182map,onst char *pctldev,
pinctrl+codeschar *pctldev,
 182, uns+codeschar *pctldev,
 137{
add_configpinctrlm newpinctrl_dev oet_drvef">i].>tegrs="sref">pinctrl_dev * 137{
 177
pinctrl+codeschar *newpm pctldsa> = pctldde=functed * 137{
, uns+codeschar *newpm pctldsa> = pctldde=functed * 137{
 180
 178        return 0;
 179}
 191}
 159static int add_configpinctrl_dev *map,onst char *pctldev,
pctldev,
 137{
add_configpinctrlm newpinctrl_dev oet_drvef">i].>tegrs="sref">pinctrl_dev * 137{
 193static costatic in+codechar *pinctrt i;
 159       int i;
 159unctrl-tegraf="+coulass="ame="L190"> 190(i;
 111
 159t pctldpm pctldsa> = pctld+codeschar *i;
 191}
 122 WARN_O if (pinctrt pctldmux_ret pctldev,
              INVAL     i;
 191}
 186        for (i = 0; ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" class="sref">dt pctldde=fsr *num_maps; new_configs) {
 122 t pctldde=fsr *map[newonst char *pctldev,
i;
 191}
 122 WARN_O if (pinctr      for (newARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" class="sref">dt pctldde=fsr *pctldev,
              INVAL     i;
 191}
  93writel(newpm _readitel(tegrs="sref">pinctrlm newo pctldmux_bank newo pctldmux_ret  137{
  93writel(o pctldmux_bi       137{
 166(newi = 0; o pctldmux_bi       137{
newpm _writeitel(tegrs="sref">pinctrlm newwritel(newo pctldmux_bank newo pctldmux_ret  137{
 158
 178        return 0;
 191}
 111
add_configpinctrl_dev *pctldev,
map,onst char *pctldev,
new_configs) {
new_configs) {
new_configspctldsa> = pctl6ass=gra.c#L181" id="2181" 28pctl6ass=gc#L18pinctrl/p3nctrl-tegra.c#pinctrl/p8;
add_config<5fhrefa3nctrl/p3nc.c#L185" id="3re" c05ef"href="drivers2pinctrl/p23ctrl-38 class="sref">i;
 111
 159t pctldpm psref">new3t      i;
i;
 191}
 122 WARN_a_tocodeg3 class="sref">add_config3e_map3 clt psliss="sg"ss="sref">add_config3st_n<39"3172" 37ass="line" name="L182me="L17/a>         +code=pin3trl_map" class="sref">pi3ctrl_39 class="sref">i;
 191}
  93writel(newpm _readitel href="+code= m " cl=class="sref">newwritel(newo pctldmunsigned 3newo pctldmux_ret  137{
  93writel(o pctldmux_bi       122 WARN_O if ( 137{
 166(3dd_co39ss="sref">o pctldmux_bi       137{
newpm _writeitel(tegrs="sref">pinctrlm <> href="+code= m " cl=class="sref">newwritel(newo pctldmu8;
  93>tegrs="sref">pinc4rivers2pi4ctrl/p2nctrl-tegra.c##184" id=42L99" L191"> 191}
pctl6ass=gctrl-tegrlasstrl/p3nctrl-tegra.ctrl-tegrlasstrlctrl-tepinctric int  185map,
 192
ree_map" cliss="schar *add_config4"> 1740sref">newstatic int  180pi4class4"sref"natic inic int pic int 3nctrl-tegra.c#L181" id="3181" 38ass="line" naree_map" cliss="schar *newstatic int >tegrs="sref">pinc4v * 179}
(<" name="L111"> 111
new_configs) {
 *new_configsree_map" cliss="schar *i4/a>;
}
pctl6ass=gonf=Aa href="+code=conf=Ass="ree_map" cliss="schar *o pctl6ass=greport"> 122 st      report"> 1ss="ree_map" cliss="schar * 111
 st      s8184" id="3184" 38ass=(pinctrlm <> sig(pinctrlm <> s822 st      s8184" id="3184" 38ass=<176" 37ass="line"e="L166ref">pinctrlm <> s822 st      s8184" id="3184" 38ass=width22 st      widtha.c#L183" id="3183" 38ass="line" naaaaaaaaaaaaaa4" id="3114" 3lass="line" name="L114"> 114
<ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 4trl-tegra4c#L113" id="3113" 3lass=4line"41de=de"sref">pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_Ps" clas" c8"> 178add_con4ig(newwritepupdl(L166"> 166(newstatic ieserved_id="3184" 38ass=>(newwritepupdl>( 166( *pctldde=fsr *newwritepupdl<176" 37ass="line"pupdl<17L166"> 166( * st      widtha.c# 166(;
newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_TRISTATinctrl/p3nctrl-tTEGRA_PINc in_PARAM_TRISTATie=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4tatic int4(newwritetril(L166"> 166((newwritetril>( 166(teg"42aaaaaaaaaaaaaaaaaame=id="3184" 38ass=<176" 37ass="line"e="L166newwritetril<176" 37ass="line"tril<17L166"> 166(teg=4ap" c42trt  st      widtha.c# 166(add_con4#L124" id="3124" 32ass="4line"42href="+code=reserved_c = class="sref">newonst char *add_config4e_map427e=de"sref">pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_ENABLE_INPUTnctrl/p3nctrl-tTEGRA_PINc in_PARAM_ENABLE_INPUTe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4t *pctldde=fsr *(newwriteeinputl(L166"> 166( *4]423108" 30ass="line" naid="3184" 38ass=>(newwriteeinputl>( 166(newwriteeinputl 166(pct43ewonst char * st      widtha.c# 166(newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_OPEN_DRAI3nctrl-tegra.c#LTEGRA_PINc in_PARAM_OPEN_DRAI3e=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4e=f_7" ig4 class="sref">add_config4e_map4 clt (newwriteodrainl(L166"> 166((newwriteodrainl>( 166(add_con4newwriteodrainl<176" 37ass="line"odrainl<17L166"> 166(4]43">newstatic ieserved_id="3184" 38ass=width22 st      widtha.c# 166( *pctldde=fsr *newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_LOCKnctrl-tegra.c#LTEGRA_PINc in_PARAM_LOCKe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4ass="sr7"4ichar *;
(newwritelockl(L166"> 166((newwritelockl>( 166(add_config4e_map4 clt newwritelockl<176" 37ass="line"lockl<17L166"> 166( 182 st      widtha.c# 166(newonst char * 142pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_IORESETnctrl/p3nctrl-tTEGRA_PINc in_PARAM_IORESETe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4a>add_con4*(newwriteio/a>,tl(,tlL166"> 166(4]44">newstatic ieserved_id="3184" 38ass=>(newwriteio/a>,tl>( 166( *pctldde=fsr *newwriteio/a>,tl<176" 37ass="line"io/a>,tl<17L166"> 166( * st      widtha.c# 166(newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_HIGH_SPEED_MODinctrl/p3nctrl-tTEGRA_PINc in_PARAM_HIGH_SPEED_MODie=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4" id="3154" 35ass="line" name="L184"> 1845clt (newwritedrvl(L166"> 166((newwritedrvl>( 166(newwritehsml<176" 37ass="line"hsml<17L166"> 166(pinctrl_4ev st      widtha.c# 166(add_con4-tegra.c#L155" id="3155"435ass45href="+code=reserved_c = class="sref">newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_SCHMITTnctrl/p3nctrl-tTEGRA_PINc in_PARAM_SCHMITTe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4" *4]45"sref">pctldde=fsr *(newwritedrvl(L166"> 166( * 193st4tic c453108" 30ass="line" naid="3184" 38ass=>(newwritedrvl>( 166(i<4a>;
newwriteschmittl<176" 37ass="line"schmittl<17L166"> 166( st      widtha.c# 166( 1904writel(newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_LOW_POWER_MODinctrl/p3nctrl-tTEGRA_PINc in_PARAM_LOW_POWER_MODie=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4="sre+cod4char *(newwritedrvl(L166"> 166(pi4ctrt (newwritedrvl>( 166(add_con4inctrl/p3nctrl-tegra.c#L465" i46href="+code=reserved_id="3184" 38ass=<176" 37ass="line"e="L166newwritelpmdl<176" 37ass="line"lpmdl<17L166"> 166(newstatic ieserved_id="3184" 38ass=width22 st      widtha.c# 166(dt pctldde=fsr *newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_DRIVE_DOWN_STRENGTHnctrl/p3nctrl-tTEGRA_PINc in_PARAM_DRIVE_DOWN_STRENGTHe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4tion"  cl4ss="sref">pctldev,
<4 href47a>;
(newwritedrvl(L166"> 166((newwritedrvl>( 166(PE_CO_PARAMARRAY_SIZR4err" 4lass="sref">dt newwritel-tenl<176" 37ass="line"l-tenl<17L166"> 166( =4inctrl/p3nctrl-tegra.c#L472" i47"> 182 st      widtha.c#newwritel-tenlwidth22 st      l-tenlwidthL166"> 166(newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_DRIVE_UP_STRENGTHnctrl/p3nctrl-tTEGRA_PINc in_PARAM_DRIVE_UP_STRENGTHe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4t>add_con4odea&a= ~(0x3code=ode4i" cl47href="+code=reserved_id="3184" 38ass=(newwritedrvl(L166"> 166(newstatic ieserved_id="3184" 38ass=>(newwritedrvl>( 166(pctldde=fsr *newwritedrvupl<176" 37ass="line"l-tupl<17L166"> 166( * st      widtha.c#newwritedrvuplwidth22 st      l-tuplwidthL166"> 166( 1548a>;
newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_SLEW_RATE_FALLINGnctrl/p3nctrl-tTEGRA_PINc in_PARAM_SLEW_RATE_FALLINGe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4trl-tegra4c#L180" id="3180" 38ass=4line"48clt (newwritedrvl(L166"> 166(add_config4e_map4 clt (newwritedrvl>( 166(mapnewwriteslwfl<176" 37ass="line"slwfl<17L166"> 166( st      widtha.c#newwriteslwflwidth22 st      slwflwidthL166"> 166(add_con4vers3pinctrl/p3nctrl-teg4a.c#L48href="+code=reserved_c = class="sref">newonst char *pcaseef">pinctrlm <> TEGRA_PINc in_PARAM_SLEW_RATE_RISINGnctrl/p3nctrl-tTEGRA_PINc in_PARAM_SLEW_RATE_RISINGe=de2nctrl-tegra.c#L185" id="2185" 2lass="line" 4tass="sre4fa3nctrl/p3nc.c#L185" id4"3re"48"sref">pctldde=fsr *(newwritedrvl(L166"> 166((newwritedrvl>( 166(new4t      newwriteslwrl<176" 37ass="line"slwrl<17L166"> 166( st      widtha.c#newwriteslwrlwidth22 st      slwrlwidthL166"> 166(add_config4e_map4 clt newonst char *add_config4st_n<49clt pi4ctrl_49aaaaaaaaaaaaaaaaaame="sref">newwritedev"> 122 st      dev"> 1aaaaref="+mux_bi ss=" class="sre"L137"> 137newwritedctrl/p3nctrl-tegr9stat"Invalida382fig onf=A %04x\n"pinctrlm <> onf=Aa href="+code=conf=Ass="rlass="sref">newonst char *pctldmuNOTSUPPa href="+code=cuNOTSUPPL166"> 166(add_con4p2nctrl-tegra.c#L195" id4"219549s="sref">o 4dd_co49a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc4u8;
pctldda hrid="3184" 38ass=>(ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 4">  93 122 st      report"> 1ss="L183" id="3183" 38ass="line" naaaaaaaaaaaaaa5rivers2pi5ctrl/p2nctrl-tegra.c##185" id=50a>;
newwritedev"> 122 st      dev"> 1aaaaref="+mux_bi ss=" class="sre"L137"> 137newwritedctrl/p3nctrl-tegr9sta183" id="3183" 38ass="line" naaaaaaaaaaaaaa5r1vers2pi5c#L189" id="2189" 28ass=5e" na50ewonst char *o <""""spanl/p3nctrltring">"C82fig onf=A %04x not supported on a.c#L %s\n"add_config5ra.c#50clt newwriteonf=Aa href="+code=conf=Ass="ra_tocodeg" c=maphref="+code= m " cl=class="sref">newwriteL132" id="3132" 33a192
rlass="sref">newonst char *add_config5"> 1750clt pctldmuNOTSUPPa href="+code=cuNOTSUPPL166"> 166(pi5class5"sref"natic ina href="drivers3pinctrl/p3nctrl-tegra.c#L1795a5href="d5ia href="+code=num_maps"5ef="+5ode=de href="drivers3pinctrl/p3nctrl-tegra.c#L1795a6href="d5i2nctrl-tegra.c#L195" id5ed *<50s="sref">o {
add_config<5fhrefa3nctrl/p3nc.c#L185" id="5a9/a> * 179}
 111
i5/a>;
,
ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5  href="d5id="3110" 31ass="line" n5line"51 class="sref">i;
 122 st      dev"> 1aaaaref="+mux_bi ss=""line" nvoi4"de=i" class="srdt_flass="sref">newwritedctrl/p3nctrl-tegr9stat"MAR_382figage. op not supported\n"newonst char * 11513="sref">o {ss="sref">pctldmuNOTSUPPa href="+code=cuNOTSUPPL166"> 166(add_con5ig 179}
 111
newstatic ieserved_"""""""""""""ctldev,
ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5 9/a> *i;
 122 st      dev"> 1aaaaref="+mux_bi ss=""line" nvoi4"de=i" class="srdt_flass="sref">newwritedctrl/p3nctrl-tegr9stat"MAR_382figase. op not supported\n"newonst char *;
pctldmuNOTSUPPa href="+code=cuNOTSUPPL166"> 166( 179}
 111
teg"52aaaaaaaaaaaaaaaaaame=erved_"""""""""""""ctldev,
ractldevteg=5ap" c52trt ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5=>add_con5#L124" id="3124" 32ass="5line"52href="+code=rs="L111"> 111
new_configs) {
new_configs) {
<5ga href="5 class="sref">add_config5e_map527e=de"sref">penum}
pctl6ass=gonf=Aa href="+code=conf=Ass=" href="drivers3pinTEGRA_PINc in_UNPACK_PARAMnctrl/p3nctrl-tTEGRA_PINc in_UNPACK_PARAM.c#L1 id="3182" 3lass382figs3pinctrl/p3nct382figss="L="3184" 38ass="s="sref">new_configs) {
<5g8drivers5 *pctlddid="3182" 3lassuig 166( *5]523108" 30ass="382pinctrl/p2nctrl-tegra.c#L136" id=""drivers3pinctrl/p3nctrl-tegra.c#L184" id="3184" 38ass="s="sref">new_configspctldsa> = ;
 166(pct53ewonst char *"sref">newwrites822 st      s8184" d="3184" 38ass=(pinctrlm <> width22 st      widtha.c#"> 166(i;
( 166(pid="3182" 3lassu3" 26ass="line" N4lass="sref">pctl6ass=gra.c#L181" id="2181" 28pcref">pinctrlm <> mas>(" na"> 166(add_config5e_map5 clt <> 166(newo  111
 159t pctldpm 5r>add_con55ra href="5wpinctrl_dev oet_drvef">5]53">newstatic i/a>}
(<" namra.c#L161" id="3161" 36ass="line" name="ra_tocodeg" c=maphref="+code= m " cl=cref">pinctrlm <> onf=Aa href="+code=conf=Ass="ref">pinctrlm <> trl2" id="3132" 33atrl2ss="rel-tegra.c#L161" id="((<" narel-tegra.c#L161" id="<176" 37ass="line"e="L166rtldpm 5r8drivers5 *pctldde=fsr *<<<<<<<<<<<<<<<<5r9/a> *pa href="drivers3pinre.c#L125" id="312re7L166<4" id="tldpm 5ass="sr7"5ichar *;
{/a>}
 166( 166(add_config5e_map54 class="sref">i;
 191}
(5trl-tegra5d="3142" 34ass="line" na5e="L1543e=de"sref">pid="3182" 3lassmas>(" na-te(1re"L137"> 137{
 st      widtha.c#L -a1"> 166(i;
pinctrlm <> mas>(" na"> 166( 152add_con5*}
pinctrlm <> args3pinctrl/p3nctargL166Lctldpm 5ta href="5wpinctrl_dev oet_drvef">5]54a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc5t *pctldd37{
i;
 179}
 111
 1855clt ractldev 111
new_configs) {
"4me="L164"de=i" cla5 3144" 3l5v" class="sref">pinctrl_5evpctl6ass=gonf=Aa href="+code=conf=Ass=" href="drivers3pinTEGRA_PINc in_UNPACK_PARAMnctrl/p3nctrl-tTEGRA_PINc in_UNPACK_PARAM.c#L1id="3182" 3lass382figs3pinctrl/p3nct382figss="L="3184" 38ass="s="sref">new_configs) {
<5<>add_con5-tegra.c#L155" id="3155"535ass55href="+code=rid="3182" 3lassuignew_configs) {
<5pc82pinctrl/p2nctrl-tegra.c#L136" id=""drivers3pinctrl/p3nctrl-tegra.c#L184" id="3184" 38ass="s="sref">new_configspctldsa> =  *5]55"sref">pctldd179}
 166( * 193st5tic c55 class="sref">i;
 st      s8184" d="3184" 38ass=(pinctrlm <> width22 st      widtha.c#"> 166(i<5a>;
i;
( 166(newwriteu3" 26ass="line" N4lass="sref">pctl6ass=gra.c#L181" id="2181" 28pcref">pinctrlm <> mas>(" na"> 166( 1905writel( =5pid="3182" 3lass="drivers3pinctrl/p3nctrl-tegra.c#L161" id="3161" 36ass="line" name="L111"> 111
 159t pctldpm 5="sre+cod5char * 166(pi56sref">newo (<" namra.c#L161" id="3161" 36ass="line" name="ra_tocodeg" c=maphref="+code= m " cl=cref">pinctrlm <> onf=Aa href="+code=conf=Ass="ref">pinctrlm <> trl2" id="3132" 33atrl2ss="rel-tegra.c#L161" id="((<" narel-tegra.c#L161" id="<176" 37ass="line"e="L166rtldpm 5">add_con5inctrl/p3nctrl-tegra.c#L565" i56href="+code=reserved_________________l-tegra.c#L161" id="width22 st      widtha.c#Lctldpm 5"="sr+cod5     newstatic ia href="drivers3pinre.c#L125" id="312re7L166<4" id="tldpm 5lass="sre5">dt pctldde=fsr *<37{/a>}
 166( * 166(pctldev,
<5 href57a>;
 191}
(5e" name="5169line" nabreakcode=i" 5lass=57ewons> 166(PE_CO_PARAMARRAY_SIZR5err" 5lass="sref">dt/* LOCK can't bel/peared */ 166( =5inctrl/p3nctrl-tegra.c#L572" i57"> 182ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5R"sre+cod5     pinctrlm <> BITnctrl/p3nctrl-tBIT91}
pinctrlm <> args3pinctrl/p3nctargL166Lef">ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5R if (i;
 122 st      dev"> 1aaaaref="+mux_bi ss=""line" nvoi4"de=i" class="srdt_flass="sref">newwritedctrl/p3nctrl-tegr9stat"LOCK e=" cannot bel/peared\n"newonst char *pctldmuINVALrl/p3nctrl-tegruINVALL166"> 166(newstatic ieserved_a href="drivers3pinctrl/p3nctrl-tegra.c#L1795Rass="sre5 href="+codemux_bank" cl5class57"sref">pctldda href="drivers3pinctrl/p3nctrl-tegra.c#L1795R9/a> * 166( 1558a>;
/* Special-caseeBoopean p3nues; allow any non-zero as trl2 */ 166(pa href="drivers3pinwidth22 st      widtha.c#5trl-tegra5c#L180" id="3180" 38ass=5line"58clt pinctrlm <> args3pinctrl/p3nctargL166"> 166(add_config5e_map5 clt <> 166(map/* Range-check user-supplied p3nue */ 166(newo  137{
 st      widtha.c#L -a1"> 166(add_con5vers3pinctrl/p3nctrl-teg5a.c#L58href="+code=ra href="drivers3pinargs3pinctrl/p3nctargL166 l-tege~ href="+codeconmas>(" naLef">ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5lloc"->5ss="s0ux" cp3nctrl-tegra5c#L1858">newstatic ieserved_>i;
 122 st      dev"> 1aaaaref="+mux_bi ss=""line" nvoi4"de=i" class="srdt_flass="sref">newwritedctrl/p3nctrl-tegr9sta">ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 5lass="sre5fa3nctrl/p3nc.c#L185" id5"3re"58"sref">pctldde=fsr *"382fig %lx: %x too e=g for %d e=" >(i;
pinctrlm <> args3pinctrl/p3nctargL166ref">pinctrlm <> width22 st      widtha.c#rlass="sref">newonst char *new5t      {ss="sref">pctldmuINVALrl/p3nctrl-tegruINVALL166"> 166(add_config5e_map59clt < href="drivers3pinctrl/p3nctrl-tegra.c#L1795sliss="sg5ss="sref">add_config5st_n<59clt /* Update >( 166(pi5ctrl_59aaaaaaaaaaaaaid="3182" 3lass="drivers3pinctrl/p3nctrl-l-teg= ~ref="+mux_bi ss=mas>(" na-e"L137"> 137{
 166(newo  137{
 166(add_con5p2nctrl-tegra.c#L195" id5"219559href="+code=rid="3182" 3lass"L19write7ass="ine" name="L19write791}
pinctrlm <> ((5="21rive25ass="line" naass="sref">5dd_co59a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc5u8;
pctldd37{
  93i;
i;
add_config6ra.c#60clt  voi/a>,
 111
add_config6"> 1760clt  111
pi6class6"sref"f">ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 6a5href="d6ia href="+code=num_maps"6ef="+6ode=dea href="drivers3pinctrl/p3nctrl-tegra.c#L1796r6href="d6i2nctrl-tegra.c#L195" id6ed *<60href=tldpm 6="drivers6p6nctrl/p3nctrl-tegra.c#6196" 60a hreL179"> c82pinchar" id="3182" 3lass"trip_p318irs3pinctrl/p3nct"trip_p318ir91ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 6a9/a> *}
','newonst char *i6/a>;
pinctrlm <> comm185" id="3ref="3comm1ctrlLee_map" cliss="schar *newonst char * 11613="sref">o {id="3182" 3lasscomm185" id="3ref="3comm1ctrl-+a1"> 166(add_con6ig voi/a>,
 111
newstatic ieserved_"""""""""""""iiiiiiiiiiiis="L111"> 111
Lee_map" cliss="schar *ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 6 9/a> * 111
new_configs) {
"4me="L164"de=i" cla6"drivers369nctrl/p3nctrl-tegra.c#L619" i62a>;
new_configspctldsa> = pa79}
new_cois="sra_tocodeg" c=map>(.c#L125" id="312re7L166"> 166(i;
 st      s8184" d="3184" 38ass=(pinctrlm <> width22 st      widtha.c#"> 166(pid="3182" 3lasssig( 166(teg"62aaaaaaaaaaaaaid="3182" 3lassu3" 26ass="line" N4lass="sref">pctl6ass=gra.c#L181" id="2181" 28pc"> 166(teg=6ap" c62de=de href="drivers3pinctrl/p3nctrl-tegra.c#L1796=>add_con6#L124" id="3124" 32ass="6line"62href="+code=rid="3182" 3lass="drivers3pinctrl/p3nctrl-tegra.c#L161" id="3161" 36ass="line" name="L111"> 111
 159t pctldpm 6ga href="6 class="sref">add_config6e_map62a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc6g8drivers6 *pctlddfor 136" id=""driveris="sref">new_cois="sctr0> 137{
new_cois="sc37"> 137{
new_coARRAY_SIZE.c#L136" id=""drivercfgaonf=A" 362ss="line" ncfgaonf=A"4" id= 137{
new_cois="s++Lef">ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 6g9/a> *6]623108" 30ass="line" na_tocodeg" c=map>(.c#L125" id="312re7L166(<" namra.c#L161" id="3161" 36ass="line" name="ra_tocodeg" c=maphref="+code= m " cl=cref">pinctrlm <> cfgaonf=A" 362ss="line" ncfgaonf=A"4" i59t new_cois="s].ra.c#L161" id="3nf=Aa href="+code=conf=Ass="ref">pinctrlm <> fals2" id="3132" 33afals2dt_free_map" cliss="schar *;
(<" narel-tegra.c#L161" id="<176" 37ass="line"e="L166r_l-tegra.c#L161" id="width22 st      widtha.c#Lctldpm 6r_showd *6code= m " cl->ass="sre6">pct63ewonst char *6ratic int6 href="+codde=functeemse6ode=i63clt 6r id="3116c#L131" id="3131" 33ass=6line"63clt <> 166(add_config6e_map63aaaaaaaaaaaaaaaaaame="sref">newwrite="drivers3pinctrl/p3nctrl-tegra.c#L173" id="3173" 37ass="ine" name="L191"> 191}
(6rrl-tegra64" 3lass="line" name="L164444463trt  166(add_con6 137{
 st      widtha.c#L -a1"> 166(6]63a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc6r8drivers6 *pctldde=fsr *<"> 111
}
"\n\t%s=%u" * 111
pinctrlm <> cfgaonf=A" 362ss="line" ncfgaonf=A"4" i59t new_cois="s].ra.c#L161" id="3ropertys3pinctrl/p3nctrropertya.c#La.c#L174" id="317ra.c#L181" id="2181" 28pcLctldpm 6ass="sr7"6ichar *;
add_config6e_map64clt < href="drivers3pinctrl/p3nctrl-tegra.c#L1796trl-tegra6d="3142" 34ass="line" na6e="L164clt  voi/a>,
 111
 111
 162add_con6*ARRAY_SIZRA_">PE_CO_PARAMARRAY_SIZR_err" 6ta href="6wpinctrl_dev oet_drvef">6]647e=de"sref">penum}
pctl6ass=gonf=Aa href="+code=conf=Ass=" href="drivers3pinTEGRA_PINc in_UNPACK_PARAMnctrl/p3nctrl-tTEGRA_PINc in_UNPACK_PARAM.c#L1id="3182" 3lass382figs3pinctrl/p3nct382figss="Lctldpm 6a8drivers6 *pctlddid="3182" 3lassuignew_configs) {
<6t9/a> *"unknown"new_configs) {
<6}
new_cois="s="3184" 38ass="s="sref">new_configs) {
<6 166( 1865clt new_cois="sctr0> 137{
new_cois="sc37"> 137{
new_coARRAY_SIZE.c#L136" id=""drivercfgaonf=A" 362ss="line" ncfgaonf=A"4" id= 137{
new_cois="s++Lef">ARRAY_SIZRA_">(t new_cois="s].ra.c#L161" id="3nf=Aa href="+code=conf=Ass=" hhref="drivers3pinonf=Aa href="+code=conf=Ass="ref">ARRAY_SIZRA_">(pinctrlm <> cfgaonf=A" 362ss="line" ncfgaonf=A"4" i59t new_cois="s].ra.c#L161" id="3ropertys3pinctrl/p3nctrropertya.c#="3184" 38ass="s="sref">new_configs) {
<6pinctrl_6evnewonst char *pa href="drivers3pinctrl/p3nctrl-tegra.c#L1796<8drivers6wpinctrl_dev oet_drvef">6]6505ef">add_config<5fhrefa3nctrl/p3nc.c#L185" id="6 9/a> * 193st6tic c65 class="sref">i;
}
"%s=%d"pinctrlm <> strip_p318irs3pinctrl/p3nct"trip_p318ir91pinctrlm <> plmapa href="+code=colmapL166La.c#L174" id="317args3pinctrl/p3nctargL166Lctldpm 6"sref">i<6a>;
 111
ARRAY_SIZRA_">(pi66sref">newo add_con6inctrl/p3nctrl-tegra.c#L665" i66href="+code=r.ra.c#L161" id="3AR_382figag.c#Lage.c#L125" id="3123AR_382figag.c#Lage.L166newstatic i.ra.c#L161" id="3AR_382figag.c#Lase.c#L125" id="3123AR_382figag.c#Lase.aaaadt i;
newstatic i.ra.c#L161" id="3AR_382figadbg_showa href="+code=c3AR_382figadbg_showaaaapctldev,
<6 href67a>;
;
PE_CO_PARAMARRAY_SIZR6err" 6lass="#endif href="drivers3pinctrl/p3nctrl-tegra.c#L1796Rtldsa> =6inctrl/p3nctrl-tegra.c#L672" i67"> 18}ctldpm 6R"sre+cod6      s="L111"> 111
ARRAY_SIZRA_">(add_con6odea&a= ~(0x3code=ode6i" cl67href="+code=r.ra.c#L161" id="lmapa href="+code=clmapL166 hrespanl/p3nctrltring">"Tlass GPIOs"newstatic i.ra.c#L161" id="ids="sref">new_coids="sctr0r183" id="3183" 38ass="line" naaaaaaaaaaaaaa6e8drivers6 href="+codemux_bank" cl6class67"sref">pctldd.ra.c#L161" id="bas2" id="3132" 33abas2s="sctr0r183" id="3183" 38ass="line" naaaaaaaaaaaaaa6e9/a> *6" id="3176" 37ass="line" name="L156"> 1568class="sref">i;
 s="L111"> 111
ARRAY_SIZRA_">(add_config6e_map683lt mapnewo new_coTHIS_MODULEL166ree_map" cliss="schar *6"="sr+cod6ss="s0ux" cp3nctrl-tegra6c#L1868a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc6lass="sre6fa3nctrl/p3nc.c#L185" id6"3re"68"sref179}
 111
new6t      ARRAY_SIZRA_">(new_configs) {
6a_tocodeg6 class="sref">add_config6e_map692wonst char *ctrl/p2nctrl-tegra.c#Lresources3pinctrl/p3nctresourced="3184" 38ass="s="srress3pinctrl/p3nctres{
6aliss="sg6ss="sref">add_config6st_n<69clt new_cois="s="3184" 38ass="s="sref">new_configs) {
<6+code=pin6trl_map" class="sref">pi6ctrl_69clt <> 166(newo new_configs) {
newwritedctrl/p3nctrl-tegr9statsizeof(84" 38ass="s="sref">new_configs) {
6t>add_con6p2nctrl-tegra.c#L195" id6"219569href="+code=ra hr!f">pinctrlm <> ef">new_configs) {
ARRAY_SIZRA_">(6dd_co69">newstatic ieserved_>i;
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9statespanl/p3nctrltring">"Can't allo= c#L184" i\n"newonst char *pctldde=fsr *<37{ss="sref">pctldmuNOMEMnctrl/p3nctrl-tuNOMEMs="s="3184" 38ass="s="sref">new_configs) {
<6+e" c05ef6st      ;
 111
stctrl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9st="3184" 38ass="s="sref">new_configs) {
<7r1vers2pi7c#L189" id="2189" 28ass=7e" na70ewonst char *"sref">newwrite3161" 36ass="line" name="L111"> 111
new_configs) {
<7r2vers2pi7cclass="sref">add_config7ra.c#70clt < href="drivers3pinctrl/p3nctrl-tegra.c#L1797a3href="d7is="sref">add_config7"> 1770clt  111
new_configs) {
<7r4href="d7irl_map" class="sref">pi7class70aaaaaaaaaaaaaid="3182" 3lassrivers3pin"drides="drivers3pinctrrivers3pin"drides=L166.ra.c#L161" id="lmapa href="+code=clmapL166 hrei;
newwritedctrl/p3nctrl-tegr9strlass="sref">newonst char *newo  111
newonst char * 111
newonst char *7196" 70a href=pinctrl_dev oet_drvef">>tegrs="sref">pinc7a8drivers7pa href="drivers2pinctrl7sref"70"sref">pctlddfor 136" id=""driveris="sref">new_cois="sctr0> = 137{
new_cois="s++Lef">ARRAY_SIZRA_">( *(ss3pinctrl/p3nctres{
new_cois="srlass="sref">newonst char *i71a>;
pinctrlm <> >(ss3pinctrl/p3nctres{
newonst char * 1171clt  111
new_cois="s="3184" 38ass="s="sref">new_configs) {
<7 id="31127 31ass="line" name="L1787> 17871clt <> 166(newo new_configs) {
 111
newwritedctrl/p3nctrl-tegr9statid="3182" 3lass3161" 36ass="line" name="L111"> 111
new_configs) {
 111
add_con7ig7 "drivers7et_+codes_countemse" cla7s="sr7f">newstatic ia hr!f">pinctrlm <> ef">new_configs) {
 111
ARRAY_SIZRA_">(pctldde=fsr *<"> 111
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9statespanl/p3nctrltring">"Can't allo= regs pointer\n"7 9/a> *{ss="sref">pctldmuNODEVnctrl/p3nctrl-tuNODEVs="s="3184" 38ass="s="sref">new_configs) {
<7"drivers379nctrl/p3nctrl-tegra.c#L719" i72a>;
 166(new_cois="sctr0> 137{
new_cois="sc37"> 137{
 111
{
new_cois="s++Lef">ARRAY_SIZRA_">(pe=fsr *<"> 111
(ss3pinctrl/p3nctres{
new_cois="srlass="sr_SIZRA_">(teg"72aaaaaaaaaaaaaaaaaame=a hr!f">pinctrlm <> >(ss3pinctrl/p3nctres{
ARRAY_SIZRA_">(teg=7ap" c72trt i;
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9statespanl/p3nctrltring">"Missing MEM resource\n"7=>add_con7#L124" id="3124" 32ass="7line"72href="+code=reserved_________37{ss="sref">pctldmuNODEVnctrl/p3nctrl-tuNODEVs="s="3184" 38ass="s="sref">new_configs) {
<7""drivers7 class="sref">add_config7e_map72">newstatic ieserved_a href="drivers3pinctrl/p3nctrl-tegra.c#L1797g8drivers7 *add_config<5fhrefa3nctrl/p3nc.c#L185" id="7g9/a> *7]723108" 30ass="line" naa hr!f">pinctrlm <> "srm_request_mem_region"drivers3pinctr"srm_request_mem_region91newwritedctrl/p3nctrl-tegr9statid="3182" 3lass>(ss3pinctrl/p3nctres{
 111
sta>add_config<5fhrefa3nctrl/p3nc.c#L185" id="7rl_dev 111
(source_sizes3pinctrl/p3nctresource_sizeaaaarid="3182" 3lass>(ss3pinctrl/p3nctres{
add_config<5fhrefa3nctrl/p3nc.c#L185" id="7r_showd *7code= m " cl->ass="sre7">pct73ewonst char * 111
newwritedctrl/p3nctrl-tegr9str)Lef">ARRAY_SIZRA_">(i;
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9sta">ARRAY_SIZRA_">("Couldn't request MEM resource %d\n"new_cois="srlass="sr_SIZRA_">(add_config7e_map73aaaaaaaaaaaaaaaaaame=========37{ss="sref">pctldmuNODEVnctrl/p3nctrl-tuNODEVs="s="3184" 38ass="s="sref">new_configs) {
<7rrl-tegra74" 3lass="line" name="L174444473trt add_con77ra href="7wpinctrl_dev oet_drvef">7]73">newstatic ieserved_>i;
new_configs) {
 111
t new_cois="s]-tegra.c#L173" id="srm_ioremadeconfia c&as"srm_ioremad91newwritedctrl/p3nctrl-tegr9statid="3182" 3lass>(ss3pinctrl/p3nctres{
 111
sta>add_config<5fhrefa3nctrl/p3nc.c#L185" id="7r8drivers7 *pctldde=fsr * 111
(source_sizes3pinctrl/p3nctresource_sizeaaaarid="3182" 3lass>(ss3pinctrl/p3nctres{
( *pinctrlm <> ef">new_configs) {
 111
t new_cois="s]Lef">ARRAY_SIZRA_">(;
i;
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9staiespanl/p3nctrltring">"Couldn't ioremad regs %d\n"new_cois="srlass="sr_SIZRA_">({ss="sref">pctldmuNODEVnctrl/p3nctrl-tuNODEVs="s="3184" 38ass="s="sref">new_configs) {
<7tatic int7 class="sref">add_config7e_map74clt  166( 172newo new_configs) {
 111
new_configsctl{
((newwritedctrl/p3nctrl-tegr9statid="3182" 3lass3161" 36ass="line" name="rlass="sr_SIZRA_">(add_con7*pinctrlm <> ef">new_configs) {
 111
new_configsctl{
ARRAY_SIZRA_">(7]74">newstatic ieserved_>i;
 122 st      dev"> 1aaaarl-tegra.c#L161" id="3ne" nvoi4"de=i" cla"srdt_flass="sref">newwritedctrl/p3nctrl-tegr9statespanl/p3nctrltring">"Couldn't re\n"7a8drivers7 *pctldde=fsr *<37{ss="sref">pctldmuNODEVnctrl/p3nctrl-tuNODEVs="s="3184" 38ass="s="sref">new_configs) {
<7t9/a> *i;
newwrite3pin"driaddigpio_ranges3pinctrl/p3nctrl-tegraaddigpio_rangeaaaarid="3182" 3lass=f">new_configs) {
 111
new_configsctl{
7" id="3157" 35ass="line" name="L187"> 1875clt < href="drivers3pinctrl/p3nctrl-tegra.c#L1797"rl-tegra7 3lass="line" name="L1787> 17875clt ( 166(pinctrl_7evnewo newwritedctrl/p3nctrl-tegr9statespanl/p3nctrltring">"Probed Tlass +codea| ZRA_">\n"7<>add_con7-tegra.c#L155" id="3155"735ass75href=tldpm 7p37{
7]7505ef"a href="drivers3pinctrl/p3nctrl-tegra.c#L1797<9/a> * 193st7tic c75 class="sref">pctldmuXPORT_SYMBOL_GPLrl/p3nctrl-tegruXPORT_SYMBOL_GPLaaaarid="3182" 3lassrivers3pin"driprobes3pinctrl/p3nctrivers3pin"driprobe917"sref">i<7a>;
i;
 111
ARRAY_SIZRA_">( =7 111
new_configs) {
7"id="31437char * 166(pi76sref">newo ((new_configs) {
 111
new_configsctl{
7">add_con7inctrl/p3nctrl-tegra.c#L765" i76href=tldpm 7Oa href="7     p37{
dt pctldmuXPORT_SYMBOL_GPLrl/p3nctrl-tegruXPORT_SYMBOL_GPLaaaarid="3182" 3lassrivers3pin"driremoves3pinctrl/p3nctrivers3pin"driremoveaaaaLctldpm 7tion"  cl7ss="sref">pctldev,
<7 href77a>;
<


pfooters> The original LXR software by the ldpm LXR communitya.c#, this experimental ="+cion by ldpm lxr@ctlux.noa.c#.
psubfooters> lxr.ctlux.no kindly hosted by ldpm Redpill Ltlpro ASa.c#, provider of Ltlux_c82pulting and operations ser#ices sl-&e 1995.