~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt (Architecture i386) and /Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt (Architecture sparc)


  1 * Freescale MXS Pin Controller                      1 * Freescale MXS Pin Controller
  2                                                     2 
  3 The pins controlled by mxs pin controller are       3 The pins controlled by mxs pin controller are organized in banks, each bank
  4 has 32 pins.  Each pin has 4 multiplexing func      4 has 32 pins.  Each pin has 4 multiplexing functions, and generally, the 4th
  5 function is GPIO.  The configuration on the pi      5 function is GPIO.  The configuration on the pins includes drive strength,
  6 voltage and pull-up.                                6 voltage and pull-up.
  7                                                     7 
  8 Required properties:                                8 Required properties:
  9 - compatible: "fsl,imx23-pinctrl" or "fsl,imx2      9 - compatible: "fsl,imx23-pinctrl" or "fsl,imx28-pinctrl"
 10 - reg: Should contain the register physical ad     10 - reg: Should contain the register physical address and length for the
 11   pin controller.                                  11   pin controller.
 12                                                    12 
 13 Please refer to pinctrl-bindings.txt in this d     13 Please refer to pinctrl-bindings.txt in this directory for details of the
 14 common pinctrl bindings used by client devices     14 common pinctrl bindings used by client devices.
 15                                                    15 
 16 The node of mxs pin controller acts as a conta     16 The node of mxs pin controller acts as a container for an arbitrary number of
 17 subnodes.  Each of these subnodes represents s     17 subnodes.  Each of these subnodes represents some desired configuration for
 18 a group of pins, and only affects those parame     18 a group of pins, and only affects those parameters that are explicitly listed.
 19 In other words, a subnode that describes a dri     19 In other words, a subnode that describes a drive strength parameter implies no
 20 information about pull-up. For this reason, ev     20 information about pull-up. For this reason, even seemingly boolean values are
 21 actually tristates in this binding: unspecifie     21 actually tristates in this binding: unspecified, off, or on. Unspecified is
 22 represented as an absent property, and off/on      22 represented as an absent property, and off/on are represented as integer
 23 values 0 and 1.                                    23 values 0 and 1.
 24                                                    24 
 25 Those subnodes under mxs pin controller node w     25 Those subnodes under mxs pin controller node will fall into two categories.
 26 One is to set up a group of pins for a functio     26 One is to set up a group of pins for a function, both mux selection and pin
 27 configurations, and it's called group node in      27 configurations, and it's called group node in the binding document.   The other
 28 one is to adjust the pin configuration for som     28 one is to adjust the pin configuration for some particular pins that need a
 29 different configuration than what is defined i     29 different configuration than what is defined in group node.  The binding
 30 document calls this type of node config node.      30 document calls this type of node config node.
 31                                                    31 
 32 On mxs, there is no hardware pin group. The pi     32 On mxs, there is no hardware pin group. The pin group in this binding only
 33 means a group of pins put together for particu     33 means a group of pins put together for particular peripheral to work in
 34 particular function, like SSP0 functioning as      34 particular function, like SSP0 functioning as mmc0-8bit.  That said, the
 35 group node should include all the pins needed      35 group node should include all the pins needed for one function rather than
 36 having these pins defined in several group nod     36 having these pins defined in several group nodes.  It also means each of
 37 "pinctrl-*" phandle in client device node shou     37 "pinctrl-*" phandle in client device node should only have one group node
 38 pointed in there, while the phandle can have m     38 pointed in there, while the phandle can have multiple config node referenced
 39 there to adjust configurations for some pins i     39 there to adjust configurations for some pins in the group.
 40                                                    40 
 41 Required subnode-properties:                       41 Required subnode-properties:
 42 - fsl,pinmux-ids: An integer array.  Each inte     42 - fsl,pinmux-ids: An integer array.  Each integer in the array specify a pin
 43   with given mux function, with bank, pin and      43   with given mux function, with bank, pin and mux packed as below.
 44                                                    44 
 45     [15..12] : bank number                         45     [15..12] : bank number
 46     [11..4]  : pin number                          46     [11..4]  : pin number
 47     [3..0]   : mux selection                       47     [3..0]   : mux selection
 48                                                    48 
 49   This integer with mux selection packed is us     49   This integer with mux selection packed is used as an entity by both group
 50   and config nodes to identify a pin.  The mux     50   and config nodes to identify a pin.  The mux selection in the integer takes
 51   effects only on group node, and will get ign     51   effects only on group node, and will get ignored by driver with config node,
 52   since config node is only meant to set up pi     52   since config node is only meant to set up pin configurations.
 53                                                    53 
 54   Valid values for these integers are listed b     54   Valid values for these integers are listed below.
 55                                                    55 
 56 - reg: Should be the index of the group nodes      56 - reg: Should be the index of the group nodes for same function.  This property
 57   is required only for group nodes, and should     57   is required only for group nodes, and should not be present in any config
 58   nodes.                                           58   nodes.
 59                                                    59 
 60 Optional subnode-properties:                       60 Optional subnode-properties:
 61 - fsl,drive-strength: Integer.                     61 - fsl,drive-strength: Integer.
 62     0: MXS_DRIVE_4mA                               62     0: MXS_DRIVE_4mA
 63     1: MXS_DRIVE_8mA                               63     1: MXS_DRIVE_8mA
 64     2: MXS_DRIVE_12mA                              64     2: MXS_DRIVE_12mA
 65     3: MXS_DRIVE_16mA                              65     3: MXS_DRIVE_16mA
 66 - fsl,voltage: Integer.                            66 - fsl,voltage: Integer.
 67     0: MXS_VOLTAGE_LOW  - 1.8 V                    67     0: MXS_VOLTAGE_LOW  - 1.8 V
 68     1: MXS_VOLTAGE_HIGH - 3.3 V                    68     1: MXS_VOLTAGE_HIGH - 3.3 V
 69 - fsl,pull-up: Integer.                            69 - fsl,pull-up: Integer.
 70     0: MXS_PULL_DISABLE - Disable the internal     70     0: MXS_PULL_DISABLE - Disable the internal pull-up
 71     1: MXS_PULL_ENABLE  - Enable the internal      71     1: MXS_PULL_ENABLE  - Enable the internal pull-up
 72                                                    72 
 73 Note that when enabling the pull-up, the inter     73 Note that when enabling the pull-up, the internal pad keeper gets disabled.
 74 Also, some pins doesn't have a pull up, in tha     74 Also, some pins doesn't have a pull up, in that case, setting the fsl,pull-up
 75 will only disable the internal pad keeper.         75 will only disable the internal pad keeper.
 76                                                    76 
 77 Examples:                                          77 Examples:
 78                                                    78 
 79 pinctrl@80018000 {                                 79 pinctrl@80018000 {
 80         #address-cells = <1>;                      80         #address-cells = <1>;
 81         #size-cells = <0>;                         81         #size-cells = <0>;
 82         compatible = "fsl,imx28-pinctrl";          82         compatible = "fsl,imx28-pinctrl";
 83         reg = <0x80018000 2000>;                   83         reg = <0x80018000 2000>;
 84                                                    84 
 85         mmc0_8bit_pins_a: mmc0-8bit@0 {            85         mmc0_8bit_pins_a: mmc0-8bit@0 {
 86                 reg = <0>;                         86                 reg = <0>;
 87                 fsl,pinmux-ids = <                 87                 fsl,pinmux-ids = <
 88                         MX28_PAD_SSP0_DATA0__S     88                         MX28_PAD_SSP0_DATA0__SSP0_D0
 89                         MX28_PAD_SSP0_DATA1__S     89                         MX28_PAD_SSP0_DATA1__SSP0_D1
 90                         MX28_PAD_SSP0_DATA2__S     90                         MX28_PAD_SSP0_DATA2__SSP0_D2
 91                         MX28_PAD_SSP0_DATA3__S     91                         MX28_PAD_SSP0_DATA3__SSP0_D3
 92                         MX28_PAD_SSP0_DATA4__S     92                         MX28_PAD_SSP0_DATA4__SSP0_D4
 93                         MX28_PAD_SSP0_DATA5__S     93                         MX28_PAD_SSP0_DATA5__SSP0_D5
 94                         MX28_PAD_SSP0_DATA6__S     94                         MX28_PAD_SSP0_DATA6__SSP0_D6
 95                         MX28_PAD_SSP0_DATA7__S     95                         MX28_PAD_SSP0_DATA7__SSP0_D7
 96                         MX28_PAD_SSP0_CMD__SSP     96                         MX28_PAD_SSP0_CMD__SSP0_CMD
 97                         MX28_PAD_SSP0_DETECT__     97                         MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT
 98                         MX28_PAD_SSP0_SCK__SSP     98                         MX28_PAD_SSP0_SCK__SSP0_SCK
 99                 >;                                 99                 >;
100                 fsl,drive-strength = <MXS_DRIV    100                 fsl,drive-strength = <MXS_DRIVE_4mA>;
101                 fsl,voltage = <MXS_VOLTAGE_HIG    101                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
102                 fsl,pull-up = <MXS_PULL_ENABLE    102                 fsl,pull-up = <MXS_PULL_ENABLE>;
103         };                                        103         };
104                                                   104 
105         mmc_cd_cfg: mmc-cd-cfg {                  105         mmc_cd_cfg: mmc-cd-cfg {
106                 fsl,pinmux-ids = <MX28_PAD_SSP    106                 fsl,pinmux-ids = <MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT>;
107                 fsl,pull-up = <MXS_PULL_DISABL    107                 fsl,pull-up = <MXS_PULL_DISABLE>;
108         };                                        108         };
109                                                   109 
110         mmc_sck_cfg: mmc-sck-cfg {                110         mmc_sck_cfg: mmc-sck-cfg {
111                 fsl,pinmux-ids = <MX28_PAD_SSP    111                 fsl,pinmux-ids = <MX28_PAD_SSP0_SCK__SSP0_SCK>;
112                 fsl,drive-strength = <MXS_DRIV    112                 fsl,drive-strength = <MXS_DRIVE_12mA>;
113                 fsl,pull-up = <MXS_PULL_DISABL    113                 fsl,pull-up = <MXS_PULL_DISABLE>;
114         };                                        114         };
115 };                                                115 };
116                                                   116 
117 In this example, group node mmc0-8bit defines     117 In this example, group node mmc0-8bit defines a group of pins for mxs SSP0
118 to function as a 8-bit mmc device, with 8mA, 3    118 to function as a 8-bit mmc device, with 8mA, 3.3V and pull-up configurations
119 applied on all these pins.  And config nodes m    119 applied on all these pins.  And config nodes mmc-cd-cfg and mmc-sck-cfg are
120 adjusting the configuration for pins card-dete    120 adjusting the configuration for pins card-detection and clock from what group
121 node mmc0-8bit defines.  Only the configuratio    121 node mmc0-8bit defines.  Only the configuration properties to be adjusted need
122 to be listed in the config nodes.                 122 to be listed in the config nodes.
123                                                   123 
124 Valid values for i.MX28/i.MX23 pinmux-id are d    124 Valid values for i.MX28/i.MX23 pinmux-id are defined in
125 arch/arm/boot/dts/imx28-pinfunc.h and arch/arm    125 arch/arm/boot/dts/imx28-pinfunc.h and arch/arm/boot/dts/imx23-pinfunc.h.
126 The definitions for the padconfig properties c    126 The definitions for the padconfig properties can be found in
127 arch/arm/boot/dts/mxs-pinfunc.h.                  127 arch/arm/boot/dts/mxs-pinfunc.h.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php