linux/drivers/pinctrl/core.c
/div> <<
>>
Prefs
   1/*
   2 * Core driver for the pin control subsystem
   3 *
   4 * Copyright (C) 2011-2012 ST-Ericsson SA
   5 * Written on behalf of Linaro for ST-Ericsson
   6 * Based on bits of regulator core, gpio core and clk core
   7 *
   8 * Author: Linus Walleij <linus.walleij@linaro.org>
   9 *
  10 * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved.
  11 *
  12 * License terms: GNU General Public License (GPL) version 2
  13 */
  14#define pr_fmt(fmt) "pinctrl core: " fmt
  15
  16#include <linux/kernel.h>
  17#include <linux/export.h>
  18#include <linux/init.h>
  19#include <linux/device.h>
  20#include <linux/slab.h>
  21#include <linux/err.h>
  22#include <linux/list.h>
  23#include <linux/sysfs.h>
  24#include <linux/debugfs.h>
  25#include <linux/seq_file.h>
  26#include <linux/pinctrl/consumer.h>
  27#include <linux/pinctrl/pinctrl.h>
  28#include <linux/pinctrl/machine.h>
  29#include "core.h"
  30#include "devicetree.h"
  31#include "pinmux.h"
  32#include "pinconf.h"
  33
  34/**
  35 * struct pinctrl_maps - a list item containing part of the mapping table
  36 * @node: mapping table list node
  37 * @maps: array of mapping table entries
  38 * @num_maps: the number of entries in @maps
  39 */
  40struct pinctrl_maps {
  41        struct list_head node;
  42        struct pinctrl_map const *maps;
  43        unsigned num_maps;
  44};
  45
  46static bool pinctrl_dummy_state;
  47
  48/* Mutex taken by all entry points */
  49DEFINE_MUTEX(pinctrl_mutex);
  50
  51/* Global list of pin control devices (struct pinctrl_dev) */
  52LIST_HEAD(pinctrldev_list);
  53
  54/* List of pin controller handles (struct pinctrl) */
  55static LIST_HEAD(pinctrl_list);
  56
  57/* List of pinctrl maps (struct pinctrl_maps) */
  58static LIST_HEAD(pinctrl_maps);
  59
  60#define for_each_maps(_maps_node_, _i_, _map_) \
  61        list_for_each_entry(_maps_node_, &pinctrl_maps, node) \
  62                for (_i_ = 0, _map_ = &_maps_node_->maps[_i_]; \
  63                        _i_ < _maps_node_->num_maps; \
  64                        _i_++, _map_ = &_maps_node_->maps[_i_])
  65
  66/**
  67 * pinctrl_provide_dummies() - indicate if pinctrl provides dummy state support
  68 *
  69 * Usually this function is called by platforms without pinctrl driver support
  70 * but run with some shared drivers using pinctrl APIs.
  71 * After calling this function, the pinctrl core will return successfully
  72 * with creating a dummy state for the driver to keep going smoothly.
  73 */
  74void pinctrl_provide_dummies(void)
  75{
  76        pinctrl_dummy_state = true;
  77}
  78
  79const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev)
  80{
  81        /* We're not allowed to register devices without name */
  82        return pctldev->desc->name;
  83}
  84EXPORT_SYMBOL_GPL(pinctrl_dev_get_name);
  85
  86void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev)
  87{
  88        return pctldev->driver_data;
  89}
  90EXPORT_SYMBOL_GPL(pinctrl_dev_get_drvdata);
  91
  92/**
  93 * get_pinctrl_dev_from_devname() - look up pin controller device
  94 * @devname: the name of a device instance, as returned by dev_name()
  95 *
  96 * Looks up a pin control device matching a certain device name or pure device
  97 * pointer, the pure device pointer will take precedence.
  98 */
  99struct pinctrl_dev *get_pinctrl_dev_from_devname(const char *devname)
 100{
 101        struct pinctrl_dev *pctldev = NULL;
 102        bool found = false;
 103
 104        if (!devname)
 105                return NULL;
 106
 107        list_for_each_entry(pctldev, &pinctrldev_list, node) {
 108                if (!strcmp(dev_name(pctldev->dev), devname)) {
 109                        /* Matched on device name */
 110                        found = true;
 111                        break;
 112                }
 113        }
 114
 115        return found ? pctldev : NULL;
 116}
 117
 118/**
 119 * pin_get_from_name() - look up a pin number from a name
 120 * @pctldev: the pin control device to lookup the pin on
 121 * @name: the name of the pin to look up
 122 */
 123int pin_get_from_name(struct pinctrl_dev *pctldev, const char *name)
 124{
 125        unsigned i, pin;
 126
 127        /* The pin number can be retrived from the pin controller descriptor */
 128        for (i = 0; i < pctldev->desc->npins; i++) {
 129                struct pin_desc *desc;
 130
 131                pin = pctldev->desc->pins[i].number;
 132                desc = pin_desc_get(pctldev, pin);
 133                /* Pin space may be sparse */
 134                if (desc == NULL)
 135                        continue;
 136                if (desc->name && !strcmp(name, desc->name))
 137                        return pin;
 138        }
 139
 140        return -EINVAL;
 141}
 142
 143/**
 144 * pin_get_name_from_id() - look up a pin name from a pin id
 145 * @pctldev: the pin control device to lookup the pin on
 146 * @name: the name of the pin to look up
 147 */
 148const char *pin_get_name(struct pinctrl_dev *pctldev, const unsigned pin)
 149{
 150        const struct pin_desc *desc;
 151
 152        desc = pin_desc_get(pctldev, pin);
 153        if (desc == NULL) {
 154                dev_err(pctldev->dev, "failed to get pin(%d) name\n",
 155                        pin);
 156                return NULL;
 157        }
 158
 159        return desc->name;
 160}
 161
 162/**
 163 * pin_is_valid() - check if pin exists on controller
 164 * @pctldev: the pin control device to check the pin on
 165 * @pin: pin to check, use the local pin controller index number
 166 *
 167 * This tells us whether a certain pin exist on a certain pin controller or
 168 * not. Pin lists may be sparse, so some pins may not exist.
 169 */
 170bool pin_is_valid(struct pinctrl_dev *pctldev, int pin)
 171{
 172        struct pin_desc *pindesc;
 173
 174        if (pin < 0)
 175                return false;
 176
 177        mutex_lock(&pinctrl_mutex);
 178        pindesc = pin_desc_get(pctldev, pin);
 179        mutex_unlock(&pinctrl_mutex);
 180
 181        return pindesc != NULL;
 182}
 183EXPORT_SYMBOL_GPL(pin_is_valid);
 184
 185/* Deletes a range of pin descriptors */
 186static void pinctrl_free_pindescs(struct pinctrl_dev *pctldev,
 187                                  const struct pinctrl_pin_desc *pins,
 188                                  unsigned num_pins)
 189{
 190        int i;
 191
 192        for (i = 0; i < num_pins; i++) {
 193                struct pin_desc *pindesc;
 194
 195                pindesc = radix_tree_lookup(&pctldev->pin_desc_tree,
 196                                            pins[i].number);
 197                if (pindesc != NULL) {
 198                        radix_tree_delete(&pctldev->pin_desc_tree,
 199                                          pins[i].number);
 200                        if (pindesc->dynamic_name)
 201                                kfree(pindesc->name);
 202                }
 203                kfree(pindesc);
 204        }
 205}
 206
 207static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev,
 208                                    unsigned number, const char *name)
 209{
 210        struct pin_desc *pindesc;
 211
 212        pindesc = pin_desc_get(pctldev, number);
 213        if (pindesc != NULL) {
 214                pr_err("pin %d already registered on %s\n", number,
 215                       pctldev->desc->name);
 216                return -EINVAL;
 217        }
 218
 219        pindesc = kzalloc(sizeof(*pindesc), GFP_KERNEL);
 220        if (pindesc == NULL) {
 221                dev_err(pctldev->dev, "failed to alloc struct pin_desc\n");
 222                return -ENOMEM;
 223        }
 224
 225        /* Set owner */
 226        pindesc->pctldev = pctldev;
 227
 228        /* Copy basic pin info */
 229        if (name) {
 230                pindesc->name = name;
 231        } else {
 232                pindesc->name = kasprintf(GFP_KERNEL, "PIN%u", number);
 233                if (pindesc->name == NULL)
 234                        return -ENOMEM;
 235                pindesc->dynamic_name = true;
 236        }
 237
 238        radix_tree_insert(&pctldev->pin_desc_tree, number, pindesc);
 239        pr_debug("registered pin %d (%s) on %s\n",
 240                 number, pindesc->name, pctldev->desc->name);
 241        return 0;
 242}
 243
 244static int pinctrl_register_pins(struct pinctrl_dev *pctldev,
 245                                 struct pinctrl_pin_desc const *pins,
 246                                 unsigned num_descs)
 247{
 248        unsigned i;
 249        int ret = 0;
 250
 251        for (i = 0; i < num_descs; i++) {
 252                ret = pinctrl_register_one_pin(pctldev,
 253                                               pins[i].number, pins[i].name);
 254                if (ret)
 255                        return ret;
 256        }
 257
 258        return 0;
 259}
 260
 261/**
 262 * pinctrl_match_gpio_range() - check if s="sref">pin_desc_tree,omment""sref">pin_desc_tree,omment""sref">pin_desc_tri/a>,omment""sref">pin_desc_tri/a>,omment""sref">pin_desc_tri/a>,omment""sref">pin_desc_tri/a>,omm"line" name="L189"> 189(&ae=i" clas.c#L164" id="L164" class2"line2 name="L164"> 164 189(&a"L255" clre.c#L165" id="L165" cla2s="li2e" name="L165"> 165pin_dc" clomm"line" name="L189"> 189(&ac#L256" iinctrl/core.c#L166" id="2166" 2lass="line" name="L166"> 166 189(&aivers/pin> 2 This2tells us whether a certain pin Triesass=ommen,omef">pin_d       ss=i" ci/a>,s handls/pinc lists may beomm"line" name="L189"> 189(&ahref="dri="drivers/pinctrl/core.c2L168"2id="L168" class="line" name="L1 a device ,line" nai" ci/a>,e poss="srm"line" name="L189"> 189(&a href="drrl/core.c#L169" id="L1692 clas2="line" name="L169"> 169 170<2a>piline" name="L253"> 253<""sref">pi      drivers/pinctrl/core.c#L230" id="L2struct pinctrl_dev,omment""sref">piline" name="L253"> 253pi.c#L245" id="L245" class="line" name="L245"> 245                                 struct ""srret;
2in_de2c *pindesc2/a>;
piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi     ctrl/core.c#L183" id="L183" class="line" name="L183"> 183pin &2t; 0)2 1252              a href="+code=name" classLoop ov   s" ci/a>,s sa href="drivers/pinctrl/core.c#L230" id="L2176" id="2176" class="line" name="2176">2176
pinctrldev_list, node)sr>piline" name="L25f">pi    c#L108" id="L108" classctrl/core.c#L241" id="L241" class="line" name="L241"""sref">pi"L254" class="li""sref">pi"39" class="line" name=ocmp" class="sref">strcmp(mutex_2ock,we'rspan s" cline"ci/a>,esa href="drivers/pinctrl/core.c#L230" id="L21href="driinctrl_mutex);
re ="liesc_tree" class="sr>piline" name="L25f">pi    s="line" name="L241"bad="L177" class="lbad=">re =()
re =lass="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"bad="L177" class="lbad=">re +s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"9                struct ( 170<2f">pinctrl_mutex);
<2 href27" class="sref">number);
piline" name="L25f">pi    "drivers/pinctrl/core.c#L230" id="L2ef="+code2pindesc" class="sref">pi2desc<28="sref">name,  261 261EXPORT2SYMBO28.c#L144" id="L144" class="line" name="L2s="sref">2in_is_valid);
 158
/* Dele2es a range of pin descri2tors 2/ 261 261pin_desc_tree,omment""srefin_desc *  98 253<"et_nstanct""sref">pin_desfindinstancaf="+ef">pi/a>,omm"line" name="L189"> 189(&="drivers2pinctrl/core.c#L189" id=2L189"28"line" name="L169"> 169i
i;
 120 * @pin: pin to che clL116" c pins may not exist.
 191
 121,ment">ef">pi/a>,e clL116" c pins may not exist.
i = 0;2 c pins may not exist.
n2m_pin29_tri/a>,omment""sref">pin_descFindii" class="sref">ipin_dcode=i" clasc" claof c pins may not exist.
2pindesc;
 164ef">psubsystem,line" nai" c to cheandii" commening,ef">pi/a>,. Rne" ns c pins may not exist.
p2ndesc29" name="L165"> 165ef">pi/a>,ecould/pincbelL116"pan anyc to chesan>,e t c pins may not exist.
radix_tree_lookup(2amp;<29ass="line" name="L166"> 166 ore.c#L170" id="L170" class="line" name="L2i" class=2sref">i].NULL<2a>) {
piline" name="L253"> 253<"et_nstanct""sref">piass="+code=ret" class="sref">""srre" class="sref">pins[p2tldev2/a>-> 245                   c_tree" class="outcomL245"> 245 outcom">re" class="sref">pins[i].number);
piline" name="L253"> 253<""sref">pi       c_tree" class="outf">piline" name="L25outf">pi">ret;
dynamic_name<3a>)
<3 href=>(pindesc-> 245                                 struct  183ipinctrldev_list, node)struct  245         strref=39" class="line" name=ocmp" class="sref">strcmp( 256        }
<="L173" class="line" namelass=""sref">piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi    e="L183"> 183i].pinctrl_register_one_pin(struct 3a href="+3ode=pinctrl_dev" class="3ref">30ore.c#L198" id="L198"c_tree" class="sr>piline" name="L25f">pi     ctrl/core.c#L183"_tri/a>,omment""sref">piline" name="L253"> 253pi.c#L2sref">node)struct ""srrete="L183"> 183p3">nam3)
piline" name="L25f">pi     href="+code=pr_err" class="sref">pr_err("pin %d 3ref="+cod3=pin_desc" class="sref">3in_de30" class="sref">number);
< c_tree" class="outcomL245"> 245 outcom">rers/pinctrl/core.c#L228" id="L228" class="line" name="L228"> 228        pindesc3/a>;
piline" name="L25outf">pi">redesc_tree" class="sr>piline" name="L25f">pi    e="L183"> 183pindesc = <31=name" class="sref">name)ine" name="L260"> 260
kfree(pin3) {
<3 href="drivers/pinctrl/c3re.c#31s="line" name="L225"> 225        d3sc->     183 217="L225"> 225         259}
3de=pindes3" class="sref">pindesc = <31"line" name="L169"> 169ck if s="sref">pin_desc_tree,omment""sre3c(siz3of(* 120 253pin_dese="L215",omef">pi/a>,ef="+al device to check the pin on
 121,eto check the pin on
 @i/a>,ment">ef">pi/a>,ess=add check the pin on
pin_des check the pin on
 164 addnctrl_free_pief">sass=be handls/pinc lists may bef a device . Call check the pin on
 165 1ose="L215",handls/pi/a>,s af15",e="L215"ing,youry bef a device . check the pin on
d3" name="L226"> 226  3     32ass="line" name="L166"> 166 href="+code=pctldev" class=addt""sref">piline" name="L253"> 253pi.c#L245" id="L245" class="line" name="L245"> 245                                 struct pins,
piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi    t;
3229     an class="string">"pin %d 330" class3"line" name="L230"> 230<3a>   32drivers/pinctrl/core.c#L180" id="L class="line" name="L178"> 178        pindesc = 3>name3= name;rl/core.c#L183"s="sraddts m        pi    s="line" name="L241"9ocmp" class="sref">strcmppi"L254" class="li""sref">pi"39" f="+code=pin_desc_get" class="sref">3>e=pindes3  pindesrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return name3=  244static int name3/a> ==  184
piline" name="L253"> 253pi.c#Le="L181"> 181        return ready re3L235" id="L235" class="l3ne" n33drivers/pinctrl/core.c#L226" id="L226" 3s="sref">3ynamic_name = piev,
pie.c#L245" id="L245" class="line" name="L245"> 245                                 struct  247{="L173" class="line" namelass=""sref">piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piev,
pi"39" cdrivers/pinctrl/core.c#L230" id="L3r href="+3ree_insert" class="sref"3radix33ref">pins,
piev,
pi"39" fdrivers/pinctrl/core.c#L230" id="L3r="L229" 3"sref">pctldev-><3 href33     an class="string">"pin %d 3#37;d (%s) on %s\n",33ref="drivers/pinctrl/core.c#L251ret = 0;
; i++) {
pi"39" "+code=ret" class="sref">ret = kasprintf(piline" name="L253"> 253pi.c#L2sref">node)struct pi"39" ="L254"> 254                if ( 181        return pinct="L244"> 244static int 3inctr3_dev 184
piev,
pie.c#Le="L181"> 181        return 3 * 261pin_desc_tree,omment""sre3 href="+c3de=i" class="sref">i3
  98 253<"et_group_selectorn_dese=e" ns=i" cgroup selectoref="+algroupif s="sref">pin_desc_tree,omment""sre3 ="L229" 3ne" name="L249"> 2493     34"line" name="L169"> 169 * @pin: pi>ipin_desc_tree,omment""sre3 37;d ("line" name="L250"> 250<3a>
 120 * @group pinctok upif s="sref">pin_desc_tree,omment""sre3="+code=i3 class="sref">i = 0;3 1213um_de3cs> * 253<"et_group_selector.c#L245" id="L245" class="line" name="L245"> 245                                 struct pinctrl_register_one_pi3(3a href="+code=pctldev""""""""""""""""rivers/pinctrl/core.c#L210" 245    _groupif" fdrivers/pinctrl/core.c#L230" id="L3de=i" cla3s="sref">i]."pin %d 3="L255" c3ass="line" name="L255"> 355,
rers/pinctrl/core.c#L228" id="L228" class="line" names="line" name="L241"> 241        return 0;
re="L181"> 181        return  256   href="drivers/pinctrl/corgroupev,
rers/pinctrl/core.c#L228opev,
res="line" name="L241""et_groups_coun=L245"> 245 "et_groups_coun=.c#L2sref">node)struct  181        return "roup_selectorline" name="L25group_selector.c#Lname="L251"> 251        for ( 259}
3a href="d3ivers/pinctrl/core.c#L263" id=3L260" class="lwhilelass="line" name="roup_selectorline" name="L25group_selector.c#Lnclass="line" name="L2groupev,
respan class="string">"pin %d 3inctrl/co3e.c#L261" id="L261" clas3="lin35" class="sref">numberrivers/pinctrl/core.c#L210"g" class="sref">ret)
,
res="line" name="L241""et_group"L236"> 236     "et_group"L236.c#L2sref">node)struct "pin %d 3">/**
 181        return  262<3a>3* pin36=name" class="sref">n  re!ss="line" name=c#LcmpL245"> 245 c#Lcmp.c#L2sref">node)g" class="sref">ret)
 245    _groupif" fspan class="string">"pin %d 3">pin_des3_tree,omment""sref">3in_de36 href="+code=pctldev"""""""""ne" name="L241"> v_db" id="L240" clas> v_db".c#L2sref">node)struct "pin %d 3"e=i" cla3.c#L164" id="L164" class3"line36umber" class="sref">number,                 retu116"pgroup selectorea>    ef="+="sref">number,  235            ########ss="line" name="roup_selectorline" name="L25group_selector.c#La href="+code=pindesc" class="sref"3ac#L256" 3inctrl/core.c#L166" id="3166" 36ef">pins,
 245    _groupif" f="L181"> 181        return  3 This36class="line" name="L247"> 247="drivers/pinctrl/core"roup_selectorline" name="L25group_selector.c#L="L181"> 181        return pins,
 244static int kzall370"> 170<3a>numberrs/pinctrl/core"roup_selectorline" name="L25group_selector.c#L++="L181"> 181        return  244static int 3in_de37href="+code=pin_desc_get" class="sref">3">pindesc3/a>;
 v_ot;failed to alloc struct pin_desc\n");
 222                retdoes/pinchave/ * @group ="sref">number, pin &3t; 0)37L204" id="L204" class="line" name="Lid=_groupL245"> 245    _groupif" f="L181"> 181        return  13537drivers/pinctrl/core.c#L226" id="L226" 3176" id="3176" class="line" name="3176">37class="sref">     218
mutex_3ock 217="L225"> 225         259}
31 href="d3t( 169ck if s="sref">pin_desc_tree,omment""sre3d0"> 170<3f">pinctrl_mutex);
<3 href37ne" name="L120"> 120 253if s="sref">pin_desc_tree,omment""sre3ef="+code3pindesc" class="sref">pi3desc<38e" name="L121"> 121pin_d       code=i" cef">psubsystemd       c" clomm"line" name="L189"> 189(3ULL;
3a href="drivers/pinctrl/3ore.c38122 c pins may not exist.
EXPORT3SYMBO38_tri/a>,omment""sref">pin_desc68"> fun>
ion should/*ONLY*nbe use"pcode=""srlib-bad=dcef">pxist.
 164 165pin_sass=be muxe"pan. check the pin on
 166,
""srret;
 245                                 struct  218
i;
piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi    e="L183"> 183 191
 183i = 0;3ne" e="L183"> 183n3m_pin39.c#L144" id="L144" class="line" name="L3s="sref">3pindesc;
 178        pindesc = 3s>/* Dele3=pindesc" class="sref">p3ndesc39drivers/pinctrl/core.c#L226" id="L226" 3s76" id="3">radix_tree_lookup(3amp;<3976
,
piline" name="L253"> 253<"et_nstanct""sref">piass="" class="sref">""srrec#L108" id="L108" classctrl/core.c#L241" id="L241" clas_"
pi    f="+code=pin_desc_get" class="sref">3se=mutex_3sref">i].retpan class="string">"pin %d 3ef">NULL<3a>) {
 180
 181        return p3tldev3/a>-> 257
i]. 225        dynamic_name<4a>)
<40.c#L262" id="L262" class="line" name="L4lass="sre4">pindesc->ine" ers/pinctrl/core.c""srre -s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"bad="L177" class="lbad=">re +s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"   _bad="L177" class="l   _bad=s="line" name="L257"> 257
,
,
node)struct pi    trl/core.c#L254" id=line" name="L253">ne" _"" class="sref">""srrete="L183"> 183 261i].pctldev;
 180
 181        return 40ore.c#L198" idrivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
p4">nam4)
="L225"> 225        i]. 184
,
 181        return pindesc4/a>;
pindesc = <41rl_match_gpio_range() - check if s="sref">pin_desc_tree,omment""sre4in_desc_g4t(,omment""sref">pin_desc_tri/a>,f=num""srn_desf=nu@pin: pinon aesanglivers, currpinly use"pasief">if s="sref">pin_desc_tree,omment""sre4) {
<4 href="drivers/pinctrl/c4re.c#41name="L164"> 164pin_d       code=i" cef">psubsystemd       c" clomm"line" name="L189"> 189(4lready re4istered on %s\n"4 165 189(4lnctrl/co4sc-> 166 fun>
ion should/*ONLY*nbe use"pcode=""srlib-bad=dcef">pxist.
  98pin_sass=be muxe"pout. check the pin on
pindesc = <41"line" name="L169"> 169,
""srret;
( 245                                 struct  181        return piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi    ="L181"> 181        return ) {
<4ctrl/core.c#L225" id="L245" cl42L204" id="L20 inctrl/core.c#L251" id="L251" class="line" e="L183"> 183ne" e="L183"> 183d4" name="L226"> 226  4     42186 261pctldev;
 178        pindesc = 4d href="+4/* Copy basic pin info *4 259}
4d="L229" 4lass="line" name="L229">4229,
piline" name="L253"> 253<"et_nstanct""sref">piass="" class="sref">""srrec#L108" id="L108" classctrl/core.c#L241" id="L241" clas_"
pi    f="+code=pin_desc_get" class="sref">430" class4"line" name="L230"> 230<4a>   42drivers/pinct  return retpan class="string">"pin %d 4>name4= ;
 180
 181        return e=pindes4  ndriver="L181"> 181        return n_desc_g4=  225        name4/a> == ready re4L235" id="L235" class="l4ne" n43             a href="+code=name" class="n clt ss=i" cpass="sref">i4ynamic_name = ne" ers/pinctrl/core.c""srre -s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"bad="L177" class="lbad=">re +s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"   _bad="L177" class="l   _bad=s="line" name="L257"> 257
pinctrl_register_one_pin(struct 4r href="+4ree_insert" class="sref"4radix43ref">pins/pinctrl/core.c#L2mux=f=num""srv,
node)struct ne" _"" class="sref">sr>piline" name="L25f">pi    f="+code=pin_desc_get" class="sref">4r="L229" 4"sref">pctldev-><4 href43href="+code=kzalloc" class="sref">kzall4#37;d (/s) on %s\n",43drivers/pinctrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return -> 225        ref="+code=pinde4" id="L184" class="line" name="L184"> 184
,
 181        return pinct_dev *
ionline" name="L253"> 253<""sredire>
ion pin_+code=ret" class="sref">""srre_"" class="sref">booinpude=ret" class="sinpud">ret;
4inctr4_dev"pin %d 4+="sref">4 * 245                                 struct  181        return 
piline" name="L253"> 253<""sref">pi      c_tree" class="sr>piline" name="L25f">pi    ="L181"> 181        return i4
pins inctrl/core.c#L251" id="L251" class="line" e="L183"> 183 2494     448ef">pins inctrl/core.c#L251p="line" name="L253">ne" e="L183"> 183 250<4a>
 183i = 0;4name;rl/core.c#L183"stldev,
piline" name="L253"> 253<"et_nstanct""sref">piass="" class="sref">""srrec#L108" id="L108" classctrl/core.c#L241" id="L241" clas_"
pi    f="+code=pin_desc_get" class="sref">4ef="+code4num_descs" class="sref">4um_de4511" id="L221"  return ret"+code=pin_desc_get" class="sref">4en_desc_g4>pinctrl_register_one_pi4(4a href="+code=pctldev"drivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
i]. 455ine" ers/pinctrl/core.c""srre -s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"bad="L177" class="lbad=">re +s="line" name="Lsr>piline" name="L25f">pi    s="line" name="L241"   _bad="L177" class="l   _bad=s="line" name="L257"> 257
pinctrl_register_one_pin(struct 4 href="dr4vers/pinctrl/core.c#L2594 id="45ore.c#L198" idrivers/pinctrl/core.c"drmux=""sredire>
ionline" name="L253">mux=""sredire>
ion.c#L2sref">node)struct pi    trl/core.c#L254" id=line" name="L253">ne" _"" class="sref">inpude=ret" class="sinpud">retine" name="L257"> 257
)
="L225"> 225         183/**
 121pin_desc_tree,omment""sre462"> 262<4a>4* pin46122 3"> 253<""sredire>
ion_inpudn_dese=quest aeef">pin_dss=go> ino> ipud modlomm"line" name="L189"> 189(4">pin_des4_tree,omment""sref">4in_de46_tri/a>,omment""sref">pin_desca""sr: drivef">pin_d       code=i" cef">psubsystemd       c" clomm"line" name="L189"> 189(4"e=i" cla4.c#L164" id="L164" class4"line46name="L164"> 164 189(4""L255" c4re.c#L165" id="L165" cla4s="li46" name="L165"> 165 fun>
ion should/*ONLY*nbe use"pcode=""srlib-bad=dcef">pxist.
 166
ion_inpudn_dsemantics, platf="mseandiindividual c pins may not exist.
 4 This46ells us whether a certain pin xist. * @pin: pinef">pcalls. check the pin on
  98
ion_inpude=ret" class="sctldev" ""sredire>
ion_inpud pin_+code=ret" class="sref">""srret;
 170<4a>"pin %d 4struct  1834in_de47"sref">pindesrl/core.c#L180" id="L class="line" name="L178"> 178        pindesc = 4">pindesc4/a>;
,

ionline" name="L253"> 253<""sredire>
ion pin_" class="sref">""srre_"" class="sref">truiline" name="L25trui href="+code=pin_desc_get" class="sref">4"e=i" cla4" class="sref">pin &4t; 0)47L204" id="L20al/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return  14547             drivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
47class="L225"> 225        mutex_4ock 217ref="+code=pinde4" id="L184" class="line" name="L184"> 184

ion_inpude=ret" class="sctldev" ""sredire>
ion_inpud pine="L181"> 181        return  259}
41 href="d4t( 169ck if s="sref">pin_desc_tree,omment""sre4d0"> 170<4f">pinctrl_mutex);
<4 href47ne" name="L120"> 120 253<""sredire>
ion_outpudn_dese=quest aeef">pin_dss=go> ino>outpud modlomm"line" name="L189"> 189(4ef="+code4pindesc" class="sref">pi4desc<48e" name="L121"> 121pin_d       code=i" cef">psubsystemd       c" clomm"line" name="L189"> 189(4ULL;
4a href="drivers/pinctrl/4ore.c48122 c pins may not exist.
EXPORT4SYMBO48_tri/a>,omment""sref">pin_desc68"> fun>
ion should/*ONLY*nbe use"pcode=""srlib-bad=dcef">pxist.
 164
ion_outpudn_dsemantics, platf="mseandiindividual c pins may not exist.
 165 * @pin: pinef">pcalls. check the pin on
 166
ion_outpude=ret" class="sctldev" ""sredire>
ion_outpud pin_+code=ret" class="sref">""srret;
pins inctrl/core.c#L251#L257" id="L257" class="line" name="L257"> 257
i;
 178        pindesc = 4s="line" 4ame="L191"> 191
name;rl/core.c#L183"stldev,

ionline" name="L253"> 253<""sredire>
ion pin_" class="sref">""srre_"" class="sref">fald="L177" class="lfald= href="+code=pin_desc_get" class="sref">4sLL;
4 class="sref">i = 0;4pindesrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return pindesc4num_pins" class="sref">n4m_pin492            drivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
4pindesc;
 244static int p34esc3949v 184

ion_outpud pin_+"L181"> 181        return p" id="4L1radix_tree_lookup(3a4p;<39496 261i]. " id="L245" class="line" nam""ev 253<"eev 253<"                   strne" name="L253">re_""261"> 261;
p3t4dev3/49   an class="string">"pin %d 3#4+code=i3e4">i]. 253<"eev 181        return dynamic_name<4a5)
<405c#L262" id="L262" class="line" name="L4l5ss="sre4"5pindesc->pindesrl/core.c#L180" i"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctrevre_""line" name="L241"  ev,
facmp" class="sref">strcmp;
 245 c#Lcmp.c#L2sref">node)g"evfacrs/ne" name="L253"ers/ret;
number,ivers/pinctrl/core.c#Lev 181        return p35" c4a50ivers/pinctrl/core.c#L226" id="L226" 3s5ctrl/co4e5c#L207" id="L207" clas4=5lin4050ass="sref">     181        return i]. 225        4050" class="line" name="L259"> 259}
415href="+4o5ctldev" class="sref">p4"5nam4<5a>)
="ev " id="L245" class="line" nam""ev 253<"eev 253<"                   strne" name="L253">re_""261"> 261i].numberrsc_________________________vers/pinctrl/core.c#L210"g"ers/ne" name="L253"ers/ret;
(pindesc5= <4151ame" class=45" id="L245" class="line" name=ev 253<"eev 181        return (faGFP_KERNEs="line" name="LGFP_KERNEsin_+"L181"> 181        return "pin %d 4>5ctrl/co4s5->pins,
re_""line" name="L241"  class="line" name="L222"n class="string">"pin %d 3"5ctrl/co4=5L217" class="line" nam4=5L214151ass="line" name="L247"> 247="22                retu11aileds=goal1805" id="L> 253<"eev,  181        return  181        return pindesc5= <4151f">pins iL225"> 225        (siz4o5(* 183) {
<4 5ref="drivers/pinctrl/c4r5.c#4252">name;rl/core.c#L183"stev 181        return 5>pindesrl/core.c#L180" iINIT_LIST_HEADne" name="L253"INIT_LIST_HEAD/a>
,
 181        return 
strcmpre_""line" name="L241"  ev,
 181        return 
<4 5ref4252ivers/pinctrl/core.c#L226" id="L226" 3s5sref">d4"5name="L226"> 226  4 5   4252ass="sref">     181        return  =4<5 href="+code=pctldev" 4l5ss=4252217="L225"> 225         259}
4d5"L229" 4l5ss="line" name="L229">4259)
="ev nctrl/core.c#L251#Ldt""eett   ne" name="L253"dt""eett   href=" id="L245" class="line" nam"ne" name="L253"> 253<"                   strne" name="L253">re_""5" id="L245" class="line" name=ma245"> 245    _gname=ma2     vers/p              stma245"> 245   ma2    /a>;
 230<4a5   4252claan class="string">"pin %d 4s5ame4=5 253<"eev 181        return  181        return  257
name4/5> == 5eady re4L535" id="L235" class="l4n5" n435            a hcore.c#L180" ievre_""5             stma245"> 245   ma2    "line" name="L241"9ocrs/ne" name="L253"ers/ret<"L181"> 181        return 4y5amic_name = 
 181        return  =4<5rl/core.c#L238" id="L2485 cl4353ass="line" name="L247hcore.c#L180" ievre_""5             stma245"> 245   ma2    "line" name="L241"9ocrs/ne" name="L253"ers/ret<"L181"> 181        return pins/pneturn node)g"ev;
pctldev-><4 5ref4353->node)g"ev 181        return ,4353" n="L183"> 1835>pins/pneturn  245   ma2    "line" name="L241"9otypine" name="L25truypi    s//pinctrl/core.c#LPIN_MAP_TYPE_DUMMY_STATEne" name="L253"PIN_MAP_TYPE_DUMMY_STATE    )181"> 181        return ndriver="="L251"> 251        for (5404" id="L20al/core.c#L180" ieett   ne" name="L253"eett       s/pinctrl/core.c#Lkzal180ne" name="L253"kzal180href="izeof(_tree" class="sreett   ne" name="L253"eett       )" class="sref">faGFP_KERNEs="line" name="LGFP_KERNEsin_+"L181"> 181        return 4i5ctr4_5404" id="L20 ineturn "pin %d 4>5"sref">4 5pins,
re_""line" name="L241"  class="line" name="L222"n class="string">"pin %d 3"5"driver4/5inctrl/core.c#L247" id4"52474454ass="line" name="L247"> 247="22                retu11aileds=goal1805" id="L> 253<"eeett   number,  181        return i4
5a h4454e.c#L198" id="L198"c_   181        return  2494 5   4454f">pins iL225"> 225         250<4a5
 183i = 0;4<5 hr455f">name;rl/core.c#L183"steett   ne" name="L253"eett       "line" name="L241"9otypine" name="L25truypi    s/5             stma245"> 245   ma2    "line" name="L241"9otypine" name="L25truypi    L181"> 181        return 4u5_de4555ef="+code=pin_desc_get" class="sref">3"5_desc_g4>5inctrl_register_one_pi4<5a>(4a55.c#L173" idne" name="L241"steett   ne" name="L253"eett       "line" name="L241"9oruct  253<"etrucde="etrucrs/ne" name="L253"set_> 253<"etrucde="etrucrs/in_desc\n" 245   ma2    "line" name="L241"9o53<"etruccrs/ne" name="L253"53<"etruccrs/in_+"L181"> 181        return i]."pin %d 4>5L255" c4a5s="line" name="L255"> 455re_""line" name="L241"  class="line" name="L222"n "22                retu1unknownL> 253<" tanct""sref"> in ma2 166ry, taft p    probember, pins,
 245   ma2    "line" name="L241"9o53<"etruccrs/ne" name="L253"53<"etruccrs/in_+"L181"> 181        return node)g"eett   ne" name="L253"eett       )L181"> 181        return  169ck iref="drivers/pinctrl/core.c#L230" id="L4U5"L229" 4i5ers/pinctrl/core.c#L264"5id=4555ine" name="L169"> 169 120 taft  obtain    t> fu> 253<" hdiiles=gol
 121 262<4a54*5pin4656ame" class="sref">ndriver="=ef="+code=pindeorPROBE_DEFER="line" name="L1PROBE_DEFER    L181"> 181        return ,omment""sref">4i5_de4656.c#L173" id="L225"> 225        5L255" c4r5.c#L165" id="L165" cla4s5"li4656           a switchturn  245   ma2    "line" name="L241"9otypine" name="L25truypi    an class="string">"pin %d 4>5#L256" 4i5ctrl/core.c#L166" id="4156" 4656">pins,
pin:class="string">"pin %d 4>5#driver4/5span class="comment"> 4 5his4656ass="line" name="L247hcore.c#L180" ildev,
 245   ma2    " class="sref">faeett   ne" name="L253"eett       )L181"> 181        return  181        return pin:class="string">"pin %d 4>5#;d ("5pin:class="string">"pin %d 4>5ruct ,
 245   ma2    " class="sref">faeett   ne" name="L253"eett       )L181"> 181        return 4i5_de4757ame" class="sref">ndrbreakL181"> 181        return ;
"pin %d 4>5ri" cla4.5class="sref">pin &4t5 0)4757ber" class="sref">numhcore.c#L180" ildev,
 181        return  1455/a>4757           a a href="breakL181"> 181        return 47575c#L173" id="L225"> 225        mutex_4o5kretp < 0an class="string">"pin %d 4>5ref="dr4i5ctrl_mutex);
node)g"eett   ne" name="L253"eett       )L181"> 181        return  257
 170<4f5>pinctrl_mutex);
<4 5ref4757class="sref="L225"> 225        pi4d5sc<4858#L262" id="L262" class="line" name="L4l5L;
4a5href="drivers/pinctrl/4o5e.c4858ref">pindesrl/core.c#L180" i"sraddt""tailne" name="L253""sraddt""tail/a>
strcmp,
 181        return EXPORT4S5MBO4858#L144" id="L144" class="line" name="L4+5code=pi4i5_is_valid);
 251        for ( 225         261 181        return 5*pins i" id="L245" class="line" nam"ne" name="L253"> 253<"                   strne" name="L253">re_"L251"> 251        for ( 170<4f5lass="sref">i;
 183 191
name;rl/core.c#L183"st"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctrrne" name="L253">re_""5a href="drivers/pinctrl/core"srane" name="L253"> 253<"e"sra    " class="sref">facmp" class="sref">strcmp;
i = 0;4<5 hr4959ame" class="sref">ndrreturn re_""line" name="L241"  class="line" name="L222"ns//pinctrl/core.c#Lclass="line" name="L222"n)181"> 181        return n4m5pin4959ref="+code=pctldev"dr"+codedrivers/pinctrl/core.c#Lrne" name="L253">re_"L251"> 251        for (4p5ndesc;
5
p35esc3959           drivers/pinctrl/core.c#LNULs="line" name="LNULs    L181"> 181        return  225        i]. ref="+code=pctldev" class=f=put 178 253<"eput 178 253<"                   strne" name="L253">re_""5             stoinpu"srane" name="L253"pu"srain_+"L181"> 181        return p3t5dev3/59ef="+code=kzalloc" class="sref">kzall4#5+code=i3e5">i]. " id="L245" class="line" nam"ne" name="L253"e" c3<"                   stcre 181        return dynamic_name<4a6)
<4060ef=>(-> 253<"                   strne" name="L253">re_"L251"> 251        for ( 251        for (;
,
sma2<_cmp"in_dL251"> 251        for (p36" c4a6004" id="L20 inctrl/core.c#L251p=ine" name="L253"pin_dL251"> 251        for ((3a6lin4060ass="sref">  " id="L245" class="line" name=ma245"> 245    _gname=ma2     vers/p              stma245"> 245   ma2    L251"> 251        for (i]. 257
4060" class="line" name="L259"> 259}
416href="+4o6ctldev" class="sref">p4"6nam4<60ode=pin_desc_tame="L169"> 169ck iref="drivers/pinctrl/core.c#L230" id="L4U6href="+4o6">i]. 120 121 fu fuwhat"versum/ashwill getuwhen=quest a     f="drivers/pinctrl/core.c#L230" id="L4U6ps="sre4"6class="sref">pindesc6= <41612 aaaaaaaa* a* @pin: pinefhdiileswith"> 253<""set()  f="drivers/pinctrl/core.c#L230" id="L4U6p      4 6/a>(,omment""sref">pin_descaaaaaaaa*href="drivers/pinctrl/core.c#L230" id="L4U6a>) {
<4 6ref="drivers/pinctrl/c4r6.c#416104" id="L20al/core.c#L180" irne" name="L253">re_"s/pinctrl/core.c#Lkzal180ne" name="L253"kzal180href="izeof(_tree" class="srrne" name="L253">re_")" class="sref">faGFP_KERNEs="line" name="LGFP_KERNEsin_+"L181"> 181        return re_"s//pinctrl/core.c#LNULs="line" name="LNULs    an class="string">"pin %d 4>6ctrl/co4s6->pins,
                retu11aileds=goal1805" id="L> 253<"number,  181        return  181        return  225        pindesc6= <4161f">pins irn re_""line" name="L241"  class="line" name="L222"ns/pinctrl/core.c#Lclass="line" name="L222"nL181"> 181        return 
re_""line" name="L241"  ev,
 181        return ) {
<4 6ref="drivers/pinctrl/c4r6.c#4262">name;rl/core.c#L183"stINIT_LIST_HEADne" name="L253"INIT_LIST_HEAD/a>
re_""line" name="L241"  dt=ma2,
 181        return 3"6_desc_g4=6L223" class="line" nam4=6L224262.c#L173" idne" name="L241"stldev,
 245    _gname=dt=to=ma2href="drivers/pinctrrne" name="L253">re_""L181"> 181        return ) {
<4 6rl/core.c#L225" id="L2456 cl426234" id="L20 ineturn retp < 0an class="string">"pin %d 4>6_ady re4i6 Set owner */
<4 6ref4262           a a href="inctrl/core.c#Lknum"ne" name="L253"knum"#L2sref">node)g"rne" name="L253">re_""L181"> 181        return  226  4 6   4262">pins,
retp"L181"> 181        return  225         259}
4d6"L229" 4l6ss="line" name="L229">4269pins irn  181        return  230<4a6   4262" n="L183"> 183i ma2ss=golocpindesrl/core.c#L180" i"ms_each_ma2,
sma2<_cmp"in_d" class="sref">inpne" name="L253"pin_d"5             stma245"> 245   ma2    an class="string">"pin %d 4>6=desc_g4=6 futanct""*href="drivers/pinctrl/core.c#L230" id="L4U6=>) {
<4 6> == numneturn  245 c#Lcmp.c#L2sref">node)g"ma245"> 245   ma2    "line" name="L241"9oclaccrs/ne" name="L253"truccrs/in_+"5             sttrucrs/ne" name="L253"trucrs/in_d//a>;
 181        return 4y6amic_name =  261 =4<6rl/core.c#L238" id="L2486 cl4363ass="line" name="L247hcore.c#L180" ildev,
