← Documents Documentation/devicetree/bindings/pinctrl/nuvoton,npcm7xx-pinctrl.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Nuvoton NPCM7XX Pinctrl

NPCM7XX GPIO bank, pin mux, group/function, electrical 설정 binding입니다.

Source pathDocumentation/devicetree/bindings/pinctrl/nuvoton,npcm7xx-pinctrl.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

nuvoton,npcm7xx-pinctrl.txt:1-216

8개 GPIO bank와 전체 pin·group 목록, slew/drive 설정, DTS 예제를 구조화해 제공합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 Nuvoton NPCM7XX Pin Controllers
2
3 The Nuvoton BMC NPCM7XX Pin Controller multi-function routed through
4 the multiplexing block, Each pin supports GPIO functionality (GPIOx)
5 and multiple functions that directly connect the pin to different
6 hardware blocks.
7
8 Required properties:
9 - #address-cells : should be 1.
10 - #size-cells : should be 1.
11 - compatible : "nuvoton,npcm750-pinctrl" for Poleg NPCM7XX.
12 - ranges : defines mapping ranges between pin controller node (parent)
13 to GPIO bank node (children).
14
15 === GPIO Bank Subnode ===
16
17 The NPCM7XX has 8 GPIO Banks each GPIO bank supports 32 GPIO.
18
19 Required GPIO Bank subnode-properties:
20 - reg : specifies physical base address and size of the GPIO
21 bank registers.
22 - gpio-controller : Marks the device node as a GPIO controller.
23 - #gpio-cells : Must be <2>. The first cell is the gpio pin number
24 and the second cell is used for optional parameters.
25 - interrupts : contain the GPIO bank interrupt with flags for falling edge.
26 - gpio-ranges : defines the range of pins managed by the GPIO bank controller.
27
28 For example, GPIO bank subnodes like the following:
29 gpio0: gpio@f0010000 {
30 gpio-controller;
31 #gpio-cells = <2>;
32 reg = <0x0 0x80>;
33 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
34 gpio-ranges = <&pinctrl 0 0 32>;
35 };
36
37 === Pin Mux Subnode ===
38
39 - pin: A string containing the name of the pin
40 An array of strings, each string containing the name of a pin.
41 These pin are used for selecting pin configuration.
42
43 The following are the list of pins available:
44 "GPIO0/IOX1DI", "GPIO1/IOX1LD", "GPIO2/IOX1CK", "GPIO3/IOX1D0",
45 "GPIO4/IOX2DI/SMB1DSDA", "GPIO5/IOX2LD/SMB1DSCL", "GPIO6/IOX2CK/SMB2DSDA",
46 "GPIO7/IOX2D0/SMB2DSCL", "GPIO8/LKGPO1", "GPIO9/LKGPO2", "GPIO10/IOXHLD",
47 "GPIO11/IOXHCK", "GPIO12/GSPICK/SMB5BSCL", "GPIO13/GSPIDO/SMB5BSDA",
48 "GPIO14/GSPIDI/SMB5CSCL", "GPIO15/GSPICS/SMB5CSDA", "GPIO16/LKGPO0",
49 "GPIO17/PSPI2DI/SMB4DEN","GPIO18/PSPI2D0/SMB4BSDA", "GPIO19/PSPI2CK/SMB4BSCL",
50 "GPIO20/SMB4CSDA/SMB15SDA", "GPIO21/SMB4CSCL/SMB15SCL", "GPIO22/SMB4DSDA/SMB14SDA",
51 "GPIO23/SMB4DSCL/SMB14SCL", "GPIO24/IOXHDO", "GPIO25/IOXHDI", "GPIO26/SMB5SDA",
52 "GPIO27/SMB5SCL", "GPIO28/SMB4SDA", "GPIO29/SMB4SCL", "GPIO30/SMB3SDA",
53 "GPIO31/SMB3SCL", "GPIO32/nSPI0CS1","SPI0D2", "SPI0D3", "GPIO37/SMB3CSDA",
54 "GPIO38/SMB3CSCL", "GPIO39/SMB3BSDA", "GPIO40/SMB3BSCL", "GPIO41/BSPRXD",
55 "GPO42/BSPTXD/STRAP11", "GPIO43/RXD1/JTMS2/BU1RXD", "GPIO44/nCTS1/JTDI2/BU1CTS",
56 "GPIO45/nDCD1/JTDO2", "GPIO46/nDSR1/JTCK2", "GPIO47/nRI1/JCP_RDY2",
57 "GPIO48/TXD2/BSPTXD", "GPIO49/RXD2/BSPRXD", "GPIO50/nCTS2", "GPO51/nRTS2/STRAP2",
58 "GPIO52/nDCD2", "GPO53/nDTR2_BOUT2/STRAP1", "GPIO54/nDSR2", "GPIO55/nRI2",
59 "GPIO56/R1RXERR", "GPIO57/R1MDC", "GPIO58/R1MDIO", "GPIO59/SMB3DSDA",
60 "GPIO60/SMB3DSCL", "GPO61/nDTR1_BOUT1/STRAP6", "GPO62/nRTST1/STRAP5",
61 "GPO63/TXD1/STRAP4", "GPIO64/FANIN0", "GPIO65/FANIN1", "GPIO66/FANIN2",
62 "GPIO67/FANIN3", "GPIO68/FANIN4", "GPIO69/FANIN5", "GPIO70/FANIN6", "GPIO71/FANIN7",
63 "GPIO72/FANIN8", "GPIO73/FANIN9", "GPIO74/FANIN10", "GPIO75/FANIN11",
64 "GPIO76/FANIN12", "GPIO77/FANIN13","GPIO78/FANIN14", "GPIO79/FANIN15",
65 "GPIO80/PWM0", "GPIO81/PWM1", "GPIO82/PWM2", "GPIO83/PWM3", "GPIO84/R2TXD0",
66 "GPIO85/R2TXD1", "GPIO86/R2TXEN", "GPIO87/R2RXD0", "GPIO88/R2RXD1", "GPIO89/R2CRSDV",
67 "GPIO90/R2RXERR", "GPIO91/R2MDC", "GPIO92/R2MDIO", "GPIO93/GA20/SMB5DSCL",
68 "GPIO94/nKBRST/SMB5DSDA", "GPIO95/nLRESET/nESPIRST", "GPIO96/RG1TXD0",
69 "GPIO97/RG1TXD1", "GPIO98/RG1TXD2", "GPIO99/RG1TXD3","GPIO100/RG1TXC",
70 "GPIO101/RG1TXCTL", "GPIO102/RG1RXD0", "GPIO103/RG1RXD1", "GPIO104/RG1RXD2",
71 "GPIO105/RG1RXD3", "GPIO106/RG1RXC", "GPIO107/RG1RXCTL", "GPIO108/RG1MDC",
72 "GPIO109/RG1MDIO", "GPIO110/RG2TXD0/DDRV0", "GPIO111/RG2TXD1/DDRV1",
73 "GPIO112/RG2TXD2/DDRV2", "GPIO113/RG2TXD3/DDRV3", "GPIO114/SMB0SCL",
74 "GPIO115/SMB0SDA", "GPIO116/SMB1SCL", "GPIO117/SMB1SDA", "GPIO118/SMB2SCL",
75 "GPIO119/SMB2SDA", "GPIO120/SMB2CSDA", "GPIO121/SMB2CSCL", "GPIO122/SMB2BSDA",
76 "GPIO123/SMB2BSCL", "GPIO124/SMB1CSDA", "GPIO125/SMB1CSCL","GPIO126/SMB1BSDA",
77 "GPIO127/SMB1BSCL", "GPIO128/SMB8SCL", "GPIO129/SMB8SDA", "GPIO130/SMB9SCL",
78 "GPIO131/SMB9SDA", "GPIO132/SMB10SCL", "GPIO133/SMB10SDA","GPIO134/SMB11SCL",
79 "GPIO135/SMB11SDA", "GPIO136/SD1DT0", "GPIO137/SD1DT1", "GPIO138/SD1DT2",
80 "GPIO139/SD1DT3", "GPIO140/SD1CLK", "GPIO141/SD1WP", "GPIO142/SD1CMD",
81 "GPIO143/SD1CD/SD1PWR", "GPIO144/PWM4", "GPIO145/PWM5", "GPIO146/PWM6",
82 "GPIO147/PWM7", "GPIO148/MMCDT4", "GPIO149/MMCDT5", "GPIO150/MMCDT6",
83 "GPIO151/MMCDT7", "GPIO152/MMCCLK", "GPIO153/MMCWP", "GPIO154/MMCCMD",
84 "GPIO155/nMMCCD/nMMCRST", "GPIO156/MMCDT0", "GPIO157/MMCDT1", "GPIO158/MMCDT2",
85 "GPIO159/MMCDT3", "GPIO160/CLKOUT/RNGOSCOUT", "GPIO161/nLFRAME/nESPICS",
86 "GPIO162/SERIRQ", "GPIO163/LCLK/ESPICLK", "GPIO164/LAD0/ESPI_IO0",
87 "GPIO165/LAD1/ESPI_IO1", "GPIO166/LAD2/ESPI_IO2", "GPIO167/LAD3/ESPI_IO3",
88 "GPIO168/nCLKRUN/nESPIALERT", "GPIO169/nSCIPME", "GPIO170/nSMI", "GPIO171/SMB6SCL",
89 "GPIO172/SMB6SDA", "GPIO173/SMB7SCL", "GPIO174/SMB7SDA", "GPIO175/PSPI1CK/FANIN19",
90 "GPIO176/PSPI1DO/FANIN18", "GPIO177/PSPI1DI/FANIN17", "GPIO178/R1TXD0",
91 "GPIO179/R1TXD1", "GPIO180/R1TXEN", "GPIO181/R1RXD0", "GPIO182/R1RXD1",
92 "GPIO183/SPI3CK", "GPO184/SPI3D0/STRAP9", "GPO185/SPI3D1/STRAP10",
93 "GPIO186/nSPI3CS0", "GPIO187/nSPI3CS1", "GPIO188/SPI3D2/nSPI3CS2",
94 "GPIO189/SPI3D3/nSPI3CS3", "GPIO190/nPRD_SMI", "GPIO191", "GPIO192", "GPIO193/R1CRSDV",
95 "GPIO194/SMB0BSCL", "GPIO195/SMB0BSDA", "GPIO196/SMB0CSCL", "GPIO197/SMB0DEN",
96 "GPIO198/SMB0DSDA", "GPIO199/SMB0DSCL", "GPIO200/R2CK", "GPIO201/R1CK",
97 "GPIO202/SMB0CSDA", "GPIO203/FANIN16", "GPIO204/DDC2SCL", "GPIO205/DDC2SDA",
98 "GPIO206/HSYNC2", "GPIO207/VSYNC2", "GPIO208/RG2TXC/DVCK", "GPIO209/RG2TXCTL/DDRV4",
99 "GPIO210/RG2RXD0/DDRV5", "GPIO211/RG2RXD1/DDRV6", "GPIO212/RG2RXD2/DDRV7",
100 "GPIO213/RG2RXD3/DDRV8", "GPIO214/RG2RXC/DDRV9", "GPIO215/RG2RXCTL/DDRV10",
101 "GPIO216/RG2MDC/DDRV11", "GPIO217/RG2MDIO/DVHSYNC", "GPIO218/nWDO1",
102 "GPIO219/nWDO2", "GPIO220/SMB12SCL", "GPIO221/SMB12SDA", "GPIO222/SMB13SCL",
103 "GPIO223/SMB13SDA", "GPIO224/SPIXCK", "GPO225/SPIXD0/STRAP12", "GPO226/SPIXD1/STRAP13",
104 "GPIO227/nSPIXCS0", "GPIO228/nSPIXCS1", "GPO229/SPIXD2/STRAP3", "GPIO230/SPIXD3",
105 "GPIO231/nCLKREQ", "GPI255/DACOSEL"
106
107 Optional Properties:
108 bias-disable, bias-pull-down, bias-pull-up, input-enable,
109 input-disable, output-high, output-low, drive-push-pull,
110 drive-open-drain, input-debounce, slew-rate, drive-strength
111
112 slew-rate valid arguments are:
113 <0> - slow
114 <1> - fast
115 drive-strength valid arguments are:
116 <2> - 2mA
117 <4> - 4mA
118 <8> - 8mA
119 <12> - 12mA
120 <16> - 16mA
121 <24> - 24mA
122
123 For example, pinctrl might have pinmux subnodes like the following:
124
125 gpio0_iox1d1_pin: gpio0-iox1d1-pin {
126 pins = "GPIO0/IOX1DI";
127 output-high;
128 };
129 gpio0_iox1ck_pin: gpio0-iox1ck-pin {
130 pins = "GPIO2/IOX1CK";
131 output_high;
132 };
133
134 === Pin Group Subnode ===
135
136 Required pin group subnode-properties:
137 - groups : A string containing the name of the group to mux.
138 - function: A string containing the name of the function to mux to the
139 group.
140
141 The following are the list of the available groups and functions :
142 smb0, smb0b, smb0c, smb0d, smb0den, smb1, smb1b, smb1c, smb1d,
143 smb2, smb2b, smb2c, smb2d, smb3, smb3b, smb3c, smb3d, smb4, smb4b,
144 smb4c, smb4d, smb4den, smb5, smb5b, smb5c, smb5d, ga20kbc, smb6,
145 smb7, smb8, smb9, smb10, smb11, smb12, smb13, smb14, smb15, fanin0,
146 fanin1, fanin2, fanin3, fanin4, fanin5, fanin6, fanin7, fanin8,
147 fanin9, fanin10, fanin11 fanin12 fanin13, fanin14, fanin15, faninx,
148 pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, rg1, rg1mdio, rg2,
149 rg2mdio, ddr, uart1, uart2, bmcuart0a, bmcuart0b, bmcuart1, iox1,
150 iox2, ioxh, gspi, mmc, mmcwp, mmccd, mmcrst, mmc8, r1, r1err, r1md,
151 r2, r2err, r2md, sd1, sd1pwr, wdog1, wdog2, scipme, sci, serirq,
152 jtag2, spix, spixcs1, pspi1, pspi2, ddc, clkreq, clkout, spi3, spi3cs1,
153 spi3quad, spi3cs2, spi3cs3, spi0cs1, lpc, lpcclk, espi, lkgpo0, lkgpo1,
154 lkgpo2, nprd_smi
155
156 For example, pinctrl might have group subnodes like the following:
157 r1err_pins: r1err-pins {
158 groups = "r1err";
159 function = "r1err";
160 };
161 r1md_pins: r1md-pins {
162 groups = "r1md";
163 function = "r1md";
164 };
165 r1_pins: r1-pins {
166 groups = "r1";
167 function = "r1";
168 };
169
170 Examples
171 ========
172 pinctrl: pinctrl@f0800000 {
173 #address-cells = <1>;
174 #size-cells = <1>;
175 compatible = "nuvoton,npcm750-pinctrl";
176 ranges = <0 0xf0010000 0x8000>;
177
178 gpio0: gpio@f0010000 {
179 gpio-controller;
180 #gpio-cells = <2>;
181 reg = <0x0 0x80>;
182 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
183 gpio-ranges = <&pinctrl 0 0 32>;
184 };
185
186 ....
187
188 gpio7: gpio@f0017000 {
189 gpio-controller;
190 #gpio-cells = <2>;
191 reg = <0x7000 0x80>;
192 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
193 gpio-ranges = <&pinctrl 0 224 32>;
194 };
195
196 gpio0_iox1d1_pin: gpio0-iox1d1-pin {
197 pins = "GPIO0/IOX1DI";
198 output-high;
199 };
200
201 iox1_pins: iox1-pins {
202 groups = "iox1";
203 function = "iox1";
204 };
205 iox2_pins: iox2-pins {
206 groups = "iox2";
207 function = "iox2";
208 };
209
210 ....
211
212 clkreq_pins: clkreq-pins {
213 groups = "clkreq";
214 function = "clkreq";
215 };
216 };
217

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

