1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/pinctrl/nuvoton,npcm845-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Nuvoton NPCM845 Pin Controller and GPIO
10 - Tomer Maimon <tmaimon77@gmail.com>
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
20 const: nuvoton,npcm845-pinctrl
32 $ref: /schemas/types.yaml#/definitions/phandle
33 description: a phandle to access GCR registers.
38 additionalProperties: false
41 Eight GPIO banks that each contain 32 GPIOs.
66 $ref: pinmux-node.yaml#
71 One or more groups of pins to mux to a certain function
73 enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi,
74 smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4den, smb4b,
75 smb4c, smb15, smb16, smb17, smb18, smb19, smb20, smb21,
76 smb22, smb23, smb23b, smb4d, smb14, smb5, smb4, smb3,
77 spi0cs1, spi0cs2, spi0cs3, spi1cs0, spi1cs1, spi1cs2,
78 spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a, uart1, jtag2,
79 bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md, r1oen,
80 r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2, fanin3,
81 fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
82 fanin11, fanin12, fanin13, fanin14, fanin15, pwm0, pwm1, pwm2,
83 pwm3, r2, r2err, r2md, r3rxer, ga20kbc, smb5d, lpc, espi, rg2,
84 ddr, i3c0, i3c1, i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2,
85 smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
86 sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
87 mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
88 scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
89 spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
90 smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
91 spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
92 hgpio5, hgpio6, hgpio7 ]
96 The function that a group of pins is muxed to
97 enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi,
98 smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4den, smb4b,
99 smb4c, smb15, smb16, smb17, smb18, smb19, smb20, smb21,
100 smb22, smb23, smb23b, smb4d, smb14, smb5, smb4, smb3,
101 spi0cs1, spi0cs2, spi0cs3, spi1cs0, spi1cs1, spi1cs2,
102 spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a, uart1, jtag2,
103 bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md, r1oen,
104 r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2, fanin3,
105 fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
106 fanin11, fanin12, fanin13, fanin14, fanin15, pwm0, pwm1, pwm2,
107 pwm3, r2, r2err, r2md, r3rxer, ga20kbc, smb5d, lpc, espi, rg2,
108 ddr, i3c0, i3c1, i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2,
109 smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
110 sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
111 mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
112 scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
113 spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
114 smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
115 spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
116 hgpio5, hgpio6, hgpio7 ]
122 additionalProperties: false
125 $ref: pincfg-node.yaml#
130 A list of pins to configure in certain ways, such as enabling
133 pattern: '^GPIO([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-6])'
147 drive-push-pull: true
149 drive-open-drain: true
153 Debouncing periods in microseconds, one period per interrupt
154 bank found in the controller
155 $ref: /schemas/types.yaml#/definitions/uint32-array
163 $ref: /schemas/types.yaml#/definitions/uint32
167 enum: [ 0, 1, 2, 4, 8, 12 ]
169 additionalProperties: false
172 - $ref: pinctrl.yaml#
181 additionalProperties: false
185 #include <dt-bindings/interrupt-controller/arm-gic.h>
186 #include <dt-bindings/gpio/gpio.h>
189 #address-cells = <2>;
192 pinctrl: pinctrl@f0010000 {
193 compatible = "nuvoton,npcm845-pinctrl";
194 ranges = <0x0 0x0 0xf0010000 0x8000>;
195 #address-cells = <1>;
197 nuvoton,sysgcr = <&gcr>;
203 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
204 gpio-ranges = <&pinctrl 0 0 32>;
207 fanin0_pin: fanin0-mux {
212 pin34_slew: pin34-slew {
213 pins = "GPIO34/I3C4_SDA";