re_""5             stma245"> 245   ma2    aL181"> 181        return retp < 0an class="string">"pin %d 4>6"L229" 4"6ref">pctldev-><4 6ref4363-> 253<"eput 178re_""5             stld="L177" class="lfald= href="+code=pin_desc_get" class="sref">4s6" class4"6s) on %s\n",4363class="sref">numberrsc_______  retp"L181"> 181        return 6> 225         225        6404" id="L20al/ref="+code=name" class="Add  cpass=muxs=i" cpaglobal "sra"*href="drivers/pinctrl/core.c#L230" id="L4U6+code=p4n6trl_dev" class="sref">4i6ctr4_64           a hcore.c#L180" i"sraddt""tailne" name="L253""sraddt""tail/a>
re_""line" name="L241"  cmp" class="sref">strcmp 253<"e"sra    "L181"> 181        return 4y6 261re_"L251"> 251        for (i4
6a h4464e.c#LL225"> 225         2494 6   4464ef="+code=kzalloc" class="sref">kzall4#67;d ("6ine" name="L250"> 250<4a6
 " id="L245" class="line" nam"ne" name="L253"e" c3<"                   st> 253<""set 178 253<"eset 178 181        return i = 0;4<6 hr4565ef=>(4u6_de4565ame" class=45" id="L245" class="line" namene" name="L253"> 253<"                   strne" name="L253">re_"L251"> 251        for (6inctrl_register_one_pi4<6a>(4a65#L144" id="L144" class="line" name="L4+6=i" cla4s6"sref">i]. 181        return  456 181        return  261re_"s/pinctrl/core.c#Lfdiv"e" nam"ne" name="L253"fdiv"e" nam"href=sc\n" 181        return pins/pneturn re_"s!/pinctrl/core.c#LNULs="line" name="LNULs    a181"> 181        return  181        return  183 181        return  262<4a64*6pin4666ame" L225"> 225        ,omment""sref">4i6_de4666#L144" id="L144" class="line" name="L4+6=i" cla4.6#L164" id="L164" class4"6ine4666me="L164"> 164pin_desc_tree,omment""sre4d6L255" c4r6.c#L165" id="L165" cla4s6"li4666name="L165"> 165 253<""set()se=qutrieves  cpass=53<" hdiiles"ms a "L2ici  ="sref">pin_desc_tree,omment""sre4d6LL256" 4d6ctrl/core.c#L166" id="4166" 4666s="line" name="L166"> 166outbtainrivefhdiiles"ms  ="sref">pin_desc_tree,omment""sre4d6Ldriver4/6span class="comment"> 4 6his4666ass="ne" name="L166"> 166 253<""setne" name="L253"> 253<"esethref=" id="L245" class="lintanct"ss="line" name="L2ici    c_tree" class="srclass="line" name="L222"n)181"> 181        return "pin %d 3#6#;d ("6 253<"                   strne" name="L253">re_"L251"> 251        for (4i6_de4767ref">pindesrl/core.c#L180" id="L18lass="line" name="L178"> 178        pindesc = 4s6pindesc4/6>;
re_"s/pinctrl/core.c#L> 253<""set 178 253<"eset 178 181        return pin &4t6 0)476704" id="L20al/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return  1456/a>4767ivers/pinctrl/core.c#L226" id="L226" 3s6pL256" 4i66" class="line" name="4166">47675c#L173" id="ivers/pinctrl/core.c#Lrne" name="L253">re_"L251"> 251        for (mutex_4o6k 225         184
 253<"esethref"L181"> 181        return (kzall4#6"> 170<4f6>pinctrl_mutex);