NPCM7XX pin controller

1-14

Nuvoton BMC NPCM7XX pin controller는 multiplexing block을 통해 여러 function을 route합니다. 각 pin은 GPIO function과 서로 다른 hardware block에 직접 연결되는 복수의 function을 지원합니다.

필수 속성은 값이 1인 `#address-cells`와 `#size-cells`, Poleg NPCM7XX용 `compatible = "nuvoton,npcm750-pinctrl"`, parent pin controller와 child GPIO bank 사이의 mapping range를 정의하는 `ranges`입니다.

GPIO bank subnode

15-36

NPCM7XX에는 8개 GPIO bank가 있고 각 bank는 GPIO 32개를 지원합니다. 각 subnode에는 register base와 size를 지정하는 `reg`, `gpio-controller`, 값이 2인 `#gpio-cells`, falling-edge flag를 포함한 bank `interrupts`, bank가 관리하는 pin 범위인 `gpio-ranges`가 필요합니다.

두 GPIO cell 가운데 첫 cell은 GPIO pin 번호이고 두 번째 cell은 선택적 parameter에 사용됩니다.

gpio0: gpio@f0010000 {
        gpio-controller;
        #gpio-cells = <2>;
        reg = <0x0 0x80>;
        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
        gpio-ranges = <&pinctrl 0 0 32>;
};

