Skip to content

Commit b35404f

Browse files
JiafeiPankartben
authored andcommitted
dts: arm64: imx8mn: add GPIO device nodes
Add GPIO device nodes for imx8mn. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
1 parent 34aa5b1 commit b35404f

File tree

1 file changed

+241
-0
lines changed

1 file changed

+241
-0
lines changed

dts/arm64/nxp/nxp_mimx8mn_a53.dtsi

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,77 @@
7272
status = "okay";
7373
};
7474

75+
gpio1: gpio@30200000 {
76+
compatible = "nxp,imx-gpio";
77+
reg = <0x30200000 DT_SIZE_K(64)>;
78+
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
79+
<GIC_SPI 65 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
80+
interrupt-names = "irq_0", "irq_1";
81+
interrupt-parent = <&gic>;
82+
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
83+
gpio-controller;
84+
#gpio-cells = <2>;
85+
ngpios = <30>;
86+
status = "disabled";
87+
};
88+
89+
gpio2: gpio@30210000 {
90+
compatible = "nxp,imx-gpio";
91+
reg = <0x30210000 DT_SIZE_K(64)>;
92+
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
93+
<GIC_SPI 67 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
94+
interrupt-names = "irq_0", "irq_1";
95+
interrupt-parent = <&gic>;
96+
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
97+
gpio-controller;
98+
#gpio-cells = <2>;
99+
ngpios = <21>;
100+
status = "disabled";
101+
};
102+
103+
gpio3: gpio@30220000 {
104+
compatible = "nxp,imx-gpio";
105+
reg = <0x30220000 DT_SIZE_K(64)>;
106+
interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
107+
<GIC_SPI 69 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
108+
interrupt-names = "irq_0", "irq_1";
109+
interrupt-parent = <&gic>;
110+
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
111+
gpio-controller;
112+
#gpio-cells = <2>;
113+
ngpios = <26>;
114+
status = "disabled";
115+
};
116+
117+
gpio4: gpio@30230000 {
118+
compatible = "nxp,imx-gpio";
119+
reg = <0x30230000 DT_SIZE_K(64)>;
120+
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
121+
<GIC_SPI 71 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
122+
interrupt-names = "irq_0", "irq_1";
123+
interrupt-parent = <&gic>;
124+
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
125+
gpio-controller;
126+
#gpio-cells = <2>;
127+
ngpios = <32>;
128+
gpio-reserved-ranges = <0 21>;
129+
status = "disabled";
130+
};
131+
132+
gpio5: gpio@30240000 {
133+
compatible = "nxp,imx-gpio";
134+
reg = <0x30240000 DT_SIZE_K(64)>;
135+
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
136+
<GIC_SPI 73 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
137+
interrupt-names = "irq_0", "irq_1";
138+
interrupt-parent = <&gic>;
139+
rdc = <RDC_DOMAIN_PERM(A53_DOMAIN_ID, RDC_DOMAIN_PERM_RW)>;
140+
gpio-controller;
141+
#gpio-cells = <2>;
142+
ngpios = <30>;
143+
status = "disabled";
144+
};
145+
75146
gpt1: gpt@302d0000 {
76147
compatible = "nxp,imx-gpt";
77148
reg = <0x302d0000 DT_SIZE_K(64)>;
@@ -175,3 +246,173 @@
175246
};
176247
};
177248
};
249+
250+
/*
251+
* GPIO pinmux options. These options define the pinmux settings
252+
* for GPIO ports on the package, so that the GPIO driver can
253+
* select GPIO mux options during GPIO configuration.
254+
*/
255+
256+
&gpio1{
257+
pinmux = <&iomuxc_gpio1_io00_gpio_io_gpio1_io0>,
258+
<&iomuxc_gpio1_io01_gpio_io_gpio1_io1>,
259+
<&iomuxc_gpio1_io02_gpio_io_gpio1_io2>,
260+
<&iomuxc_gpio1_io03_gpio_io_gpio1_io3>,
261+
<&iomuxc_gpio1_io04_gpio_io_gpio1_io4>,
262+
<&iomuxc_gpio1_io05_gpio_io_gpio1_io5>,
263+
<&iomuxc_gpio1_io06_gpio_io_gpio1_io6>,
264+
<&iomuxc_gpio1_io07_gpio_io_gpio1_io7>,
265+
<&iomuxc_gpio1_io08_gpio_io_gpio1_io8>,
266+
<&iomuxc_gpio1_io09_gpio_io_gpio1_io9>,
267+
<&iomuxc_gpio1_io10_gpio_io_gpio1_io10>,
268+
<&iomuxc_gpio1_io11_gpio_io_gpio1_io11>,
269+
<&iomuxc_gpio1_io12_gpio_io_gpio1_io12>,
270+
<&iomuxc_gpio1_io13_gpio_io_gpio1_io13>,
271+
<&iomuxc_gpio1_io14_gpio_io_gpio1_io14>,
272+
<&iomuxc_gpio1_io15_gpio_io_gpio1_io15>,
273+
<&iomuxc_enet_mdc_gpio_io_gpio1_io16>,
274+
<&iomuxc_enet_mdio_gpio_io_gpio1_io17>,
275+
<&iomuxc_enet_td3_gpio_io_gpio1_io18>,
276+
<&iomuxc_enet_td2_gpio_io_gpio1_io19>,
277+
<&iomuxc_enet_td1_gpio_io_gpio1_io20>,
278+
<&iomuxc_enet_td0_gpio_io_gpio1_io21>,
279+
<&iomuxc_enet_tx_ctl_gpio_io_gpio1_io22>,
280+
<&iomuxc_enet_txc_gpio_io_gpio1_io23>,
281+
<&iomuxc_enet_rx_ctl_gpio_io_gpio1_io24>,
282+
<&iomuxc_enet_rxc_gpio_io_gpio1_io25>,
283+
<&iomuxc_enet_rd0_gpio_io_gpio1_io26>,
284+
<&iomuxc_enet_rd1_gpio_io_gpio1_io27>,
285+
<&iomuxc_enet_rd2_gpio_io_gpio1_io28>,
286+
<&iomuxc_enet_rd3_gpio_io_gpio1_io29>;
287+
};
288+
289+
&gpio2{
290+
pinmux = <&iomuxc_sd1_clk_gpio_io_gpio2_io0>,
291+
<&iomuxc_sd1_cmd_gpio_io_gpio2_io1>,
292+
<&iomuxc_sd1_data0_gpio_io_gpio2_io2>,
293+
<&iomuxc_sd1_data1_gpio_io_gpio2_io3>,
294+
<&iomuxc_sd1_data2_gpio_io_gpio2_io4>,
295+
<&iomuxc_sd1_data3_gpio_io_gpio2_io5>,
296+
<&iomuxc_sd1_data4_gpio_io_gpio2_io6>,
297+
<&iomuxc_sd1_data5_gpio_io_gpio2_io7>,
298+
<&iomuxc_sd1_data6_gpio_io_gpio2_io8>,
299+
<&iomuxc_sd1_data7_gpio_io_gpio2_io9>,
300+
<&iomuxc_sd1_reset_b_gpio_io_gpio2_io10>,
301+
<&iomuxc_sd1_strobe_gpio_io_gpio2_io11>,
302+
<&iomuxc_sd2_cd_b_gpio_io_gpio2_io12>,
303+
<&iomuxc_sd2_clk_gpio_io_gpio2_io13>,
304+
<&iomuxc_sd2_cmd_gpio_io_gpio2_io14>,
305+
<&iomuxc_sd2_data0_gpio_io_gpio2_io15>,
306+
<&iomuxc_sd2_data1_gpio_io_gpio2_io16>,
307+
<&iomuxc_sd2_data2_gpio_io_gpio2_io17>,
308+
<&iomuxc_sd2_data3_gpio_io_gpio2_io18>,
309+
<&iomuxc_sd2_reset_b_gpio_io_gpio2_io19>,
310+
<&iomuxc_sd2_wp_gpio_io_gpio2_io20>;
311+
};
312+
313+
&gpio3{
314+
pinmux = <&iomuxc_nand_ale_gpio_io_gpio3_io0>,
315+
<&iomuxc_nand_ce0_b_gpio_io_gpio3_io1>,
316+
<&iomuxc_nand_ce1_b_gpio_io_gpio3_io2>,
317+
<&iomuxc_nand_ce2_b_gpio_io_gpio3_io3>,
318+
<&iomuxc_nand_ce3_b_gpio_io_gpio3_io4>,
319+
<&iomuxc_nand_cle_gpio_io_gpio3_io5>,
320+
<&iomuxc_nand_data00_gpio_io_gpio3_io6>,
321+
<&iomuxc_nand_data01_gpio_io_gpio3_io7>,
322+
<&iomuxc_nand_data02_gpio_io_gpio3_io8>,
323+
<&iomuxc_nand_data03_gpio_io_gpio3_io9>,
324+
<&iomuxc_nand_data04_gpio_io_gpio3_io10>,
325+
<&iomuxc_nand_data05_gpio_io_gpio3_io11>,
326+
<&iomuxc_nand_data06_gpio_io_gpio3_io12>,
327+
<&iomuxc_nand_data07_gpio_io_gpio3_io13>,
328+
<&iomuxc_nand_dqs_gpio_io_gpio3_io14>,
329+
<&iomuxc_nand_re_b_gpio_io_gpio3_io15>,
330+
<&iomuxc_nand_ready_b_gpio_io_gpio3_io16>,
331+
<&iomuxc_nand_we_b_gpio_io_gpio3_io17>,
332+
<&iomuxc_nand_wp_b_gpio_io_gpio3_io18>,
333+
<&iomuxc_sai5_rxfs_gpio_io_gpio3_io19>,
334+
<&iomuxc_sai5_rxc_gpio_io_gpio3_io20>,
335+
<&iomuxc_sai5_rxd0_gpio_io_gpio3_io21>,
336+
<&iomuxc_sai5_rxd1_gpio_io_gpio3_io22>,
337+
<&iomuxc_sai5_rxd2_gpio_io_gpio3_io23>,
338+
<&iomuxc_sai5_rxd3_gpio_io_gpio3_io24>,
339+
<&iomuxc_sai5_mclk_gpio_io_gpio3_io25>;
340+
};
341+
342+
/*
343+
* Use the NULL pinmux for the GPIO io port which is not available to
344+
* make the driver to be easy.
345+
*/
346+
&iomuxc {
347+
/omit-if-no-ref/ null_pinmux: NULL_PINMUX {
348+
pinmux = <0x0 0 0x0 0 0x0>;
349+
};
350+
};
351+
352+
&gpio4{
353+
pinmux = <&null_pinmux>,
354+
<&null_pinmux>,
355+
<&null_pinmux>,
356+
<&null_pinmux>,
357+
<&null_pinmux>,
358+
<&null_pinmux>,
359+
<&null_pinmux>,
360+
<&null_pinmux>,
361+
<&null_pinmux>,
362+
<&null_pinmux>,
363+
<&null_pinmux>,
364+
<&null_pinmux>,
365+
<&null_pinmux>,
366+
<&null_pinmux>,
367+
<&null_pinmux>,
368+
<&null_pinmux>,
369+
<&null_pinmux>,
370+
<&null_pinmux>,
371+
<&null_pinmux>,
372+
<&null_pinmux>,
373+
<&null_pinmux>,
374+
<&iomuxc_sai2_rxfs_gpio_io_gpio4_io21>,
375+
<&iomuxc_sai2_rxc_gpio_io_gpio4_io22>,
376+
<&iomuxc_sai2_rxd0_gpio_io_gpio4_io23>,
377+
<&iomuxc_sai2_txfs_gpio_io_gpio4_io24>,
378+
<&iomuxc_sai2_txc_gpio_io_gpio4_io25>,
379+
<&iomuxc_sai2_txd0_gpio_io_gpio4_io26>,
380+
<&iomuxc_sai2_mclk_gpio_io_gpio4_io27>,
381+
<&iomuxc_sai3_rxfs_gpio_io_gpio4_io28>,
382+
<&iomuxc_sai3_rxc_gpio_io_gpio4_io29>,
383+
<&iomuxc_sai3_rxd_gpio_io_gpio4_io30>,
384+
<&iomuxc_sai3_txfs_gpio_io_gpio4_io31>;
385+
};
386+
387+
&gpio5{
388+
pinmux = <&iomuxc_sai3_txc_gpio_io_gpio5_io0>,
389+
<&iomuxc_sai3_txd_gpio_io_gpio5_io1>,
390+
<&iomuxc_sai3_mclk_gpio_io_gpio5_io2>,
391+
<&iomuxc_spdif_tx_gpio_io_gpio5_io3>,
392+
<&iomuxc_spdif_rx_gpio_io_gpio5_io4>,
393+
<&iomuxc_spdif_ext_clk_gpio_io_gpio5_io5>,
394+
<&iomuxc_ecspi1_sclk_gpio_io_gpio5_io6>,
395+
<&iomuxc_ecspi1_mosi_gpio_io_gpio5_io7>,
396+
<&iomuxc_ecspi1_miso_gpio_io_gpio5_io8>,
397+
<&iomuxc_ecspi1_ss0_gpio_io_gpio5_io9>,
398+
<&iomuxc_ecspi2_sclk_gpio_io_gpio5_io10>,
399+
<&iomuxc_ecspi2_mosi_gpio_io_gpio5_io11>,
400+
<&iomuxc_ecspi2_miso_gpio_io_gpio5_io12>,
401+
<&iomuxc_ecspi2_ss0_gpio_io_gpio5_io13>,
402+
<&iomuxc_i2c1_scl_gpio_io_gpio5_io14>,
403+
<&iomuxc_i2c1_sda_gpio_io_gpio5_io15>,
404+
<&iomuxc_i2c2_scl_gpio_io_gpio5_io16>,
405+
<&iomuxc_i2c2_sda_gpio_io_gpio5_io17>,
406+
<&iomuxc_i2c3_scl_gpio_io_gpio5_io18>,
407+
<&iomuxc_i2c3_sda_gpio_io_gpio5_io19>,
408+
<&iomuxc_i2c4_scl_gpio_io_gpio5_io20>,
409+
<&iomuxc_i2c4_sda_gpio_io_gpio5_io21>,
410+
<&iomuxc_uart1_rxd_gpio_io_gpio5_io22>,
411+
<&iomuxc_uart1_txd_gpio_io_gpio5_io23>,
412+
<&iomuxc_uart2_rxd_gpio_io_gpio5_io24>,
413+
<&iomuxc_uart2_txd_gpio_io_gpio5_io25>,
414+
<&iomuxc_uart3_rxd_gpio_io_gpio5_io26>,
415+
<&iomuxc_uart3_txd_gpio_io_gpio5_io27>,
416+
<&iomuxc_uart4_rxd_gpio_io_gpio5_io28>,
417+
<&iomuxc_uart4_txd_gpio_io_gpio5_io29>;
418+
};

0 commit comments

Comments
 (0)