<4 6ref47670" clev ref="+code=pctldev" class=f=put 178 253<"eput 178 253<"                   strne" name="L253">re_""5             stoinpu"srane" name="L253"pu"srain"n)181"> 181        return pi4d6sc<4868ef=>( 253<"eev 251        for (EXPORT4S6MBO48682me" class=45" id="L245" class="line" name=eett   ne" name="L253"e" name=eett       c_tree" class="sreett   ne" name="L253"eett       ,rl/core.c#L210"g"e2ne" name="L253"n2re_"L251"> 251        for ();
6175" cl4e6 a range of pin descri4t6rs 4868           a hcore.c#L180" i"srad"ms_each_166ry_safine" name="L253""srad"ms_each_166ry_safihref="drivers/pinctrevre_""line" name="L241"  ev,
facmp" class="sref">strcmp"pin %d 4>6=L256" 4i686" class="line" name=4L686"4868">pins,
,
facmp" class="sref">strcmp"pin %d 4>6=mutex_4o6ctrl_dev" class="sref"4p6nct4868ass="line" name="L247"> 247="switchturn "pin %d 4>6=ef="dr4i6*pin:class="string">"pin %d 4>6drivers4p6nctrl/core.c#L189" id=4L689"4868->re_""line" name="L241"  ev 181        return  170<4f6lass="sref">i;
numberrsc_______________________245" class="line" x="sdisable=eett   ne" name="L253"e" x="sdisable=eett   href="drivers/pinctreett   ne" name="L253"eett       "L181"> 181        return  191
 181        return ;
4a6lass="sref">i = 0;4<6 hr4969ame" class="sref">ndrrrrrrrrrrrrrrrrrbreakL181"> 181        return n4m6pin4969ref="+code=pctldev"dr"+codedrcasepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_PINne" name="L253"PIN_MAP_TYPE_CONFIGS_PIN>pin:class="string">"pin %d 4>6"sref">4p6ndesc;
num"+codedrcasepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_GROUPne" name="L253"PIN_MAP_TYPE_CONFIGS_GROUP>pin:class="string">"pin %d 4>6
p36esc3969           a a href="""""""""________245" class="line" confsnum"=eett   ne" name="L253"e" confsnum"=eett   href="drivers/pinctreett   ne" name="L253"eett       "L181"> 181        return (3a6p;<3969">pins,
 181        return i]. 247="tafault:class="string">"pin %d 4>6=desc6) {
 181        return p3t6dev3/69-> 225        i].numberrsc_______inctrl/core.c#L"sraddelne" name="L253""sraddel/a>
strcmp 181        return dynamic_name<4a7)
<4070" id="L221" ime="L247________" name="L241"9oknum"ne" name="L253"knum"#L2sref">node)g"eett   ne" name="L253"eett       )L181"> 181        return ->ndrL225"> 225        
strcmp 181        return ;
numhcore.c#L180" iknum"ne" name="L253"knum"#L2sref">node)g"ev 181        return p37" c4a7004" id="L20 iL225"> 225        (3a7lin40706 261i].,
re_"/L181"> 181        return 4070" class="line" name="L259"> 259}
417href="+4o7ctldev" class="sref">p4"7nam4<70ode=pin_desc_neturn  181        return i].numberrshnctrl/core.c#L"sraddelne" name="L253""sraddel/a>
re_""line" name="L241"  cmp" class="sref">strcmp 181        return ;
name;rl/core.c#L183"stknum"ne" name="L253"knum"#L2sref">node)g"rne" name="L253">re_""L181"> 181        return pindesc7= <4171ame" L225"> 225        ( 164pin_desc_tree,omment""sre4d7eady re4i7tered on %s\n"4<7spa4171name="L165"> 165 253<""put()se=quleasepa previously"> 1imedass=53<" hdiile s="sref">pin_desc_tree,omment""sre4d7e5     4 7-> 166pin_desc_tree,omment""sre4d7e6     4 7L217" class="line" nam4=7L214171ass="ne" name="L166"> 166 253<"eputhref=" id="L245" class="line" nam"ne" name="L253"> 253<"                   strne" name="L253">re_")181"> 181        return pindesc7= <4171   an class="string">"pin %d 3#7eref="+4o7(* 178        pindesc = 4s7a>) {
<4 7ref="drivers/pinctrl/c4r7.c#4272">name;rl/core.c#L183"stclass=f=put 178 253<"eput 178re_""5             st idine" name="L25truidiref="+code=pin_desc_get" class="sref">4s7as="sre4"7>pindesrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return  225        ) {
<4 7rl/core.c#L225" id="L2457 cl427234" if="+code=pindeor id="L184" class="line" name="L184"> 184
 253<"eputhref"L181"> 181        return 
<4 7ref4272ivers/pinctrl/core.c#L226" id="L226" 3s7atrl/co4s7name="L226"> 226  4 7   4272">pinev " id="L245" class="line" nam"=ev 253<"eev 253<"elookupeev 253<"                   strne" name="L253">re_""/pinctrl/core.c#L226" id="L226" 3s7a6     4 7 href="+code=pctldev" 4l7ss=4272ass="line" name="L247"> 247=""""""""""""""""""""""""""""""""""vers/pinctrl/core.c#L210"g"crs/ne" name="L253"crs/in_d//pinctrl/core.c#L226" id="L226" 3s7aref="+4o7 Copy basic pin info *4<7spa4272"drivers/pinctrl/core.c#L249" id="L2494=7"L229" 4l7ss="line" name="L229">4279pins i" id="L245" class="line" nam"=ev 253<"eev 181        return  230<4a7   4272" n="L183"> 183name;rl/core.c#L183"stevre_""5             stcrs/ne" name="L253"crs/in_d/L181"> 181        return pindesrlnetus="line" name=c#ev"pin %d 4>7=desc_g4=7 253<"edummy=ev"pin %d 4>7=>) {
<4 7> == nume;rl/ref="+code=name" class="crere_""line" name="L241"  class="line" name="L222"n "22                retu1us    ps=53<" dummyfev)number, 4y7amic_name = pins,
 181        return re_""5             stcrs/ne" name="L253"crs/in_d/L181"> 181        return  181        return pctldev-><4 7ref4373-> 181        return ,4373class="sref="L225"> 225        7> 181        return  225        74href="drivers/pinctrl/core.c#L175" id4>7+code=p4n7trl_dev" class="sref">4i7ctr4_74name="L165"> 165pin_desc_tree,omment""sre4d7nsref">4y7 166 253<"elookupeevpin_desc_tree,omment""sre4d7"driver4/7inctrl/core.c#L247" id4"72474474ass="ne" name="L166"> 166pin_desc_tree,omment""sre4d7"ref="+4o7=i" class="sref">i4