Pin mux subnode와 전체 pin 목록

37-106

`pin`은 pin 이름 문자열 또는 여러 pin 이름의 문자열 배열이며, 이 pin들이 pin configuration 선택에 사용됩니다. 아래 표는 원문에 열거된 pin 이름 전체를 순서대로 보존합니다.

IndexPin name
1GPIO0/IOX1DI
2GPIO1/IOX1LD
3GPIO2/IOX1CK
4GPIO3/IOX1D0
5GPIO4/IOX2DI/SMB1DSDA
6GPIO5/IOX2LD/SMB1DSCL
7GPIO6/IOX2CK/SMB2DSDA
8GPIO7/IOX2D0/SMB2DSCL
9GPIO8/LKGPO1
10GPIO9/LKGPO2
11GPIO10/IOXHLD
12GPIO11/IOXHCK
13GPIO12/GSPICK/SMB5BSCL
14GPIO13/GSPIDO/SMB5BSDA
15GPIO14/GSPIDI/SMB5CSCL
16GPIO15/GSPICS/SMB5CSDA
17GPIO16/LKGPO0
18GPIO17/PSPI2DI/SMB4DEN
19GPIO18/PSPI2D0/SMB4BSDA
20GPIO19/PSPI2CK/SMB4BSCL
21GPIO20/SMB4CSDA/SMB15SDA
22GPIO21/SMB4CSCL/SMB15SCL
23GPIO22/SMB4DSDA/SMB14SDA
24GPIO23/SMB4DSCL/SMB14SCL
25GPIO24/IOXHDO
26GPIO25/IOXHDI
27GPIO26/SMB5SDA
28GPIO27/SMB5SCL
29GPIO28/SMB4SDA
30GPIO29/SMB4SCL
31GPIO30/SMB3SDA
32GPIO31/SMB3SCL
33GPIO32/nSPI0CS1
34SPI0D2
35SPI0D3
36GPIO37/SMB3CSDA
37GPIO38/SMB3CSCL
38GPIO39/SMB3BSDA
39GPIO40/SMB3BSCL
40GPIO41/BSPRXD
41GPO42/BSPTXD/STRAP11
42GPIO43/RXD1/JTMS2/BU1RXD
43GPIO44/nCTS1/JTDI2/BU1CTS
44GPIO45/nDCD1/JTDO2
45GPIO46/nDSR1/JTCK2
46GPIO47/nRI1/JCP_RDY2
47GPIO48/TXD2/BSPTXD
48GPIO49/RXD2/BSPRXD
49GPIO50/nCTS2
50GPO51/nRTS2/STRAP2
51GPIO52/nDCD2
52GPO53/nDTR2_BOUT2/STRAP1
53GPIO54/nDSR2
54GPIO55/nRI2
55GPIO56/R1RXERR
56GPIO57/R1MDC
57GPIO58/R1MDIO
58GPIO59/SMB3DSDA
59GPIO60/SMB3DSCL
60GPO61/nDTR1_BOUT1/STRAP6
61GPO62/nRTST1/STRAP5
62GPO63/TXD1/STRAP4
63GPIO64/FANIN0
64GPIO65/FANIN1
65GPIO66/FANIN2
66GPIO67/FANIN3
67GPIO68/FANIN4
68GPIO69/FANIN5
69GPIO70/FANIN6
70GPIO71/FANIN7
71GPIO72/FANIN8
72GPIO73/FANIN9
73GPIO74/FANIN10
74GPIO75/FANIN11
75GPIO76/FANIN12
76GPIO77/FANIN13
77GPIO78/FANIN14
78GPIO79/FANIN15
79GPIO80/PWM0
80GPIO81/PWM1
81GPIO82/PWM2
82GPIO83/PWM3
83GPIO84/R2TXD0
84GPIO85/R2TXD1
85GPIO86/R2TXEN
86GPIO87/R2RXD0
87GPIO88/R2RXD1
88GPIO89/R2CRSDV
89GPIO90/R2RXERR
90GPIO91/R2MDC
91GPIO92/R2MDIO
92GPIO93/GA20/SMB5DSCL
93GPIO94/nKBRST/SMB5DSDA
94GPIO95/nLRESET/nESPIRST
95GPIO96/RG1TXD0
96GPIO97/RG1TXD1
97GPIO98/RG1TXD2
98GPIO99/RG1TXD3
99GPIO100/RG1TXC
100GPIO101/RG1TXCTL
101GPIO102/RG1RXD0
102GPIO103/RG1RXD1
103GPIO104/RG1RXD2
104GPIO105/RG1RXD3
105GPIO106/RG1RXC
106GPIO107/RG1RXCTL
107GPIO108/RG1MDC
108GPIO109/RG1MDIO
109GPIO110/RG2TXD0/DDRV0
110GPIO111/RG2TXD1/DDRV1
111GPIO112/RG2TXD2/DDRV2
112GPIO113/RG2TXD3/DDRV3
113GPIO114/SMB0SCL
114GPIO115/SMB0SDA
115GPIO116/SMB1SCL
116GPIO117/SMB1SDA
117GPIO118/SMB2SCL
118GPIO119/SMB2SDA
119GPIO120/SMB2CSDA
120GPIO121/SMB2CSCL
121GPIO122/SMB2BSDA
122GPIO123/SMB2BSCL
123GPIO124/SMB1CSDA
124GPIO125/SMB1CSCL
125GPIO126/SMB1BSDA
126GPIO127/SMB1BSCL
127GPIO128/SMB8SCL
128GPIO129/SMB8SDA
129GPIO130/SMB9SCL
130GPIO131/SMB9SDA
131GPIO132/SMB10SCL
132GPIO133/SMB10SDA
133GPIO134/SMB11SCL
134GPIO135/SMB11SDA
135GPIO136/SD1DT0
136GPIO137/SD1DT1
137GPIO138/SD1DT2
138GPIO139/SD1DT3
139GPIO140/SD1CLK
140GPIO141/SD1WP
141GPIO142/SD1CMD
142GPIO143/SD1CD/SD1PWR
143GPIO144/PWM4
144GPIO145/PWM5
145GPIO146/PWM6
146GPIO147/PWM7
147GPIO148/MMCDT4
148GPIO149/MMCDT5
149GPIO150/MMCDT6
150GPIO151/MMCDT7
151GPIO152/MMCCLK
152GPIO153/MMCWP
153GPIO154/MMCCMD
154GPIO155/nMMCCD/nMMCRST
155GPIO156/MMCDT0
156GPIO157/MMCDT1
157GPIO158/MMCDT2
158GPIO159/MMCDT3
159GPIO160/CLKOUT/RNGOSCOUT
160GPIO161/nLFRAME/nESPICS
161GPIO162/SERIRQ
162GPIO163/LCLK/ESPICLK
163GPIO164/LAD0/ESPI_IO0
164GPIO165/LAD1/ESPI_IO1
165GPIO166/LAD2/ESPI_IO2
166GPIO167/LAD3/ESPI_IO3
167GPIO168/nCLKRUN/nESPIALERT
168GPIO169/nSCIPME
169GPIO170/nSMI
170GPIO171/SMB6SCL
171GPIO172/SMB6SDA
172GPIO173/SMB7SCL
173GPIO174/SMB7SDA
174GPIO175/PSPI1CK/FANIN19
175GPIO176/PSPI1DO/FANIN18
176GPIO177/PSPI1DI/FANIN17
177GPIO178/R1TXD0
178GPIO179/R1TXD1
179GPIO180/R1TXEN
180GPIO181/R1RXD0
181GPIO182/R1RXD1
182GPIO183/SPI3CK
183GPO184/SPI3D0/STRAP9
184GPO185/SPI3D1/STRAP10
185GPIO186/nSPI3CS0
186GPIO187/nSPI3CS1
187GPIO188/SPI3D2/nSPI3CS2
188GPIO189/SPI3D3/nSPI3CS3
189GPIO190/nPRD_SMI
190GPIO191
191GPIO192
192GPIO193/R1CRSDV
193GPIO194/SMB0BSCL
194GPIO195/SMB0BSDA
195GPIO196/SMB0CSCL
196GPIO197/SMB0DEN
197GPIO198/SMB0DSDA
198GPIO199/SMB0DSCL
199GPIO200/R2CK
200GPIO201/R1CK
201GPIO202/SMB0CSDA
202GPIO203/FANIN16
203GPIO204/DDC2SCL
204GPIO205/DDC2SDA
205GPIO206/HSYNC2
206GPIO207/VSYNC2
207GPIO208/RG2TXC/DVCK
208GPIO209/RG2TXCTL/DDRV4
209GPIO210/RG2RXD0/DDRV5
210GPIO211/RG2RXD1/DDRV6
211GPIO212/RG2RXD2/DDRV7
212GPIO213/RG2RXD3/DDRV8
213GPIO214/RG2RXC/DDRV9
214GPIO215/RG2RXCTL/DDRV10
215GPIO216/RG2MDC/DDRV11
216GPIO217/RG2MDIO/DVHSYNC
217GPIO218/nWDO1
218GPIO219/nWDO2
219GPIO220/SMB12SCL
220GPIO221/SMB12SDA
221GPIO222/SMB13SCL
222GPIO223/SMB13SDA
223GPIO224/SPIXCK
224GPO225/SPIXD0/STRAP12
225GPO226/SPIXD1/STRAP13
226GPIO227/nSPIXCS0
227GPIO228/nSPIXCS1
228GPO229/SPIXD2/STRAP3
229GPIO230/SPIXD3
230GPIO231/nCLKREQ
231GPI255/DACOSEL

