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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml

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 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pinctrl/nuvoton,npcm845-pinctrl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Nuvoton NPCM845 Pin Controller and GPIO
  8 
  9 maintainers:
 10   - Tomer Maimon <tmaimon77@gmail.com>
 11 
 12 description:
 13   The Nuvoton BMC NPCM8XX Pin Controller multi-function routed through
 14   the multiplexing block, Each pin supports GPIO functionality (GPIOx)
 15   and multiple functions that directly connect the pin to different
 16   hardware blocks.
 17 
 18 properties:
 19   compatible:
 20     const: nuvoton,npcm845-pinctrl
 21 
 22   ranges:
 23     maxItems: 1
 24 
 25   '#address-cells':
 26     const: 1
 27 
 28   '#size-cells':
 29     const: 1
 30 
 31   nuvoton,sysgcr:
 32     $ref: /schemas/types.yaml#/definitions/phandle
 33     description: a phandle to access GCR registers.
 34 
 35 patternProperties:
 36   '^gpio@':
 37     type: object
 38     additionalProperties: false
 39 
 40     description:
 41       Eight GPIO banks that each contain 32 GPIOs.
 42 
 43     properties:
 44       gpio-controller: true
 45 
 46       '#gpio-cells':
 47         const: 2
 48 
 49       reg:
 50         maxItems: 1
 51 
 52       interrupts:
 53         maxItems: 1
 54 
 55       gpio-ranges:
 56         maxItems: 1
 57 
 58     required:
 59       - gpio-controller
 60       - '#gpio-cells'
 61       - reg
 62       - interrupts
 63       - gpio-ranges
 64 
 65   '-mux$':
 66     $ref: pinmux-node.yaml#
 67 
 68     properties:
 69       groups:
 70         description:
 71           One or more groups of pins to mux to a certain function
 72         items:
 73           enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi,
 74                   smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4b, smb4c, smb15,
 75                   smb16, smb17, smb18, smb19, smb20, smb21, smb22, smb23,
 76                   smb23b, smb4d, smb14, smb5, smb4, smb3, spi0cs1, spi0cs2,
 77                   spi0cs3, spi1cs0, spi1cs1, spi1cs2, spi1cs3, spi1cs23, smb3c,
 78                   smb3b, bmcuart0a, uart1, jtag2, bmcuart1, uart2, sg1mdio,
 79                   bmcuart0b, r1err, r1md, r1oen, r2oen, rmii3, r3oen, smb3d,
 80                   fanin0, fanin1, fanin2, fanin3, fanin4, fanin5, fanin6,
 81                   fanin7, fanin8, fanin9, fanin10, fanin11, fanin12, fanin13,
 82                   fanin14, fanin15, pwm0, pwm1, pwm2, pwm3, r2, r2err, r2md,
 83                   r3rxer, ga20kbc, smb5d, lpc, espi, rg2, ddr, i3c0, i3c1,
 84                   i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2, smb2c, smb2b, smb1c,
 85                   smb1b, smb8, smb9, smb10, smb11, sd1, sd1pwr, pwm4, pwm5,
 86                   pwm6, pwm7, pwm8, pwm9, pwm10, pwm11, mmc8, mmc, mmcwp, mmccd,
 87                   mmcrst, clkout, serirq, scipme, smi, smb6, smb6b, smb6c,
 88                   smb6d, smb7, smb7b, smb7c, smb7d, spi1, faninx, r1, spi3, 
 89                   spi3cs1, spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c,
 90                   smb0den, smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13,
 91                   spix, spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
 92                   hgpio5, hgpio6, hgpio7, bu4, bu4b, bu5, bu5b, bu6, gpo187 ]
 93 
 94       function:
 95         description:
 96           The function that a group of pins is muxed to
 97         enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi, smb5b,
 98                 smb5c, lkgpo0, pspi, jm1, jm2, smb4b, smb4c, smb15, smb16,
 99                 smb17, smb18, smb19, smb20, smb21, smb22, smb23, smb23b, smb4d,
100                 smb14, smb5, smb4, smb3, spi0cs1, spi0cs2, spi0cs3, spi1cs0,
101                 spi1cs1, spi1cs2, spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a,
102                 uart1, jtag2, bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md,
103                 r1oen, r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2,
104                 fanin3, fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
105                 fanin11, fanin12, fanin13, fanin14, fanin15, pwm0, pwm1, pwm2,
106                 pwm3, r2, r2err, r2md, r3rxer, ga20kbc, smb5d, lpc, espi, rg2,
107                 ddr, i3c0, i3c1, i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2,
108                 smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
109                 sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
110                 mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, scipme, smi,
111                 smb6, smb6b, smb6c, smb6d, smb7, smb7b, smb7c, smb7d, spi1,
112                 faninx, r1, spi3, spi3cs1, spi3quad, spi3cs2, spi3cs3, nprd_smi,
113                 smb0b, smb0c, smb0den, smb0d, ddc, rg2mdio, wdog1, wdog2,
114                 smb12, smb13, spix, spixcs1, clkreq, hgpio0, hgpio1, hgpio2,
115                 hgpio3, hgpio4, hgpio5, hgpio6, hgpio7, bu4, bu4b, bu5, bu5b,
116                 bu6, gpo187 ]
117 
118     dependencies:
119       groups: [ function ]
120       function: [ groups ]
121 
122     additionalProperties: false
123 
124   '^pin':
125     $ref: pincfg-node.yaml#
126 
127     properties:
128       pins:
129         description:
130           A list of pins to configure in certain ways, such as enabling
131           debouncing
132         items:
133           pattern: '^GPIO([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-6])'
134 
135       bias-disable: true
136 
137       bias-pull-up: true
138 
139       bias-pull-down: true
140 
141       input-enable: true
142 
143       output-low: true
144 
145       output-high: true
146 
147       drive-push-pull: true
148 
149       drive-open-drain: true
150 
151       input-debounce:
152         description:
153           Debouncing periods in microseconds, one period per interrupt
154           bank found in the controller
155         minItems: 1
156         maxItems: 4
157 
158       slew-rate:
159         description: |
160           0: Low rate
161           1: High rate
162         enum: [0, 1]
163 
164       drive-strength:
165         enum: [ 0, 1, 2, 4, 8, 12 ]
166 
167     additionalProperties: false
168 
169 allOf:
170   - $ref: pinctrl.yaml#
171 
172 required:
173   - compatible
174   - ranges
175   - '#address-cells'
176   - '#size-cells'
177   - nuvoton,sysgcr
178 
179 additionalProperties: false
180 
181 examples:
182   - |
183     #include <dt-bindings/interrupt-controller/arm-gic.h>
184     #include <dt-bindings/gpio/gpio.h>
185 
186     soc {
187       #address-cells = <2>;
188       #size-cells = <2>;
189 
190       pinctrl: pinctrl@f0010000 {
191         compatible = "nuvoton,npcm845-pinctrl";
192         ranges = <0x0 0x0 0xf0010000 0x8000>;
193         #address-cells = <1>;
194         #size-cells = <1>;
195         nuvoton,sysgcr = <&gcr>;
196 
197         gpio0: gpio@0 {
198           gpio-controller;
199           #gpio-cells = <2>;
200           reg = <0x0 0xb0>;
201           interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
202           gpio-ranges = <&pinctrl 0 0 32>;
203         };
204 
205         fanin0_pin: fanin0-mux {
206           groups = "fanin0";
207           function = "fanin0";
208         };
209 
210         pin34_slew: pin34-slew {
211           pins = "GPIO34/I3C4_SDA";
212           bias-disable;
213         };
214       };
215     };

~ [ 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