7a h4474e.c#Lne" name="L166"> 166pin_desc_tree,omment""sre4d7"L229" 4l7" name="L249"> 2494 7   4474ine" name="L169"> 169 250<4a7
 253<"eev 253<"elookupeev 253<"                   strne" name="L253">re_"""vers/pinctrl/core.c#L210"g"crs/ne" name="L253"crs/in_d//pinctrl/core.c#L226" id="L226" 3s7+code=i4 7lass="sref">i = 0;4<7 hr4575ef=>(4u7_de4575ame" class=45" id="L245" class="line" name=ev 253<"eev 181        return 7inctrl_register_one_pi4<7a>(4a75#L144" id="L144" class="line" name="L4+7=i" cla4s7"sref">i]. 178        pindesc = 4s7+code=p4n7s="line" name="L255"> 457 253<""lookupeev 253<"elookupeevre_""5             stcrs/ne" name="L253"crs/in_d/L181"> 181        return  180
 181        return pins/pivers/pinctrl/core.c#Lene" name="L253"e    L181"> 181        return  225         184
 253<"elookupeev 181        return  262<4a74*7pin4676ame" ev nctrl/core.c#L251p=> 253<"eeelecteev 253<"eeelecteev 253<"                   strne" name="L253">re_""/pinctrl/core.c#L226" id="L226" 3s7pin_des4_7ree,omment""sref">4i7_de4676ref="+code=pctldev"dr"+codedrrrrrrrrrrrrrrrr" id="L245" class="line" nam"=ev 253<"eev 181        return  257
 4 7his4676>pinctrl_register_one_pin(struct 4 7ref="dr4=7drivers/pinctrl/core.c4L768"4676f">pins/pneturn re_""line" name="L241"  ev 251        for ( 183pins/pneturn re_""line" name="L241"  ev"pin %d 4>7f="+cod4=7in_desc" class="sref">4i7_de4777ame" class="sref">ndrtame="L169"> 169ck iref="drivers/pinctrl/core.c#L230" id="L4U7pindesc4/7>;
pin_descaaaaaaaaaaaaaaaa* Tcefeet of groupsswith"a muxsconfigurpin &4t7 0)4777me="L164"> 164 1457/a>4777name="L165"> 165 fumight  usunusual, it's n cirely  f="drivers/pinctrl/core.c#L230" id="L4U7pL256" 4d76" class="line" name="4176">4777s="line" name="L166"> 166e  retu1user retu1-supplied ma2.c#g tables=i" uswritten  f="drivers/pinctrl/core.c#L230" id="L4U7pdriver4/7k" class="sref">mutex_4o7k 166);
 166 fu41"  puts that"group ncto a  f="drivers/pinctrl/core.c#L230" id="L4U7pL229" 4l7/a>( 169pinctrl_mutex);
<4 7ref4777" name="L120"> 120pi4d7sc<4878" id="L221" ime="L247" name="L241"  "srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctreett   ne" name="L253"eett       ,r08" id="L108" classctne" name="L253">re_""line" name="L241"  ev,
facmp" class="sref">strcmp"pin %d 4>7L;
4a7href="drivers/pinctrl/4o7e.c4878ame" class="sref">ndrrrrrrrrrclass="sref">faoinfoundne" name="L253"found    s/pinctrl/core.c#Lfd="L177" class="lfald= href=L251"> 251        for (EXPORT4S7MBO4878ref="+code=pctldev"dr"+codedrneturn pin//pinctrl/core.c#L226" id="L226" 3s7pi" cla4.7_is_valid);
nume;rlllllllllsrefinueL181"> 181        return ,
facmp" class="sref">strcmp"pin %d 4>7=L256" 4i786" class="line" name=4L786"4878">pins,
pin//pinctrl/core.c#L226" id="L226" 3s7pdriver4/7ctrl_dev" class="sref"4p7nct4878ass="line" name="L247"> 247="e;rlllllllllsrefinueL181"> 181        return  181        return "pin %d 4>7=;d ("7lass="sref">i;
numberrsc_______________________245" class="linfoundne" name="L253"found    s/pinctrl/core.c#L idine" name="L25truidiref=L181"> 181        return  191
 181        return ;
4a7lass="sref">i = 0;4<7 hr4979ame" class="sref">ndrrrrrrrrrrrrrrrrrL225"> 225        n4m7pin4979ref="+code=pctldev"dr"+codedrL225"> 225        ;
num"+codedrnetus="line" name=c#foundne" name="L253"found    //pinctrl/core.c#L226" id="L226" 3s7
p37esc3979           a a href="""""""""________245" class="line" x="sdisable=eett   ne" name="L253"e" x="sdisable=eett   href="drivers/pinctreett   ne" name="L253"eett       "L181"> 181        return (3a7p;<3979">pins,
 225        i]. 225        7) {
 259}
417privers4p7ctldev" class="sref">p3t7dev3/79f">pins irn re_""line" name="L241"  ev 181        return i]. 183dynamic_name<4a8)
<4080" id="L221" i/ref="+code=name" class="Applyoal1" cpaeett   e new ev->pindesrl/core.c#L180" i"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctreett   ne" name="L253"eett       ,r08" id="L108" classcev,
facmp" class="sref">strcmp"pin %d 4>8       4 8 "pin %d 4>8s3     4 8 desc;
numcasepinctrl/core.c#LPIN_MAP_TYPE_MUX_GROUPne" name="L253"PIN_MAP_TYPE_MUX_GROUP>pin:class="string">"pin %d 4>8 4     4 8 indesc" class="sref">p38" c4a80           a a href="""""""""rn  181        return (3a8lin4080">pins,
 181        return i].pin:class="string">"pin %d 4>8 7     4 8  {
4080e.c#L198" id="L198"c_casepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_GROUPne" name="L253"PIN_MAP_TYPE_CONFIGS_GROUP>pin:class="string">"pin %d 4>8href="+4o8ctldev" class="sref">p4"8nam4<80->,
 181        return numberrstldev"drbreakL181"> 181        return ;