선택적 pin configuration 속성

107-122

선택 속성은 `bias-disable`, `bias-pull-down`, `bias-pull-up`, `input-enable`, `input-disable`, `output-high`, `output-low`, `drive-push-pull`, `drive-open-drain`, `input-debounce`, `slew-rate`, `drive-strength`입니다.

`slew-rate`는 0이면 slow, 1이면 fast입니다. `drive-strength`는 2, 4, 8, 12, 16, 24 mA 중 하나를 받습니다.

Pinmux subnode 예제

123-133

GPIO0/IOX1DI를 high output으로, GPIO2/IOX1CK도 high output으로 구성하는 두 pinmux subnode 예제입니다. 두 번째 node의 `output_high` 표기는 원문 그대로 보존합니다.

gpio0_iox1d1_pin: gpio0-iox1d1-pin {
        pins = "GPIO0/IOX1DI";
        output-high;
};
gpio0_iox1ck_pin: gpio0-iox1ck-pin {
        pins = "GPIO2/IOX1CK";
        output_high;
};

Pin group subnode와 전체 group/function 목록

134-155

Pin group subnode에는 mux할 group 이름인 `groups`와 그 group에 mux할 function 이름인 `function`이 필요합니다. 아래 표는 원문에 제시된 사용 가능 group과 function 이름 전체입니다.

Group/function
smb0
smb0b
smb0c
smb0d
smb0den
smb1
smb1b
smb1c
smb1d
smb2
smb2b
smb2c
smb2d
smb3
smb3b
smb3c
smb3d
smb4
smb4b
smb4c
smb4d
smb4den
smb5
smb5b
smb5c
smb5d
ga20kbc
smb6
smb7
smb8
smb9
smb10
smb11
smb12
smb13
smb14
smb15
fanin0
fanin1
fanin2
fanin3
fanin4
fanin5
fanin6
fanin7
fanin8
fanin9
fanin10
fanin11
fanin12
fanin13
fanin14
fanin15
faninx
pwm0
pwm1
pwm2
pwm3
pwm4
pwm5
pwm6
pwm7
rg1
rg1mdio
rg2
rg2mdio
ddr
uart1
uart2
bmcuart0a
bmcuart0b
bmcuart1
iox1
iox2
ioxh
gspi
mmc
mmcwp
mmccd
mmcrst
mmc8
r1
r1err
r1md
r2
r2err
r2md
sd1
sd1pwr
wdog1
wdog2
scipme
sci
serirq
jtag2
spix
spixcs1
pspi1
pspi2
ddc
clkreq
clkout
spi3
spi3cs1
spi3quad
spi3cs2
spi3cs3
spi0cs1
lpc
lpcclk
espi
lkgpo0
lkgpo1
lkgpo2
nprd_smi