"pin %d 4>8ps="sre4"8class="sref">pindesc8= <4181ame" class="sref">ndrrrrrrrrrclass="sref">faldev,
 181        return ( 181        return numL225"> 225        retp < 0an class="string">"pin %d 4>8e5     4 8->pins,
 247="ivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
 257
pindesc8= <4181-> 257
 183name;rlivers/p"L251"> 251        for ( 225         164pin_desc_tree,omment""sre4d8_ady re4i8 Set owner */
<4 8ref4282name="L165"> 165 253<""eelect()se=eelect/activpin_desc_tree,omment""sre4d8_5     4 8name="L226"> 226  4 8   4282s="line" name="L166"> 166e tanct"">hat"requestssconfigurpin_desc_tree,omment""sre4d8_6     4 8 href="+code=pctldev" 4l8ss=4282ass="ne" name="L166"> 166pin_desc_tree,omment""sre4d8_ref="+4o8 Copy basic pin info *4<8spa4282e.c#Lne" name="L166"> 1664289pinctrl/core.c#L251p=> 253<"eeelecteev 253<"                   strne" name="L253">re_"""" id="L245" class="line" nam"=ev 253<"eev 230<4a8   4282" n=" class="string">"pin %d 4>8ame4=8name;rlnctrl/core.c#L251p=257" id="L257" class="line" name="L257"> 257
" name="L257"> 257
 178        pindesc = 4s8=>) {
<4 8> == ,
 253<"eeelecteevre_"""tree" class="srev4s8=ady re4i835" id="L235" class="l4n8" n4383           a hcore.c#L180" id="L180" class="line" name="L180"> 180
 181        return 4y8amic_name =  261 257
 225        pctldev-><4 8ref4383->f="+code=pindeor id="L184" class="line" name="L184"> 184
 181        return  183 ref="+code=pctldev" tanm_e" c3<"equleasess="line" name="anm_e" c3<"equleasehref=" id="L245" class="lintanct"ss="line" name="L2ici    c_tree" class="srclass="line" name="L222"n, ref="_tree" class="srri,
"pin %d 4>8hdesc_g4=8c#L244" id="L244" clas4=8lin4484.c#L173" idne" name="L241"str" c3<"eputne" name="L253"> 253<"eputhref=*=" id="L245" class="line" nam"ne" name="L253"> 253<"      *)tree" class="srri,
 181        return 84href=L225"> 225        4i8ctr4_84ivers/pinctrl/core.c#L226" id="L226" 3s8nsref">4y8 166pin_desc_tree,omment""sre4d8"driver4/8inctrl/core.c#L247" id4"82474484ass="ne" name="L166"> 166pin_desc_tree,omment""sre4d8"ref="+4o8=i" class="sref">i4
8a h4484e.c#Lne" name="L166"> 166outbtainrivefhdiiles"ms  ="sref">pin_desc_tree,omment""sre4d8"L229" 4l8" name="L249"> 2494 8   4484ine" name="L169"> 169pin_desc_tree,omment""sre4d8"ref="+4o8ine" name="L250"> 250<4a8
 120ouexplicitlyfta" ioyrivefivers/ed evid="La>,omme,  ="sref">pin_desc_tree,omment""sre4d8+code=i4 8lass="sref">i = 0;4<8 hr4585ef=>(e="L120"> 120han plainre" c3<"eput().  f="drivers/pinctrl/core.c#L230" id="L4U8="+code4n8m_descs" class="sref">4u8_de4585ame" ne" name="L166"> 166 253<"                   st"anm_e" c3<"esetss="line" name="anm_e" c3<"esethref=" id="L245" class="lintanct"ss="line" name="L2ici    c_tree" class="srclass="line" name="L222"n)181"> 181        return i]. 458 253<"      *245" class="linetrne" name="L253">tr22"n,               strne" name="L253">re_"L181"> 181        return  261tr22"ns/pinctrl/core.c#L"L2ri<_al180ss="line" name="L2ri<_al180href="drivers/pinctrtanm_e" c3<"equleasess="line" name="anm_e" c3<"equleasehref, sizeof(*245" class="linetrne" name="L253">tr22"n)""tree" class="srGFP_KERNEs="line" name="LGFP_KERNEsre_"/L181"> 181        return pins/pnetus="line" name=c#etrne" name="L253">tr22"n)181"> 181        return  181        return  183name;rl/core.c#L183"stcne" name="L253">re_"s/pinctrl/core.c#L> 253<""setne" name="L253"> 253<"esethref=tree" class="srclass="line" name="L222"n)L181"> 181        return  262<4a84*8pin4686ref">pindesrlnetus="line" name=c#IS_1RRss="line" name=IS_1RRhref=             strne" name="L253">re_")an class="string">"pin %d 4>8pin_des4_8ree,omment""sref">4i8_de4686ref="+code=pctldev"dr*245" class="linetrne" name="L253">tr22"ns/pinctrl/core.c#L>ne" name="L253">re_"L181"> 181        return numhcore.c#L180" i"L2ri<_addne" name="L253""L2ri<_addhref=tree" class="srclass="line" name="L222"n""tree" class="sretrne" name="L253">tr22"n)L181"> 181        return "pin %d 4>8pL256" 4d8ctrl/core.c#L166" id="4186" 4686">pins,
tr22"n)L181"> 181        return  4 8his46866.c#L198" id=L225"> 225         259}
418=L229" 4l8/core.c#L169" id="L1694 8las4686->ne" name="L253">re_"L181"> 181        return  225        pif="+code=pindeor id="L184" class="line" name="L184"> 184
 181        return 4i8_de4787ref">" name="L257"> 257
 nctrl/core.c#L251p="anm_e" c3<"ematchss="line" name="anm_e" c3<"ematchhref=" id="L245" class="lintanct"ss="line" name="L2ici    c_tree" class="srclass="line" name="L222"n, ref="_tree" class="srri,
 181        return pin &4t8 0)4787me="L 1458/a>47874me" class=45" id="L245" class="line" namene" name="L253"> 253<"      *245" class="linene" name="L253">re_"s/pinctrl/core.c#Lri,
 181        return 47876 261mutex_4o8kre_"s//pinctrl/core.c#L"atass="line" name="ata    L181"> 181        return  225        ( 225         120pin_desc_tree,omment""sre4d8="+code4p8ndesc" class="sref">pi4d8sc<4888ef=>(e="L120"> 120pin_desc_tree,omment""sre4d8=="+cod4=8href="drivers/pinctrl/4o8e.c4888ame" ne" name="L166"> 166pin_desc_tree,omment""sre4d8pindesc4G8L" class="sref">EXPORT4S8MBO4888ri/a>,omment""sref">pin_descf s="sref">pin_desc_tree,omment""sre4d8=i" cla4.8_is_valid);
 164 165 fufu#L2aon will noteneeda>oube cal1edadiirivefivsourt""managespan  f="drivers/pinctrl/core.c#L230" id="L4U81L256" 4d886" class="line" name=4L886"4888s="line" name="L166"> 166hat"ivefivsourt"" fufum"d.  f="drivers/pinctrl/core.c#L230" id="L4U8pdriver4/8ctrl_dev" class="sref"4p8nct4888ass="ne" name="L166"> 166 253<"                   strne" name="L253">re_")181"> 181        return "pin %d 3#8=;d ("8lass="sref">i;
re_""line" name="L241"  class="line" name="L222"n "2drivers/pinctrtanm_e" c3<"equleasess="line" name="anm_e" c3<"equleasehref,class="string">"pin %d 3#8"line" 4a8e="L191"> 191
re_")aL181"> 181        return ;
4a8lass="sref">i = 0;4<8 hr4989ref">pindesrl/core.c#L180" ir" c3<"eputne" name="L253"> 253<"eputhref=tree" class="srene" name="L253">re_")L181"> 181        return n4m8pin4989.c#L1L225"> 225        ;
 184
 181        return p38esc3989ivers/pinctrl/core.c#L226" id="L226" 3s8"L256" 4i8radix_tree_lookup(3a8p;<3989">pinnctrl/core.c#L251p=> 253<"eregister=ma2ne" name="L253"> 253<"eregister=ma2href=" id="L245" class="line" nam"=ma2ne" name="L253"> 253<"ema2href"vers/p              stma2,
"pin %d 3#8"driver4/8ef">i]. 247="e             stoindup81" id="L181" cdu>re_"""tree" class="sroin178 181        return 8) {
p3t8dev3/89f">pins inctrl/core.c#L251p=ine" name="L253"ire_"""tree" class="sr257" id="L257" class="line" name="L257"> 257
i].,
sma2<_cmp""line" name="L257"> 257
dynamic_name<4a9)
<4090#L262" id="L262" class="line" name="L4l9ss="sre4"9pindesc->pindesrl/core.c#L180" ipr_tabu ne" name="L253"er_tabu href="2                retu1add sref"dass=muxsma2, ,
 181        return p39" c4a90           a "ms ="drivers/pinctrine" name="L253"ire_" = 0;rl/core.c#L251p=ine" name="L253"ire_" <              stnum=ma2,
"pin %d 4>9 5     4 9 adix_tree_lookup(3a9lin4090">pins,
,
ss="line" name="anchref)n class="string">"pin %d 4>9 6     4 9 f">i].r_errhref="2                retu1faileda>ouregister ma2 sref"s (sref"d): noftanct""gg">nnumber, 4090e.c#L198" id="L198"c_e="L247pindesrl/core.c#L180" ima2,
ss="line" name=href"a             stine" name="L253"ire_")L181"> 181        return p3t9nam4<90-> 181        return numberrsL225"> 225        ;
pindesc9= <4191ame" class="sref">ndrnetus="line" name=c#ma2,
ss="line" name=href)n class="string">"pin %d 4>9p      4 9/a>(r_errhref="2                retu1faileda>ouregister ma2 sref"d: nofma2 e=pc"gg">nnumber, numldev"dr"+codedr/core.c#L180" iine" name="L253"ire_")L181"> 181        return  181        return ->pins,
 225        pinctrl_register_one_pin(struct 4 9eref="+4o9rl/core.c#L219" id="L2499 cl4191e.c#L198" id="L198"c_neturn (struct 4 9e8     4 9class="sref">pindesc9= <4191->,
ss="line" name=name=truchref)n class="string">"pin %d 4>9p9ef="+4o9(*numberrstldev"dr/core.c#L180" ipr_errne" name="L253">r_errhref="2                retu1faileda>ouregister ma2 sref"s (sref"d): nofot;lsrefrolftanct""gg">nnumber, ) {
<4 9ref="drivers/pinctrl/c4r9.c#4292" id="L221" ime="L247_______________l/core.c#L251p=ma2,
ss="line" name=href"a             stine" name="L253"ire_")L181"> 181        return ndrrrrrrrrrivers/pef="+code=pindeorINVAs="line" name="L1INVAs    L181"> 181        return  225        ) {
<4 9rl/core.c#L225" id="L2459 cl4292href="drivers/pinctrl/core.c#L175" id4>9_ady re4i9 Set owner */
<4 9ref4292           a a href="switchturn "pin %d 4>9_5     4 9name="L226"> 226  4 9   4292">pins,
"pin %d 4>9_6     4 9 href="+code=pctldev" 4l9ss=4292ass="line" name="L247pindesrlbreakL181"> 181        return pin:class="string">"pin %d 4>9"L229" 4l9ss="line" name="L229">4299,
 2x="svalid 181        return  230<4a9   4292class="sref">numberrstldev"drneturn retp < 0a181"> 181        return 4=9 257
ndrrrrrrrrrbreakL181"> 181        return pin:class="string">"pin %d 4>9=>) {
<4 9> == numcasepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_GROUPne" name="L253"PIN_MAP_TYPE_CONFIGS_GROUP>pin:class="string">"pin %d 4>9=ady re4i935" id="L235" class="l4n9" n4393           a a href="me="L247hcore.c#L180" ildev,
 2confsvalid 181        return 4y9amic_name = pins,
retp < 0a181"> 181        return  247="e;rlivers/pinctrl/core.c#L257" id="L257" class="line" name="L257"> 257
 181        return pctldev-><4 9ref4393->"pin %d 4>9"ref="+4o9s) on %s\n",4393class="sref">numberrstldev"dr/core.c#L180" ipr_errne" name="L253">r_errhref="2                retu1faileda>ouregister ma2 sref"s (sref"d): invalid uypi"gg">nnumber, 9>ss="line" name=href"a             stine" name="L253"ire_")L181"> 181        return ndrrrrrrrrrivers/pef="+code=pindeorINVAs="line" name="L1INVAs    L181"> 181        return  225        94ber" class="sL225"> 225        4i9ctr4_94ivers/pinctrl/core.c#L226" id="L226" 3s9nsref">4y9pins,
<             stma2<_cmp" class="sref">sma2<_cmp""lins/pinctrl/core.c#Lkzal180ss="line" name=kzal180href="izeof(*245" class="linma2<_cmp" class="sref">sma2<_cmp""lin)""tree" class="srGFP_KERNEs="line" name="LGFP_KERNEsre_"/L181"> 181        return sma2<_cmp""lin)n class="string">"pin %d 4>9"ref="+4o9=i" class="sref">i4
9a h4494e.c#L198" id="L198"c_/core.c#L180" ipr_errne" name="L253">r_errhref="2                retu1faileda>oual180 evid="La>,omme_ma2,  181        return  2494 9   4494-> 181        return  250<4a9
 225        i = 0;4<9 hr4595#L262" id="L262" class="line" name="L4l9="+code4n9m_descs" class="sref">4u9_de4595ref">pindesrl/core.c#L180" ima2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  num=ma2,
re_")n class="string">"pin %d 4>9=i" cla4s9"sref">i].numhcore.c#L180" ima2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  ma2,
,
,
"pin %d 3#9+code=p4n9s="line" name="L255"> 459 181        return pins,
sma2<_cmp""lin"line" name="L241"  ma2,
"pin %d 4>9=driver4/9rl/core.c#L258" id="L2489 cl4595ass="line" name="L247pindesrl/core.c#L180" ipr_errne" name="L253">r_errhref="2                retu1faileda>outupli0,  181        return sma2<_cmp""lin)L181"> 181        return  181        return numberrsL225"> 225        name;rl} elsen class="string">"pin %d 4>9"> 262<4a94*9pin4696ame" class="sref">ndrhcore.c#L180" ima2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  ma2,
 181        return ,omment""sref">4i9_de4696ref="+code=pcL225"> 225        9=code=p4n9.c#L165" id="L165" cla4s9"li46964me" class=45netus="line" name=c#178 181        return pins,
 178        pindesc = 4s9=driver4/9span class="comment"> 4 9his4696ass="line" na/core.c#L180" i"sradadd_tailne" name="L253"1sradadd_tailhref=a href="drivers/pincma2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  nmp" class="sref">scmp""lin,r08" id="L108" classct" nam"=ma2,
4s9=ef="+c4d9drivers/pinctrl/core.c4L968"4696f">pins/pnetus="line" name=c#178 181        return  180
 181        return  183name;rlivers/p"L251"> 251        for (4i9_de4797ame" L225"> 225        ;
pin &4t9 0)4797me="L164"> 164pin_desc_tree,omment""sre4d9p255" c4r9="line" name="L175"> 1459/a>4797name="L165"> 165 253<""register=ma2.c#gs()se=register aaeet offot;lsrefroller ma2p   pin_desc_tree,omment""sre4d9pL256" 4d96" class="line" name="4196">4797s="line" name="L166"> 166ouregister. T> fushould probably be s="sref">pin_desc_tree,omment""sre4d9pdriver4/9k" class="sref">mutex_4o9k 166 f s="sref">pin_desc_tree,omment""sre4d9pef="+c4d9ctrl_mutex);
 166e ma2.c#g 166ries.  f="drivers/pinctrl/core.c#L230" id="L4U9pL229" 4l9/a>( 169pinctrl_mutex);
<4 9ref4797" name="L120"> 120pi4d9sc<4898ef=>(nctrl/core.c#L251p=> 253<"eregister=ma2p   ,
 253<"ema2href"vers/p              stma2,
ndrrrrrrrrrrrrrrrunsigneda             stnum=ma2,
 181        return EXPORT4S9MBO4898ri/a> class="string">"pin %d 4>9=i" cla4.9_is_valid);
name;rlivers/pl/core.c#L251p=> 253<"eregister=ma2/a>,
,
 181        return  225         261 253<"eunregister=ma2/a>,
 253<"ema2href"vers/p              stma2/a>,
 181        return ,
sma2<_cmp""line" name="L257"> 257
i;
 183 191
sma2<_cmp""lin,r08" id="L108" classct" nam"=ma2,
facmp" class="sref">strcmp"pin %d 4>9";
4a9lass="sref">i = 0;4<9 hr4999ame" class="sref">ndrnetuhcore.c#L180" ima2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  ma2,
"pin %d 4>9"indesc4G9m_pins" class="sref">n4m9pin4999ref="+code=pctldev"dr"+codedr/core.c#L180" i"sraddelne" name="L253"1sraddelhref=a href="drivers/pincma2<_cmp" class="sref">sma2<_cmp""lin"line" name="L241"  nmp" class="sref">scmp""lin"L181"> 181        return ;
numldev"dr"ivers/L181"> 181        return p39esc3999           a a href="L225"> 225        (3a9p;<3999">pins,
 225        i]. 225         259}
419privers4p9ctldev" class="sref">p3t9dev3/99f">pi#ifdefr/core.c#L180" iCONFIG_DEBUG_FS class="sref">sCONFIG_DEBUG_FS class="line" name="L259"> 259}
419p;d ("9">i]. 183]. nctrl/core.c#L251p=e" name=e" s_show/a>,
sseq_fil"hrefp              st,
183"> 183i = 0;4<10nas>10name"  class="string">"pin %d 4>10n2me" c4a10n_pins" class="sref">n4m10n_p>10n2>,
riv 257
;
,
,
,
 257
p310nin>10n           a unsigneda             stine" name="L253"ire_"""tree" class="sr,
 257
(3a10nad>10n6 261i].10nass="line" na/core.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1registeredass=s: sref"dnumber, scss=s"lin"L181"> 181        return  259}
4110n8me" c4a10ntldev" class="sref">p3t10ntl>10n8ss="line" na/core.c#L180" id="L18lass="line" name="L178"> 178        pindesc = 4s10n9me" c4a10n>i]. 183;
pindesc10cla>10>ame" class="s"ms ="drivers/pinctrine" name="L253"ire_" = 0;rl/core.c#L251p=ine" name="L253"ire_" <              stpctlclass="line" name=ectlclahref"line" name="L241"  cls0ss="line" name="Lscre_""line" name="L241"  nss=s class="sref">scss=s"lin;rl/core.c#L251p=ine" name="L253"ire_"++an class="string">"pin %d 4>10>2me" c4a10/a>(4s1013me" c4a10ref="drivers/pinctrl/c4r10ref>10>href="drivers/pinctrl/core.c#L175" id4>10>4me" c4a10tered on %s\n"4<10ter>10>           a a href="tree" class="sr,
sss=s"lin[l/core.c#L251p=ine" name="L253"ire_"]./core.c#L180" i,
4s1015me" c4a10->pins,
 2_cls0"sethref="drivers/pinctrpctlclass="line" name=ectlclahref""tree" class="sr,
4s1016me" c4a10L217" class="line" nam4=10L21>10>ass="line" name="L247/ref="+code=name" class="Ps=lreft""may belrefrse  href="drivers/pinctrl/core.c#L230" id="L4U10>7me" c4a10rl/core.c#L219" id="L24910rl/>10>e.c#L198" id="L198"c_neturn  181        return 8me" c4a10class="sref">pindesc10cla>10>->4s1019me" c4a10(* 183rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1ss=lsref"da(sref"s) mber, ,
ndrrrrrrrrrrrr" name="L241"  cls0ss="line" name="Lscre_""line" name="L241"  n/a>ss="line" name=href ?r" name="L241"  cls0ss="line" name="Lscre_""line" name="L241"  n/a>ss="line" name=href : "2                retu1undmber,  181        return 10r#L144" id="L144" class="line" name="L4+10r3me" c4a10rl/core.c#L225" id="L24510rl/>10rber" class="sref">numhref="+code=name" class="D clas-specifa> ncfo perass=l href="drivers/pinctrl/core.c#L230" id="L4U1024me" c4a10 Set owner */
<4 10 Se>10r           a a href="neturn ,
 181        return  226  4 10nam>10r">pins,
,
4s1026me" c4a10 href="+code=pctldev" 4l10 hr>10r>pinctrl_register_one_pin(struct 4 10r7me" c4a10 Copy basic pin info *4<10 Co>10re.c#L198" id="L198"c_/core.c#L180" iseq_>ut,
,
                retu1number,  181        return 4210ss=>10r-> 225         230<4a10ine>10r" n="L183"> 18310 180
 181        return " name="L257"> 257
 251        for ( ==  225        10 = 10<5 n="ev nctrl/core.c#L251p=e" name=groups_show/a>,
sseq_fil"hrefp              st,
"pin %d 4>1037me" c4a10e_insert" class="sref"4r10e_i>10,
riv 257
pctldev-><4 10ref>10<->,
,
,
 257
10unsigneda             stngroupsss="line" name= 257
10&gvers/pinctrl/core.c#L226" id="L226" 3s1041me" c4a10ers/pinctrl/core.c#L244"10ers>10&ref">pindesrl/core.c#L180" ingroupsss="line" name=,
 181        return 10&2ef">pindesrl/core.c#L180" id="L18lass="line" name="L178"> 178        pindesc = 4s1043me" c4a10l_register_pins" class4"10l_r>10&href="drivers/pinctrl/core.c#L175" id4>1044me" c4a10trl_dev" class="sref">4i10trl>10&4ef">pindesrl/core.c#L180" iseq_>ut,
,
                retu1registeredass= groups:number,  181        return 10&">pins,
"pin %d 4>1046me" c4a10inctrl/core.c#L247" id4"10inc>10&ass="line" name="L247vers/punsigneda              stps=s class="sref">sss=s"linL181"> 181        return i4
10=i">10&e.c#L198" id="L198"c_unsigneda             stnum=ss=s class="sref">scum=ss=s"linL181"> 181        return  2494 10" n>10&->href /pinctrl/core.c#Lo2,
ss="line" name=get=groupchref="drivers/pinctrpctlclass="line" name=ectlclahref""tree" class="sr,
 181        return  250<4a10ine>10&class="sref">numberrsvers/pchara              stpss="line" name=phrefL181"> 181        return i = 0;4<10las>10la          a a href="nctrl/core.c#L251p=257" id="L257" class="line" name="L257"> 257
4u10m_d>10lame" class="sref">ndrnctrl/core.c#L251p=ine" name="L253"ire_"e" name="L257"> 257
10l#L144" id="L144" class="line" name="L4+1053me" c4a10"sref">i].10lber" class="sref">numhcore.c#L180" ildev,
sget=groupcss=shref="drivers/pinctrpctlclass="line" name=ectlclahref""tree" class="sr,
 4510s=">10l           a a href="me="L247777777777777777777      sss=s"lin,r08" id="L108" classcnum=ss=s class="sref">scum=ss=s"lin/L181"> 181        return 10l">pins,
,
rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1sref"s [ERROR GETTING PINS]number, 10le.c#L198" id="L198"c_e="L247pindesrlesrl/core.c#L180" ign/a>ss="line" name=ghref/L181"> 181        return 10l->"pin %d 4>10l9me" c4a10c#L261" id="L261" clas4=10c#L>10lclass="sref">numberrstldev"dr/core.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1group: sref", ss="line" name=ghref/L181"> 181        return numberrstldev"dr"ms ="drivers/pinctrine" name="L253"ire_" = 0;rl/core.c#L251p=ine" name="L253"ire_" <              stnum=ss=s class="sref">scum=ss=s"linLrl/core.c#L251p=ine" name="L253"ire_"++an class="string">"pin %d 4>1061me" c4a104*1010
ame" class="sref">ndrrrrrrrrrrrrrrr="tree" class="sr<ss="line" name=phrefs/pinctrl/core.c#L253_get=ss="line" name=p53_get=href="drivers/pinctrpctlclass="line" name=ectlclahref""tree" class="srsss=s"lin[l/core.c#L251p=ine" name="L253"ire_"]/L181"> 181        return ,omment""sref">4i10ree>10
ref="+code=pctldev"dr"+codedrrrrrrrrrnetuhcore.c#L180" iWARN_ONne" name="L253"WARN_ONhref=s="line" name=c#<ss="line" name=phref)an class="string">"pin %d 4>1063me" c4a10#L164" id="L164" class4"10#L1>10
ber" class="sref">numldev"dr"+codedrrrrrrrr="tree" class="srd="L180" class="line" name="L180"> 180
 181        return 10
           a a href="me="L2477777777777777777ivers/pef="+code=pindeorINVAs="line" name="L1INVAs    L181"> 181        return pins,
 225         4 10spa>10
ass="line" name="L247"> 247="e;rlhcore.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1ss=lsref"da(sref"s)number, sss=s"lin[l/core.c#L251p=ine" name="L253"ire_"]"a             stpss="line" name=phref)L181"> 181        return 10
e.c#L198" id="L198"c_e="L247pL225"> 225        ut,
,
                retu1number,  181        return 10
class="sref">numberrsL225"> 225        10ef.c#L198" id="L198"c_/core.c#L180" iselector/a>,
 181        return 4i10in_>10eame" class="sL225"> 225        ;
pin &4t10cla>10eber" class="s/ree" class="srd="L180" class="line" name="L180"> 180
 181        return  14510="l>10eivers/pinctrl/core.c#L226" id="L226" 3s1075me" c4a106" class="line" name="41106" >10e">pins,
 251        for (mutex_4o10k" >10eass="L225"> 225        );
10e" class="line" name="L259"> 259}
411078me" c4a10/a>( nctrl/core.c#L251p=e" name=gpioranges_show/a>,
sseq_fil"hrefp              st,
pinctrl_mutex);
<4 10>pi>10e9me"  class="string">"pin %d 4>108ame" c4a10ndesc" class="sref">pi4d10nde>10nd.c#L198" id=" id="L245" class="line" nam"=class="line" name=e" nam"=clahrefp              stpctlclass="line" name=ectlclahrefs/pinctrl/core.c#L,
riv 257
,
,
 257
EXPORT4S10L" >10n#L144" id="L144" class="line" name="L4+1083me" c4a10_is_valid);
10nber" class="s/ree" class="srseq_>ut,
,
                retu1GPIO ranges handled:number,  181        return 10nivers/pinctrl/core.c#L226" id="L226" 3s1085me" c4a1086" class="line" name=4L1086">10n">pins,
<             stm="L18lass="line" name="L178"> 178        pindesc = 4s1086me" c4a10ctrl_dev" class="sref"4p10ctr>10n>pinctrl_register_one_pin(struct 4 1087me" c4a10*10ne.c#L198" id=href="+code=name" class="Loop oone  cparanges  href="drivers/pinctrl/core.c#L230" id="L4U1088me" c4a10nctrl/core.c#L189" id=4L10nct>10n8ss="line" na/core.c#L180" i"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctrrange/a>,
sgpio_rangeshref""tree" class="srcmp" class="sref">strcmp"pin %d 4>10n9me" c4a10lass="sref">i;
10nclass="sref">numberrs/core.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1sref"u: sref"< GPIOS [sref"u - sref"u] PINS [sref"u - sref"u]number,  191
 247="e,
ss="line" name=href"/pinctrl/core.c#L226" id="L226" 3s1091me" c4a10lass="sref">i = 0;4<10las>10eame" class="sref">ndrrrrrrrrrrrr" name="L241"  range/a>,
,
scss=s"lin - 1)"/pinctrl/core.c#L226" id="L226" 3s1092me" c4a10m_pins" class="sref">n4m10m_p>10eref="+code=pctldev"dr"+codedrrrrtree" class="srrange/a>,
;
numldev"dr"+co="drivers/pinctrrange/a>,
scss=s"lin - 1)"+code=pin_desc_get" class="sref">4s1094me" c4a10pindesc" class="sref">p310pin>10e           a L225"> 225        (3a10rad>10e6 261i].10eass="line" na/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return  259}
411098me" c4a10ctldev" class="sref">p3t10ctl>10e8ss="line" naivers/p"L251"> 251        for (i].i>10e9ss="L225"> 225        ].i = 0;4<11nas>11name" ev nctrl/core.c#L251p=e" name=claices_show/a>,
sseq_fil"hrefp              st,
n4m11n_p>110ri/a> class="string">"pin %d 4>1103me" c4a11ndesc;
 251        for (p311nin>110ivers/pinctrl/core.c#L226" id="L226" 3s11n5me" c4a11nadix_tree_lookup(3a11nad>110">pins,
<             stseq_>ut,
,
                retu1 [26"mux] [26"conf]number,  181        return i].110>pinctrl_register_one_pin(struct 4 11n7me" c4a11n {
 178        pindesc = 4s11n8me" c4a11ntldev" class="sref">p3t11ntl>11n8ss="code=pin_desc_get" class="sref">4s11n9me" c4a11n>i].pindesc cla_"srahref""tree" class="srcmp" class="sref">strcmp"pin %d 4>111ame" c4a11>;
rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1sref"< mber, ss="line" name=href"+code=pin_desc_get" class="sref">4s11>1me" c4a11class="sref">pindesc11cla>111ame" class="sref">ndrnetuhcore.c#L180" ipctlclass="line" name=ectlclahref"line" name="L241"  cls0ss="line" name="Lscre_""line" name="L241"  pmxo2,
2me" c4a11/a>(,
<             stseq_>ut,
,
                retu1ye< mber, 4s11>3me" c4a11ref="drivers/pinctrl/c4r11ref>111ber" class="sref">numelsecode=pin_desc_get" class="sref">4s11>4me" c4a11tered on %s\n"4<11ter>11>           a a href="s,
<             stseq_>ut,
,
                retu1, 4s11>5me" c4a11->pins,
,
6me" c4a11L217" class="line" nam4=11L21>11>ass="line" name="L247s,
<             stseq_>ut,
,
                retu1ye, 4s11>7me" c4a11rl/core.c#L219" id="L24911rl/>11>e.c#L198" id="L198"c_elsecode=pin_desc_get" class="sref">4s11>8me" c4a11class="sref">pindesc11cla>11>->ut,
                retu1, 4s11>9me" c4a11(*numberrs/core.c#L180" iseq_>ut,
,
                retu1number,  181        return  225        " name="L257"> 257
1122ef">pindesrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return 1124me" c4a11 Set owner */
<4 11 Se>11r           a ivers/p"L251"> 251        for ( 226  4 11nam>11r">pinL225"> 225        11r>pinctrl_register_one_pin(struct 4 11r7me" c4a11 Copy basic pin info *4<11 Co>11re.c#Lev " name="L241"  in pin i" name="L253"in pin     vers/pchara              stmap_typn i" name="L253"map_typn/a>
4211ss=>11r-> class="string">"pin %d 4>11r9me" c4a11ine" name="L230"> 230<4a11ine>112class="sref">ev vers/pchara  vers/p" name="L241"  n/a>s class="sref">sc/a>slass[] =n class="string">"pin %d 4>113ame" c4a11113e>pins,
ndrh2                retu1DUMMY_STATEmber,                 retu1MUX_GROUPmber,  == numhref="+code=n         retu1CONFIGS_PINmber, 113           a a href="tref="+code=n         retu1CONFIGS_GROUPmber,  = 113">pins,
 251        for (113f">pins/pnetu245" class="lintypn i" name="L253"typn     line/pinctrl/core.c#LARRAY_SIZE i" name="L253"ARRAY_SIZEhref="drivers/pinctrn/a>s class="sref">sc/a>slass))18inctrl/core.c#L226" id="L226" 3s1138me" c4a11ref">pctldev-><4 11ref>113->,  251        for (113" n="L183"> 183114">name;rlivers/p" name="L241"  n/a>s class="sref">sc/a>slass[245" class="lintypn i" name="L253"typn    ]L251"> 251        for (114ame" L225"> 225        114#L144" id="L144" class="line" name="L4+1143me" c4a11l_register_pins" class4"11l_r>11&href=ev nctrl/core.c#L251p=e" name=ma2<_show/a>,
sseq_fil"hrefp              st,
4i11trl>11&4ef"> class="string">"pin %d 4>1145me" c4a1111&">pins,
<" id="L245" class="line" nam"=ma2,
sma2<_cmp""line" name="L257"> 257
11&ass="line" nanctrl/core.c#L251p=ine" name="L253"ire_"e" name="L257"> 257
i4
11=i">114e.c#L198" id=" id="L245" class="line" nam"=ma2ne" name="L253"> 253<"ema2href"vers/p              stma2/a>,
 257
 2494 11" n>1148ss="code=pin_desc_get" class="sref">4s1149me" c4a11ine" name="L250"> 250<4a11ine>1149ss="line" na/core.c#L180" iseq_>ut,
,
                retu1Pclass=fma2<:number,  181        return i = 0;4<11las>115gvers/pinctrl/core.c#L226" id="L226" 3s11l1me" c4a11m_descs" class="sref">4u11m_d>115ref">pindesrl/core.c#L180" id="L18lass="line" name="L178"> 178        pindesc = 4s11l2me" c4a11inctrl_register_one_pi4<11inc>11l#L144" id="L144" class="line" name="L4+1153me" c4a11"sref">i].11lber" class="s ,
sma2<_cmp""lin,rl/core.c#L251p=ine" name="L253"ire_",rl/core.c#L251p=ma2/a>,
"pin %d 4>11l4me" c4a11s="line" name="L255"> 4511s=">11l           a a href="hcore.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1claice sref", "pin %d 4>11l5me" c4a11"L256" class="line" na4e11"L2>11l">pins,
,
ss="line" name=clv=re_",rl/core.c#L251p=ma2/a>,
ss="line" name=href"rl/core.c#L251p=ma2_typn i" name="L253"map_typn/a>
,
"pin %d 4>11l6me" c4a11rl/core.c#L258" id="L24811rl/>11lass="line" name="L247pindesrlf="hcore.c#L180" ima2/a>,
4s11l7me" c4a11rs/pinctrl/core.c#L2594 11rs/>115" class="line" name="L259"> 259}
411158me" c4a11ers/pinctrl/core.c#L264"11ers>11l->,
11lclass="sref">numberrstldev"dr/core.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1srefroll    claice sref", "pin %d 4>116ame" c4a11
numberrstldev"drpindesrlf="hcore.c#L180" ima2/a>,
ss="line" name=nam"=cla=    )+code=pin_desc_get" class="sref">4s1161me" c4a114*11116ref">" name="L257"> 257
,omment""sref">4i11ree>11
ref="+code=pctldev"drswitchtuhcore.c#L180" ima2/a>,
"pin %d 4>1163me" c4a11#L164" id="L164" class4"11#L1>11
ber" class="sref">numcasepinctrl/core.c#LPIN_MAP_TYPE_MUX_GROUP i" name="L253"PIN_MAP_TYPE_MUX_GROUPer" :class="string">"pin %d 4>1164me" c4a11.c#L165" id="L165" cla4s11.c#>11
           a a href="me="L247  2mux_show=ma2href="drivers/pinctr,
,
4s1165me" c4a11ctrl/core.c#L166" id="4111ctr>11
">pins,
4s1166me" c4a11span class="comment"> 4 11spa>11
ass="line" name="L247casepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_PIN i" name="L253"PIN_MAP_TYPE_CONFIGS_PINer" :class="string">"pin %d 4>1167me" c4a11drivers/pinctrl/core.c4L11dri>11
e.c#L198" id="L198"c_casepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_GROUP i" name="L253"PIN_MAP_TYPE_CONFIGS_GROUPer" :class="string">"pin %d 4>1168me" c4a11/core.c#L169" id="L1694 11/co>11
-> 2conf_show=ma2href="drivers/pinctr,
,
4s1169me" c4a1111
class="sref">numberrstldev"drbreak+code=pin_desc_get" class="sref">4s117ame" c4a11ef="+code=pinctrl_dev"4c11ef=>11ef.c#L198" id="L198"c_default:class="string">"pin %d 4>1171me" c4a11in_desc" class="sref">4i11in_>117ame" class="sref">ndrrrrrrrrrbreak+code=pin_desc_get" class="sref">4s1172me" c4a11>;
 225        pin &4t11cla>117href="drivers/pinctrl/core.c#L175" id4>1174me" c4a11="line" name="L175"> 14511="l>117           a a href="hcore.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1number,  181        return 11e">pins,
 225        mutex_4o11k" >117>pinctrl_register_one_pin(struct 4 11e7me" c4a11ctrl_mutex);
1177ss="line" na/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return (4s1179me" c4a11>pinctrl_mutex);
<4 11>pi>117class="sref">ivers/p"L251"> 251        for (pi4d11nde>11nd.c#LL225"> 225        " name="L257"> 257
EXPORT4S11L" >11n#L144ev nctrl/core.c#L251p=e" name=show/a>,
sseq_fil"hrefp              st,
);
11nber"  class="string">"pin %d 4>1184me" c4a11 a range of pin descri4t11 a >118           a " id="L245" class="line" nam"/a>,
hrefe" name="L257"> 257
118">pins,
<" id="L245" class="line" nam"=ev,
,
 257
1186>pins,
<" id="L245" class="line" nam"=eett    a>,
,
 257
118" class="line" name="L259"> 259}
411188me" c4a11nctrl/core.c#L189" id=4L11nct>11n8ss="line" na/core.c#L180" iseq_>ut,
,
                retu1Requestedass= srefrol handlers  cpirass=muxfma2<:number,  181        return i;
118" n="L183"> 183 191
 178        pindesc = 4s1191me" c4a11lass="sref">i = 0;4<11las>119ref">" name="L257"> 257
n4m11m_p>1192ef">pindesrl/core.c#L180" i"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctrpne" name="L253">href""      pindesc _"srahref""tree" class="srcmp" class="sref">strcmp"pin %d 4>1193me" c4a11ndesc;
numhcore.c#L180" iseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1claice: sref"< curr166>ev, "pin %d 4>1194me" c4a11pindesc" class="sref">p311pin>119           a a href="me="L247777" name="L241"  clv=ss="line" name=clv=re_"="drivers/pinctrpne" name="L253">href"line" name="L241"  clvss="line" name=clv    )"class="string">"pin %d 4>1195me" c4a11radix_tree_lookup(3a11rad>119">pins,
href"line" name="L241"  ,
href"line" name="L241"  ,
ss="line" name=href : "2                retu1nonember,  181        return i].119>pinctrl_register_one_pin(struct 4 1197me" c4a11) {
href"line" name="L241"  ,
strcmp"pin %d 4>1198me" c4a11ctldev" class="sref">p3t11ctl>119->sseq_>rintfhref="drivers/pinctr,
                retu1 >ev, ,
ss="line" name=href/L181"> 181        return i].i>119" n="L183"> 183].numberrstldev"dr/core.c#L180" i"srad"ms_each_166ryne" name="L253""srad"ms_each_166ryhref="drivers/pinctr,
,
strcmp"pin %d 4>12n1me" c4a12nass="sref">i = 0;4<12nas>120ame" class="sref">ndrrrrrrrrrrrrrrr="" id="L245" class="line" nam"=class="line" name=e" nam"=clahrefp              stpctlclass="line" name=ectlclahrefs/pinctrl/core.c#L,
 251        for (n4m12n_p>120#L144" id="L144" class="line" name="L4+1203me" c4a12ndesc;
num"+codedrrrrrrrrr             stseq_>rintf class="sref">sseq_>rintfhref="drivers/pinctr,
                retu1 >  typn: sref"< crefroller sref"< mber, p312nin>120           a a href="me="L247777777777777777777rl/core.c#L251p=ma2_typn i" name="L253"map_typn/a>
,
"pin %d 4>12n5me" c4a12nadix_tree_lookup(3a12nad>120">pins,
ss="line" name=p53nam"=cla_get=re_"="drivers/pinctrpctlclass="line" name=ectlclahref"/L181"> 181        return i].120>pinctrl_register_one_pin(struct 4 12n7me" c4a12n {
,
"pin %d 4>12n8me" c4a12ntldev" class="sref">p3t12ntl>120->"pin %d 4>12n9me" c4a12n>i].numberrstldev"dr777777777777777rl/core.c#L251p=e" mux_show=eett    a>,
,
 181        return ;
4s12>1me" c4a12class="sref">pindesc12cla>121ame" class="sref">ndrrrrrrrrrrrrrrrrrcasepinctrl/core.c#LPIN_MAP_TYPE_CONFIGS_PIN i" name="L253"PIN_MAP_TYPE_CONFIGS_PINer" :class="string">"pin %d 4>12>2me" c4a12/a>(,
"pin %d 4>12>3me" c4a12ref="drivers/pinctrl/c4r12ref>121ber" class="sref">nummmmmmmmmmmmmmmmmmmmmmmmmhcore.c#L180" i26"conf_show=eett    a>,
,
 181        return 12>           a a href="s,
<<<<<<<<<<<<<<<<4s12>5me" c4a12->pins,
"pin %d 4>12>6me" c4a12L217" class="line" nam4=12L21>12>ass="line" name="L247s,
<<<<<<<<<<<<<<<<4s12>7me" c4a12rl/core.c#L219" id="L24912rl/>12>e.c#L198" id="L198"c_________________L225"> 225        8me" c4a12class="sref">pindesc12cla>12>-> 225        9me" c4a12(*numberrsL225"> 225         225        " name="L257"> 257
1222ef">pindesrl/core.c#L180" id="L180" class="line" name="L180"> 180
 181        return 1224me" c4a12 Set owner */
<4 12 Se>12r           a ivers/p"L251"> 251        for ( 226  4 12nam>12r">pinL225"> 225        12r>pinctrl_register_one_pin(struct 4 12r7me" c4a12 Copy basic pin info *4<12 Co>12re.c#Lev nctrl/core.c#L251p=e" name=e" s_open81" id="L181" class="lie" s_openhref=" id="L245" class="linicmp" class="sref">sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s12r8me" c4a12ss="line" name="L229">4212ss=>12r-> class="string">"pin %d 4>12r9me" c4a12ine" name="L230"> 230<4a12ine>122class="sref">ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="lie" s_show/a>,
sitrcmp 181        return 123d.c#LL225"> 225        " name="L257"> 257
sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s12<3me" c4a12> == "pin %d 4>12<4me" c4a1235" id="L235" class="l4n1235">123           a ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="ligroups_show/a>,
sitrcmp 181        return  = 123">pinL225"> 225        123e.c#Lev nctrl/core.c#L251p=e" name=gpioranges_open81" id="L181" class="ligpioranges_openhref=" id="L245" class="linicmp" class="sref">sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s12<8me" c4a12ref">pctldev-><4 12ref>123-> class="string">"pin %d 4>12<9me" c4a12s) on %s\n"123class="sref">ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="ligpioranges_show/a>,
sitrcmp 181        return 124d.c#LL225"> 225        124ref">" name="L257"> 257
124#L144ev nctrl/core.c#L251p=e" name=claices_open81" id="L181" class="liclaices_openhref=" id="L245" class="linicmp" class="sref">sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s1243me" c4a12l_register_pins" class4"12l_r>124ber"  class="string">"pin %d 4>1244me" c4a12trl_dev" class="sref">4i12trl>124           a ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="liclaices_show/a>,
 181        return 124">pinL225"> 225        124>pinctrl_register_one_pin(struct 4 1247me" c4a12=i" class="sref">i4
12=i">124e.c#Lev nctrl/core.c#L251p=e" name=ma2<_open81" id="L181" class="lima2<_openhref=" id="L245" class="linicmp" class="sref">sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s1248me" c4a12" name="L249"> 2494 12" n>124-> class="string">"pin %d 4>1249me" c4a12ine" name="L250"> 250<4a12ine>124class="sref">ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="lima2<_show/a>,
 181        return i = 0;4<12las>125d.c#LL225"> 225        4u12m_d>125ref">" name="L257"> 257
125#L144ev nctrl/core.c#L251p=e" name=open81" id="L181" class="liopenhref=" id="L245" class="linicmp" class="sref">sitrcmpsitrcmpsfil"hrefp              stfil" class="sref">sfil"href)18inctrl/core.c#L226" id="L226" 3s1253me" c4a12"sref">i].125ber"  class="string">"pin %d 4>12l4me" c4a12s="line" name="L255"> 4512s=">125           a ivers/p"/core.c#L251p=<   le_open81" id="L181" c<   le_openhref="drivers/pinctrfil" class="sref">sfil"href"a             stp/as="lishow/a>,
 181        return 125">pinL225"> 225        125e.c#Lev vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1258me" c4a12ers/pinctrl/core.c#L264"12ers>12l->numberrs/pinctrl/core.c#Le" name=e" s_open81" id="L181" class="lie" s_openhref"class="string">"pin %d 4>12l9me" c4a12c#L261" id="L261" clas4=12c#L>12lclass="sref">.l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>126ame" c4a12
.l/core.c#L251p=llseeass="line" name=llseeahreff">number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1261me" c4a124*121261lass="sref">.l/core.c#L251p=releasess="line" name=releaselass="sref">/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>1262me" c4a12ree,omment""sref">4i12ree>12
ref="LL251"> 251        for (126href="drivers/pinctrl/core.c#L175" id4>1264me" c4a12.c#L165" id="L165" cla4s12.c#>12
     ev vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1265me" c4a12ctrl/core.c#L166" id="4112ctr>12
">pins,
<.l/core.c#L251p=open81" id="L181" copenhreff">numberrs/pinctrl/core.c#Le" name=groups_open81" id="L181" class="ligroups_openhref"class="string">"pin %d 4>1266me" c4a12span class="comment"> 4 12spa>12
ass="line" na.l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>1267me" c4a12drivers/pinctrl/core.c4L12dri>12
e.c#L198" id=.l/core.c#L251p=llseeass="line" name=llseeahreff">number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1268me" c4a12/core.c#L169" id="L1694 12/co>126->/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>1269me" c4a1212
classLL251"> 251        for (127gvers/pinctrl/core.c#L226" id="L226" 3s1271me" c4a12in_desc" class="sref">4i12in_>1271    ev vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1272me" c4a12>;
numberrs/pinctrl/core.c#Le" name=gpioranges_open81" id="L181" class="ligpioranges_openhref"class="string">"pin %d 4>1273me" c4a12class="sref">pin &4t12cla>1273ss="line" na.l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>1274me" c4a12="line" name="L175"> 14512="l>127           a .l/core.c#L251p=llseeass="line" name=llseeahreff">number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1275me" c4a126" class="line" name="41126" >127">pins,
<.l/core.c#L251p=releasess="line" name=releaselass="sref">/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>1276me" c4a12k" class="sref">mutex_4o12k" >127>pincLL251"> 251        for ();
127" class="line" name="L259"> 259}
411278me" c4a12/a>( vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1279me" c4a12>pinctrl_mutex);
<4 12>pi>127class="sref">.l/core.c#L251p=open81" id="L181" copenhreff">numberrs/pinctrl/core.c#Le" name=claices_open81" id="L181" class="liclaices_openhref"class="string">"pin %d 4>128ame" c4a12ndesc" class="sref">pi4d12nde>128.l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>1281me" c4a12href="drivers/pinctrl/4o12hre>1281lass="sref">.l/core.c#L251p=llseeass="line" name=llseeahreff">number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1282me" c4a12L" class="sref">EXPORT4S12L" >128ref="+code=pc.l/core.c#L251p=releasess="line" name=releaselass="sref">/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>1283me" c4a12_is_valid);
12nber" LL251"> 251        for (128ivers/pinctrl/core.c#L226" id="L226" 3s1285me" c4a1286" class="line" name=4L1286">128">pinev vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1286me" c4a12ctrl_dev" class="sref"4p12ctr>128ass="line" na.l/core.c#L251p=open81" id="L181" copenhreff">numberrs/pinctrl/core.c#Le" name=ma2<_open81" id="L181" class="lima2<_openhref"class="string">"pin %d 4>1287me" c4a12*128e.c#L198" id=.l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>1288me" c4a12nctrl/core.c#L189" id=4L12nct>128->number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1289me" c4a12lass="sref">i;
128class="sref">.l/core.c#L251p=releasess="line" name=releaselass="sref">/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>129ame" c4a12e="L191"> 191
 251        for (i = 0;4<12las>129ref">" name="L257"> 257
n4m12m_p>1292>pinev vers/p" id="L245" class="linfil"_opersfil"_oper,
"pin %d 4>1293me" c4a12ndesc;
numberrs/pinctrl/core.c#Le" name=open81" id="L181" class="liopenhref"class="string">"pin %d 4>1294me" c4a12pindesc" class="sref">p312pin>129           a .l/core.c#L251p=readne" name="L253"readhreff">numberrs/pinctrl/core.c#Lseq_readne" name="L253"seq_readhref"class="string">"pin %d 4>1295me" c4a12radix_tree_lookup(3a12rad>129">pins,
<.l/core.c#L251p=llseeass="line" name=llseeahreff">number/pinctrl/core.c#Lseq_lseeass="line" name=seq_lseeahref"class="string">"pin %d 4>1296me" c4a12ef">i].129ass="line" na.l/core.c#L251p=releasess="line" name=releaselass="sref">/pinctrl/core.c#Ls   le_releasess="line" name=s   le_releasehref"class="string">"pin %d 4>1297me" c4a12) {
 251        for (p3t12ctl>1298ss="code=pin_desc_get" class="sref">4s1299me" c4a12">i].i>129" n="ev " id="L245" class="lind166ryne" name="L253"d166ryhrefp              stdebugfs_rooass="sref">pindedebugfs_rooahrefL251"> 251        for (].i = 0;4<13nas>1301    ev ref="inctrl/core.c#Le" name=initiclaice_debugfs81" id="L181" class="liiniticlaice_debugfshref=" id="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpctlclass="line" name=ectlclahref"/pinctrl/core.c#L226" id="L226" 3s13n2me" c4a13n_pins" class="sref">n4m13n_p>130#L144 class="string">"pin %d 4>1303me" c4a13ndesc;
pindedeaice_rooahrefL251"> 251        for (p313nin>130ivers/pinctrl/core.c#L226" id="L226" 3s13n5me" c4a13nadix_tree_lookup(3a13nad>130">pins,
<             stdeaice_rooass="sref">pindedeaice_rooahref>/pinctrl/core.c#Ldebugfs_create_dirss="sref">pindedebugfs_create_dirhref="drivers/pinctrclv=ss="line" name=clv=re_"="drivers/pinctrpctlclass="line" name=ectlclahref"line" name="L241"  clvss="line" name=clv    )"class="string">"pin %d 4>13n6me" c4a13nf">i].130ass="line" name="L247s,
<<<<<<<<<<<<<<<<pindedebugfs_rooahref"L181"> 181        return pindedeaice_rooahref>/pinctrl/core.c#Ldeaice_rooass="sref">pindedeaice_rooahrefL251"> 251        for (p3t13ntl>1308ss="code=pin_desc_get" class="sref">4s13n9me" c4a13n>i].netuhcore.c#L180" iIS_ERRss="sref">pindeIS_ERRhref="drivers/pinctrclvice_rooass="sref">pindedeaice_rooahref) || !"drivers/pinctrclvice_rooass="sref">pindedeaice_rooahref)  class="string">"pin %d 4>131ame" c4a13>;
, "pin %d 4>13>1me" c4a13class="sref">pindesc13cla>131ame" class="sref">ndrrrrrrrrr"drivers/pinctrclv=ss="line" name=clv=re_"="drivers/pinctrpctlclass="line" name=ectlclahref"line" name="L241"  clvss="line" name=clv    )"L181"> 181        return 2me" c4a13/a>( 181        return 3me" c4a13ref="drivers/pinctrl/c4r13ref>131ber" class="sL225"> 225        13>           a inctrl/core.c#Ldebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu1e" smber, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>13>5me" c4a13->pins,
pindedeaice_rooahref"a             stpctlclass="line" name=ectlclahref""      ,
 181        return 6me" c4a13L217" class="line" nam4=13L21>13>ass="line" nainctrl/core.c#Ldebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu1e" groupsmber, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>13>7me" c4a13rl/core.c#L219" id="L24913rl/>13>e.c#L198" id="L198"c_____________"drivers/pinctrclvice_rooass="sref">pindedeaice_rooahref"a             stpctlclass="line" name=ectlclahref""       181        return 8me" c4a13class="sref">pindesc13cla>1318ss="line" na/core.c#L180" idebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu1gpio-rangesmber, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>13>9me" c4a13(*numberrs____________"drivers/pinctrclvice_rooass="sref">pindedeaice_rooahref"a             stpctlclass="line" name=ectlclahref""       181        return pindedeaice_rooahref"a             stpctlclass="line" name=ectlclahref"L181"> 181        return pindesrl/core.c#L180" i   ronf_initiclaice_debugfs81" id="L181" classonf_initiclaice_debugfshref="drivers/pinctrclvice_rooass="sref">pindedeaice_rooahref"a             stpctlclass="line" name=ectlclahref"L181"> 181        return 1322ef">L225"> 225        1324me" c4a13 Set owner */
<4 13 Se>132     ev ref="inctrl/core.c#Le" name=removeiclaice_debugfs81" id="L181" class="liremoveiclaice_debugfshref=" id="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpctlclass="line" name=ectlclahref"/pinctrl/core.c#L226" id="L226" 3s1325me" c4a13name="L226"> 226  4 13nam>13r">pin class="string">"pin %d 4>13r6me" c4a13 href="+code=pctldev" 4l13 hr>132ass="line" nainctrl/core.c#Ldebugfs_removeirecursg">ss="sref">pindedebugfs_removeirecursg">re_"="drivers/pinctrpctlclass="line" name=ectlclahref"line" name="L241"  clvice_rooass="sref">pindedeaice_rooahref)L181"> 181        return 13re.c#LL225"> 225        4213ss=>1328ss="code=pin_desc_get" class="sref">4s13r9me" c4a13ine" name="L230"> 230<4a13ine>1329    ev ref="inctrl/core.c#Le" name=initiclbugfs81" id="L181" class="liiniticlbugfshref=ref="/pinctrl/core.c#L226" id="L226" 3s133ame" c4a13133d.c#L class="string">"pin %d 4>13<1me" c4a13pindesrl/core.c#L180" idebugfs_rooass="sref">pindedebugfs_rooahref>/pinctrl/core.c#Ldebugfs_create_dirss="sref">pindedebugfs_create_dirhref="2                retu1e" pin mber,  181        return pindeIS_ERRhref="drivers/pinctrclbugfs_rooass="sref">pindedebugfs_rooahref" || !"drivers/pinctrclbugfs_rooass="sref">pindedebugfs_rooahref"  class="string">"pin %d 4>13<3me" c4a13> == numhcore.c#L180" ipr_warn81" id="L181" clr_warnhref="2                retu1fail"d to create debugfs directorynumber,  181        return 133           a pindesrl/core.c#L180" idebugfs_rooass="sref">pindedebugfs_rooahref>/pinctrl/core.c#LNULs="line" name="LNULshrefL181"> 181        return  = 133">pins,
 181        return  225        133" class="line" name="L259"> 259}
4113<8me" c4a13ref">pctldev-><4 13ref>1338ss="line" na/core.c#L180" idebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu159"> 25-claicesmber, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>13<9me" c4a13s) on %s\n"133class="sref">numberrs____________"drivers/pinctrclbugfs_rooass="sref">pindedebugfs_rooahref"r             stNULs="line" name="LNULshref""       181        return 134=ss="line" na/core.c#L180" idebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu159"> 25-ma2, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>1341me" c4a13ers/pinctrl/core.c#L244"13ers>134ame" class="sref">ndrrrrrrrrrrrrr"drivers/pinctrclbugfs_rooass="sref">pindedebugfs_rooahref"r             stNULs="line" name="LNULshref""       181        return 1342ef">pindesrl/core.c#L180" idebugfs_create_fil" class="sref">sdebugfs_create_fil"href="2                retu159"> 25-handle, sS_IFREG     |r             stS_IRUGO class="sref">sS_IRUGOhref"class="string">"pin %d 4>1343me" c4a13l_register_pins" class4"13l_r>134ber" class="sref">nummmmmmmmmmmmm"drivers/pinctrclbugfs_rooass="sref">pindedebugfs_rooahref"r             stNULs="line" name="LNULshref""       181        return 4i13trl>134     L225"> 225        134">pin225"> 225        134>pinc#elsepi2       comment">/* CONFIG_DEBUG_FS */a>,  225        i4
13=i">134" class="line" name="L259"> 259}
411348me" c4a13" name="L249"> 2494 13" n>1348ss="ev ref="inctrl/core.c#Le" name=initiclaice_debugfs81" id="L181" class="liiniticlaice_debugfshref=" id="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpctlclass="line" name=ectlclahref"/pinctrl/core.c#L226" id="L226" 3s1349me" c4a13ine" name="L250"> 250<4a13ine>134class class="string">"pin %d 4>135ame" c4a13lass="sref">i = 0;4<13las>135d.c#LL225"> 225        4u13m_d>135ref">" name="L257"> 257
135#L144ev ref="inctrl/core.c#Le" name=initiclbugfs81" id="L181" class="liiniticlbugfshref=ref="/pinctrl/core.c#L226" id="L226" 3s1353me" c4a13"sref">i].135ber"  class="string">"pin %d 4>13l4me" c4a13s="line" name="L255"> 4513s=">135     L225"> 225        135">pin225"> 225        135e.c#L class="string">"pin %d 4>13l8me" c4a13ers/pinctrl/core.c#L264"13ers>13l->L225"> 225        135" n="L183"> 183 1834*13136ref">" name="L257"> 257
,omment""sref">4i13ree>136#L144ev nctrl/core.c#L251p=e" name=check_op,
136ber"  class="string">"pin %d 4>1364me" c4a13.c#L165" id="L165" cla4s13.c#>136           a vers/p" id="L245" class="line" name=op,
,
pindedeschref"line" name="L241"  ectlop,
 181        return pin225"> 225         4 13spa>13
ass="line" nanetu!"drivers/pinctrop,
 225        136e.c#L198" id="L19!"drivers/pinctrop,
pindeget=groups_couna     ||225"> 225        ,
ss="line" name=get=group=     ||225"> 225        136class="sref">numb!"drivers/pinctrop,
137e>pins,
 181        return 4i13in_>137ref">" name="L257"> 257
;
,
pindedt_trcm_to=ma2ef="+          b!"drivers/pinctrop,
pindedt_free=ma2href"/pinctrl/core.c#L226" id="L226" 3s1373me" c4a13class="sref">pin &4t13cla>137ber" class="sref">numivers/p-" name="L241"  EINVAs="line" name="LEINVAshrefL181"> 181        return  14513="l>137ivers/pinctrl/core.c#L226" id="L226" 3s1375me" c4a136" class="line" name="41136" >137">pins,
 251        for (mutex_4o13k" >137>pincL251"> 251        for ();
137" class="line" name="L259"> 259}
411378me" c4a13/a>(       comment">/**a>,  225        pinctrl_mutex);
<4 13>pi>137classi2       comment"> * lass="liregister() - register a las crefroller claicea>,  225        pi4d13nde>138       comment"> * @ectlclsc: clscriptor for this las crefrollera>,  225         * @cla: parent claice for this las crefrollera>,  225        EXPORT4S13L" >138ref="i2       comment"> * @ca>   _data: priv,  225        );
13nber" i2       comment"> */a>,  225        138     evid="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpass="liregister81" id="L181" class="liregisterhref=" id="L245" class="linlass="liclscss="sref">pindelass="liclschrefp              stpctlclscss="sref">pindelctlclschref"class="string">"pin %d 4>1385me" c4a1386" class="line" name=4L1386">138">pins,
pindedeaicehrefp              stclvss="line" name=clv    , ref="              stca>   _datass="line" name=ca>   _datahref"/pinctrl/core.c#L226" id="L226" 3s1386me" c4a13ctrl_dev" class="sref"4p13ctr>138ass=" class="string">"pin %d 4>1387me" c4a13*138e.c#L198" id=" id="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpctlclass="line" name=ectlclahrefL251"> 251        for (138-> 251        for (i;
138" n="L183"> 183 191
pindelctlclschref"/pinctrl/core.c#L226" id="L226" 3s1391me" c4a13lass="sref">i = 0;4<13las>139ame" class="sref">ndrivers/p"/core.c#L251p=NULs="line" name="LNULshrefL181"> 181        return n4m13m_p>139ref="+code=pcnetu!"drivers/pinctrpctlclscss="sref">pindelctlclschref"line" name="L241"  ss="line" name=    "/pinctrl/core.c#L226" id="L226" 3s1393me" c4a13ndesc;
numivers/p"/core.c#L251p=NULs="line" name="LNULshrefL181"> 181        return p313pin>139ivers/pinctrl/core.c#L226" id="L226" 3s1395me" c4a13radix_tree_lookup(3a13rad>139">pins,
<             stpctlclass="line" name=ectlclahref =n"drivers/pinctrkzallocss="sref">pindekzallochref="izeof(              stpctlclass="line" name=ectlclahref""r             stGFP_KERNEs="line" name="LGFP_KERNEs    /L181"> 181        return i].139ass="line" nanetu             stpctlclass="line" name=ectlclahref =/pinctrl/core.c#LNULs="line" name="LNULshref"  class="string">"pin %d 4>1397me" c4a13) {
pindedev_errhref="            stclvss="line" name=clv    , "2                retu1fail"d to alloc=" id="Llass="liclanumber,  181        return p3t13ctl>139-> 181        return i].i>139class="sref">L251"> 251        for (].i = 0;4<14nas>140ref">pindesrl/2       comment">/* Initialize las crefrol claice " id="L*/a>,  225        n4m14n_p>1402ef">pindesrl/core.c#L180" ipctlclass="line" name=ectlclahref"line" name="L241"  owner81" id="L181" cowner     =n"drivers/pinctrpctlclscss="sref">pindelctlclschref"line" name="L241"  owner81" id="L181" cowner    L181"> 181        return ;
pindedeschref =n"drivers/pinctrpctlclscss="sref">pindelctlclschrefL181"> 181        return p314nin>140           a inctrl/core.c#Lpctlclass="line" name=ectlclahref"line" name="L241"  ca>   _datass="line" name=ca>   _datahref>/pinctrl/core.c#Lda>   _datass="line" name=ca>   _datahrefL181"> 181        return (3a14nad>140">pins,
<             stINIT_RADIX_TREEss="line" name=INIT_RADIX_TREEhref=      ss="line" name=   iclsc_tre>    , "            stGFP_KERNEs="line" name="LGFP_KERNEs    /L181"> 181        return i].140ass="line" nainctrl/core.c#LINIT_LIST_HEADss="line" name=INIT_LIST_HEADhref=       181        return /pinctrl/core.c#Ldeass="line" name=clv    L181"> 181        return p3t14ntl>1408ss="code=pin_desc_get" class="sref">4s14n9me" c4a14n>i]./2       comment">/* check sref ops for sanityL*/a>,  225        ;
,
"pin %d 4>14>1me" c4a14class="sref">pindesc14cla>141ame" class="sref">ndr             stclv_errss="sref">pindedev_errhref="            stclvss="line" name=clv    , "2                retu1ot;pin  ops lacks necessary fu;piao=snumber,  181        return 2me" c4a14/a>(pindeout_err    L181"> 181        return 3me" c4a14ref="drivers/pinctrl/c4r14ref>141ber" class="sL225"> 225        141ivers/pinctrl/core.c#L226" id="L226" 3s14>5me" c4a14->pins,
       comment">/* If we'ef implement    lasmux   , check thf ops for sanityL*/a>,  225        141ass="line" nanetu             stpctlclscss="sref">pindelctlclschref"line" name="L241"  pmxop,
"pin %d 4>14>7me" c4a14rl/core.c#L219" id="L24914rl/>14>e.c#L198" id="L198"c_netul/core.c#L251p=e" mux_check_op,
"pin %d 4>14>8me" c4a14class="sref">pindesc14cla>141->pindeout_err    L181"> 181        return 9me" c4a14(*L251"> 251        for (pindesrl/2       comment">/* If we'ef implement    lassonfi , check thf ops for sanityL*/a>,  225        142ref="+code=pcnetuhcore.c#L180" ipctlclscss="sref">pindelctlclschref"line" name="L241"  sonfop,
"pin %d 4>14r3me" c4a14rl/core.c#L225" id="L24514rl/>142ber" class="sref">numnetul/core.c#L251p=e" nonf_check_op,
"pin %d 4>1424me" c4a14 Set owner */
<4 14 Se>142           a pindesrltldev"drgoto " name="L241"  out_errss="sref">pindeout_err    L181"> 181        return  226  4 14nam>1425lass="sref">L251"> 251        for (142>pinctrl_register_one_pin(struct 4 1427me" c4a14 Copy basic pin info *4<14 Co>1427ef">pindesrl/2       comment">/* Register all thf e" sL*/a>,  225        4214ss=>1428ss="line" na/core.c#L180" idev_dbgss="sref">pindedev_dbghref="            stclvss="line" name=clv    , "2                retu1try to register sref"d e" sL...number, pindelctlclschref"line" name="L241"   181        return  230<4a14ine>1429ss="line" na/core.c#L180" iivess="line" name=ivehrefs/pinctrl/core.c#Le" name=register=e" sss="line" name=e" name=register=e" shref=             stpctlclass="line" name=ectlclahref"a             stpctlclscss="sref">pindelctlclschref"line" name="L241"  p" sss="line" name=e" shref"a             stpctlclscss="sref">pindelctlclschref"line" name="L241"   181        return 143e>pins,
"pin %d 4>14<1me" c4a14ndr             stclv_errss="sref">pindedev_errhref="            stclvss="line" name=clv    , "2                retu1error dur    las registr,  181        return pindelctlclschref"line" name="L241"  p" sss="line" name=e" shref"181"> 181        return  == nummmmmmmmmmmmmmmmmmmmmmm             stpctlclscss="sref">pindelctlclschref"line" name="L241"   181        return 143           a pindesrlgoto " name="L241"  out_errss="sref">pindeout_err    L181"> 181        return  = 1435lass="sref">L251"> 251        for (1437ss="line" na/core.c#L180" imutex_locass="line" name=mutex_locahref=       181        return pctldev-><4 14ref>1438ss="code=pin_desc_get" class="sref">4s14<9me" c4a14s) on %s\n"1439ss="line" na/core.c#L180" ilist_add_tailss="line" name=list_add_tailhref=       181        return 144gvers/pinctrl/core.c#L226" id="L226" 3s1441me" c4a14ers/pinctrl/core.c#L244"14ers>144ref">pindesrl/core.c#L180" i ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehrefs/pinctrl/core.c#Le" name=get=locaedne" name="L253"e" name=get=locaedhref=             stpctlclass="line" name=ectlclahref"line" name="L241"  clvss="line" name=clv    )L181"> 181        return 144ref="+code=pcnetu!"drivers/pinctrIS_ERRss="sref">pindeIS_ERRhref="drivers/pinctr ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehref""  class="string">"pin %d 4>1443me" c4a14l_register_pins" class4"14l_r>144ber" class="sref">num" id="L245" class="linlass="lievss="line" name=   s="liever" c              stsss="line" name=<     =class="string">"pin %d 4>1444me" c4a14trl_dev" class="sref">4i14trl>144           a pindesrltldev"dr245" class="linlass="lilookupiev=locaedne" name="L253"e" name=lookupiev=locaedhref="drivers/pinctr ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehref"181"> 181        return 144">pins,
 181        return 144ass="line" name="L247netuhcore.c#L180" iIS_ERRss="sref">pindeIS_ERRhref="drivers/pinctrsss="line" name=<    ""  class="string">"pin %d 4>1447me" c4a14=i" class="sref">i4
14=i">144e.c#L198" id="L198"c_________/core.c#L180" idev_dbgss="sref">pindedev_dbghref="            stclvss="line" name=clv    , "2                retu1fail"d to lookup thf defaul/p" number,  181        return  2494 14" n>144->"pin %d 4>1449me" c4a14ine" name="L250"> 250<4a14ine>144class="sref">numberrs________netul/core.c#L251p=e" name=selectiev=locaedne" name="L253"e" name=selectiev=locaedhref="drivers/pinctr ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehref"pinctrl/core.c#Lsss="line" name=<    ""class="string">"pin %d 4>145ame" c4a14lass="sref">i = 0;4<14las>145e>pins,
pindedev_errhref="            stclvss="line" name=clv    ,class="string">"pin %d 4>1451me" c4a14m_descs" class="sref">4u14m_d>145ame" class="sref">ndrrrrrrrrrrrrr8"c_________/2                retu1fail"d to select defaul/p" number,  181        return 145ref="+code=pctldev"drL251"> 251        for (i].145ber" class="sL225"> 225         4514s=">145ivers/pinctrl/core.c#L226" id="L226" 3s1455me" c4a14"L256" class="line" na4e14"L2>145">pins,
<             stmutex_unlocass="line" name=mutex_unlocahref=       181        return 1457ss="line" na/core.c#L180" ip" name=initiclaice_debugfs81" id="L181" class="liiniticlaice_debugfshref=             stpctlclass="line" name=ectlclahref"L181"> 181        return 1458ss="code=pin_desc_get" class="sref">4s1459me" c4a14c#L261" id="L261" clas4=14c#L>145class="sref">ivers/p"/core.c#L251p=pctlclass="line" name=ectlclahrefL251"> 251        for (4*14146ref">" name="L241"  out_errss="sref">pindeout_err    :/pinctrl/core.c#L226" id="L226" 3s1462me" c4a14ree,omment""sref">4i14ree>1462ef">pindesrl/core.c#L180" ikfre>ss="line" name=kfre>href=             stpctlclass="line" name=ectlclahref"L181"> 181        return 1463lass="sref">ivers/p"/core.c#L251p=NULs="line" name="LNULshrefL181"> 181        return 146     L225"> 225        pin"/core.c#L251p=EXPORT_SYMBOL_GPs="line" name="LEXPORT_SYMBOL_GPshref=             stpass="liregister81" id="L181" class="liregisterhref"L181"> 181        return  4 14spa>146>pinctrl_register_one_pin(struct 4 1467me" c4a14drivers/pinctrl/core.c4L14dri>146e.c#Li2       comment">/**a>,  225               comment"> * lass="liunregister() - unregister lasmuxa>,  225        146classi2       comment"> * @ectlcla: pas crefroller to unregistera>,  225        147       comment"> *a>,  225        4i14in_>1471lassi2       comment"> * Call"d by lasmux /a>     to unregister a lasmux.a>,  225        ;
       comment"> */a>,  225        pin &4t14cla>147ber" ref="inctrl/core.c#Le" name=unregister81" id="L181" class="liunregistera>ef=" id="L245" class="linlass="licla81" id="L181" class="liclahrefp              stpctlclass="line" name=ectlclahref"/pinctrl/core.c#L226" id="L226" 3s1474me" c4a14="line" name="L175"> 14514="l>147ivers class="string">"pin %d 4>1475me" c4a146" class="line" name="41146" >147">pins,
<" id="L245" class="linlass="ligpio_rangene" name="L253"e" name=gpio_rangehrefp              strangene" name="L253"rangehref,p              stn81" id="L181" cnhrefL181"> 181        return mutex_4o14k" >147ass="line" nanetu             stpctlclass="line" name=ectlclahref =/pinctrl/core.c#LNULs="line" name="LNULshref"181"> 181        return );
147e.c#L198" id="L198"c_ivers/L181"> 181        return (4s1479me" c4a14>pinctrl_mutex);
<4 14>pi>1479ss="line" na/core.c#L180" ilass="liremoveiclaice_debugfs81" id="L181" class="liremoveiclaice_debugfshref=             stpctlclass="line" name=ectlclahref"L181"> 181        return pi4d14nde>148gvers/pinctrl/core.c#L226" id="L226" 3s1481me" c4a14href="drivers/pinctrl/4o14hre>148ref">pindesrl/core.c#L180" imutex_locass="line" name=mutex_locahref=       181        return EXPORT4S14L" >148ref="181"> 181        return );
1483ss="line" nanetu!"drivers/pinctrIS_ERRss="sref">pindeIS_ERRhref="drivers/pinctr ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehref""181"> 181        return 148           a pindesrl/core.c#L180" ie" name=put=locaedne" name="L253"e" name=put=locaedhref="drivers/pinctr ctlclass="line" name=ectlclahref"line" name="L241"   ss="line" name=ehref"pinctrl/core.c#L idene" name="L253" idehref"L181"> 181        return 148">pin225"> 225        148ass="line" nai2       comment">/* TODO: check that no lasmuxes are " ill act>  ? */a>,  225        1487ss="line" na/core.c#L180" ilist_delss="line" name=list_delhref=       181        return 148->       comment">/* De" ioy clscriptor tre> */a>,  225        i;
1489ss="line" na/core.c#L180" ilass="lifree=e" clscsss="line" name=e" name=free=e" clscshref=             stpctlclass="line" name=ectlclahref"a             stpctlclass="line" name=ectlclahref"line" name="L241"  clscss="sref">pindedeschref"line" name="L241"  e" sss="line" name=e" shref"181"> 181        return  191
pindedeschref"line" name="L241"   181        return i = 0;4<14las>149ref">pindesrl/2       comment">/* remove gpio ranges map */a>,  225        n4m14m_p>1492ef">pindesrl/core.c#L180" ilist_for_each_entry_safmss="line" name=list_for_each_entry_safmhref=             strangene" name="L253"rangehref,p             stn81" id="L181" cnhref"a       225        ;
num/core.c#L180" ilist_delss="line" name=list_delhref=       181        return p314pin>149ivers/pinctrl/core.c#L226" id="L226" 3s1495me" c4a14radix_tree_lookup(3a14rad>149">pins,
<             stkfre>ss="line" name=kfre>href=             stpctlclass="line" name=ectlclahref"L181"> 181        return i].149>pinctrl_register_one_pin(struct 4 1497me" c4a14) {
 181        return p3t14ctl>149->L225"> 225        i].i>149class"/core.c#L251p=EXPORT_SYMBOL_GPs="line" name="LEXPORT_SYMBOL_GPshref=             stpass="liunregister81" id="L181" class="liunregistera>ef"L181"> 181        return ].i = 0;4<15nas>150ref">ev nctrl/core.c#L251p=_iinit81" id="L181" c_iinitss="l/core.c#L180" ip" name=init81" id="L181" class="liinithref=ref="/pinctrl/core.c#L226" id="L226" 3s15n2me" c4a15n_pins" class="sref">n4m15n_p>1502ef"> class="string">"pin %d 4>1503me" c4a15ndesc;
                retu1initialized lass="l subsystemnumber,  181        return p315nin>150           a inctrl/core.c#Lpass="liiniticlbugfs81" id="L181" class="liiniticlbugfshref=/L181"> 181        return (3a15nad>150">pins,
 251        for (i].150>pincL251"> 251        for ( 259}
4115n8me" c4a15ntldev" class="sref">p3t15ntl>1508ss="i2       comment">/* init early s9">e many /a>     really ne"d to initialized lasmux early */a>,  225        i]. 181        return ;
 181LXR community    ,pthis experimental     ion by 81"> 181

lxr."drux.no k" cly hosted by 81"> 181e 1995.