Group subnode 예제

156-169

`r1err`, `r1md`, `r1` group을 각각 같은 이름의 function으로 mux하는 예제입니다.

r1err_pins: r1err-pins {
        groups = "r1err";
        function = "r1err";
};
r1md_pins: r1md-pins {
        groups = "r1md";
        function = "r1md";
};
r1_pins: r1-pins {
        groups = "r1";
        function = "r1";
};

NPCM750 pinctrl 전체 예제

170-216

NPCM750 controller의 address mapping, GPIO bank 0과 7, 개별 pin 구성, IOX group, CLKREQ group을 한 node에 구성한 전체 예제입니다. 중간의 `....`는 원문이 생략을 표시한 그대로입니다.

pinctrl: pinctrl@f0800000 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "nuvoton,npcm750-pinctrl";
        ranges = <0 0xf0010000 0x8000>;

        gpio0: gpio@f0010000 {
                gpio-controller;
                #gpio-cells = <2>;
                reg = <0x0 0x80>;
                interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
                gpio-ranges = <&pinctrl 0 0 32>;
        };

        ....

        gpio7: gpio@f0017000 {
                gpio-controller;
                #gpio-cells = <2>;
                reg = <0x7000 0x80>;
                interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
                gpio-ranges = <&pinctrl 0 224 32>;
        };

        gpio0_iox1d1_pin: gpio0-iox1d1-pin {
                pins = "GPIO0/IOX1DI";
                output-high;
        };

        iox1_pins: iox1-pins {
                groups = "iox1";
                function = "iox1";
        };
        iox2_pins: iox2-pins {
                groups = "iox2";
                function = "iox2";
        };

        ....

        clkreq_pins: clkreq-pins {
                groups = "clkreq";
                function = "clkreq";
        };
};