1/*
2 * Copyright 2024 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <arm/armv8-m.dtsi>
8#include <zephyr/dt-bindings/clock/imx_ccm_rev2.h>
9#include <zephyr/dt-bindings/gpio/gpio.h>
10#include <mem.h>
11
12/ {
13	cpus {
14		#address-cells = <1>;
15		#size-cells = <0>;
16
17		cpu@0 {
18			device_type = "cpu";
19			compatible = "arm,cortex-m33";
20			reg = <0>;
21
22			#address-cells = <1>;
23			#size-cells = <1>;
24
25			mpu: mpu@e000ed90 {
26				compatible = "arm,armv8m-mpu";
27				reg = <0xe000ed90 0x40>;
28			};
29		};
30	};
31
32	soc {
33		itcm: itcm@ffe0000 {
34			compatible = "nxp,imx-itcm";
35			reg = <0xffe0000 DT_SIZE_K(128)>;
36		};
37
38		dtcm: dtcm@20000000 {
39			compatible = "nxp,imx-dtcm";
40			reg = <0x20000000 DT_SIZE_K(128)>;
41		};
42
43		iomuxc: iomuxc@443c0000 {
44			compatible = "nxp,imx-iomuxc";
45			reg = <0x443c0000 DT_SIZE_K(64)>;
46			status = "okay";
47			pinctrl: pinctrl {
48				status = "okay";
49				compatible = "nxp,imx93-pinctrl";
50			};
51		};
52
53		ccm: ccm@44450000 {
54			compatible = "nxp,imx-ccm-rev2";
55			reg = <0x44450000 DT_SIZE_K(64)>;
56			#clock-cells = <3>;
57		};
58
59		gpio1: gpio@47400000 {
60			compatible = "nxp,imx-rgpio";
61			reg = <0x47400000 DT_SIZE_K(64)>;
62			interrupts = <10 0>, <11 0>;
63			gpio-controller;
64			#gpio-cells = <2>;
65		};
66
67		gpio2: gpio@43810000 {
68			compatible = "nxp,imx-rgpio";
69			reg = <0x43810000 DT_SIZE_K(64)>;
70			interrupts = <57 0>, <58 0>;
71			gpio-controller;
72			#gpio-cells = <2>;
73		};
74
75		gpio3: gpio@43820000 {
76			compatible = "nxp,imx-rgpio";
77			reg = <0x43820000 DT_SIZE_K(64)>;
78			interrupts = <59 0>, <60 0>;
79			gpio-controller;
80			#gpio-cells = <2>;
81		};
82
83		gpio4: gpio@43830000 {
84			compatible = "nxp,imx-rgpio";
85			reg = <0x43830000 DT_SIZE_K(64)>;
86			interrupts = <189 0>, <190 0>;
87			gpio-controller;
88			#gpio-cells = <2>;
89		};
90
91		lpuart2: serial@44390000 {
92			compatible = "nxp,imx-lpuart", "nxp,lpuart";
93			reg = <0x44390000 DT_SIZE_K(64)>;
94			interrupts = <20 3>;
95			clocks = <&ccm IMX_CCM_LPUART2_CLK 0x6c 24>;
96			status = "disabled";
97		};
98	};
99};
100
101&nvic {
102	arm,num-irq-priority-bits = <3>;
103};
104
105&gpio1 {
106	pinmux = <&iomuxc1_i2c1_scl_gpio_io_gpio1_io00>,
107		<&iomuxc1_i2c1_sda_gpio_io_gpio1_io01>,
108		<&iomuxc1_i2c2_scl_gpio_io_gpio1_io02>,
109		<&iomuxc1_i2c2_sda_gpio_io_gpio1_io03>,
110		<&iomuxc1_uart1_rxd_gpio_io_gpio1_io04>,
111		<&iomuxc1_uart1_txd_gpio_io_gpio1_io05>,
112		<&iomuxc1_uart2_rxd_gpio_io_gpio1_io06>,
113		<&iomuxc1_uart2_txd_gpio_io_gpio1_io07>,
114		<&iomuxc1_pdm_clk_gpio_io_gpio1_io08>,
115		<&iomuxc1_pdm_bit_stream0_gpio_io_gpio1_io09>,
116		<&iomuxc1_pdm_bit_stream1_gpio_io_gpio1_io10>,
117		<&iomuxc1_sai1_txfs_gpio_io_gpio1_io11>,
118		<&iomuxc1_sai1_txc_gpio_io_gpio1_io12>,
119		<&iomuxc1_sai1_txd0_gpio_io_gpio1_io13>,
120		<&iomuxc1_sai1_rxd0_gpio_io_gpio1_io14>,
121		<&iomuxc1_wdog_any_gpio_io_gpio1_io15>;
122};
123
124&gpio2 {
125	pinmux = <&iomuxc1_gpio_io00_gpio_io_gpio2_io00>,
126		<&iomuxc1_gpio_io01_gpio_io_gpio2_io01>,
127		<&iomuxc1_gpio_io02_gpio_io_gpio2_io02>,
128		<&iomuxc1_gpio_io03_gpio_io_gpio2_io03>,
129		<&iomuxc1_gpio_io04_gpio_io_gpio2_io04>,
130		<&iomuxc1_gpio_io05_gpio_io_gpio2_io05>,
131		<&iomuxc1_gpio_io06_gpio_io_gpio2_io06>,
132		<&iomuxc1_gpio_io07_gpio_io_gpio2_io07>,
133		<&iomuxc1_gpio_io08_gpio_io_gpio2_io08>,
134		<&iomuxc1_gpio_io09_gpio_io_gpio2_io09>,
135		<&iomuxc1_gpio_io10_gpio_io_gpio2_io10>,
136		<&iomuxc1_gpio_io11_gpio_io_gpio2_io11>,
137		<&iomuxc1_gpio_io12_gpio_io_gpio2_io12>,
138		<&iomuxc1_gpio_io13_gpio_io_gpio2_io13>,
139		<&iomuxc1_gpio_io14_gpio_io_gpio2_io14>,
140		<&iomuxc1_gpio_io15_gpio_io_gpio2_io15>,
141		<&iomuxc1_gpio_io16_gpio_io_gpio2_io16>,
142		<&iomuxc1_gpio_io17_gpio_io_gpio2_io17>,
143		<&iomuxc1_gpio_io18_gpio_io_gpio2_io18>,
144		<&iomuxc1_gpio_io19_gpio_io_gpio2_io19>,
145		<&iomuxc1_gpio_io20_gpio_io_gpio2_io20>,
146		<&iomuxc1_gpio_io21_gpio_io_gpio2_io21>,
147		<&iomuxc1_gpio_io22_gpio_io_gpio2_io22>,
148		<&iomuxc1_gpio_io23_gpio_io_gpio2_io23>,
149		<&iomuxc1_gpio_io24_gpio_io_gpio2_io24>,
150		<&iomuxc1_gpio_io25_gpio_io_gpio2_io25>,
151		<&iomuxc1_gpio_io26_gpio_io_gpio2_io26>,
152		<&iomuxc1_gpio_io27_gpio_io_gpio2_io27>,
153		<&iomuxc1_gpio_io28_gpio_io_gpio2_io28>,
154		<&iomuxc1_gpio_io29_gpio_io_gpio2_io29>;
155};
156
157&gpio3 {
158	pinmux = <&iomuxc1_sd2_cd_b_gpio_io_gpio3_io00>,
159		<&iomuxc1_sd2_clk_gpio_io_gpio3_io01>,
160		<&iomuxc1_sd2_cmd_gpio_io_gpio3_io02>,
161		<&iomuxc1_sd2_data0_gpio_io_gpio3_io03>,
162		<&iomuxc1_sd2_data1_gpio_io_gpio3_io04>,
163		<&iomuxc1_sd2_data2_gpio_io_gpio3_io05>,
164		<&iomuxc1_sd2_data3_gpio_io_gpio3_io06>,
165		<&iomuxc1_sd2_reset_b_gpio_io_gpio3_io07>,
166		<&iomuxc1_sd1_clk_gpio_io_gpio3_io08>,
167		<&iomuxc1_sd1_cmd_gpio_io_gpio3_io09>,
168		<&iomuxc1_sd1_data0_gpio_io_gpio3_io10>,
169		<&iomuxc1_sd1_data1_gpio_io_gpio3_io11>,
170		<&iomuxc1_sd1_data2_gpio_io_gpio3_io12>,
171		<&iomuxc1_sd1_data3_gpio_io_gpio3_io13>,
172		<&iomuxc1_sd1_data4_gpio_io_gpio3_io14>,
173		<&iomuxc1_sd1_data5_gpio_io_gpio3_io15>,
174		<&iomuxc1_sd1_data6_gpio_io_gpio3_io16>,
175		<&iomuxc1_sd1_data7_gpio_io_gpio3_io17>,
176		<&iomuxc1_sd1_strobe_gpio_io_gpio3_io18>,
177		<&iomuxc1_sd2_vselect_gpio_io_gpio3_io19>,
178		<&iomuxc1_sd3_clk_gpio_io_gpio3_io20>,
179		<&iomuxc1_sd3_cmd_gpio_io_gpio3_io21>,
180		<&iomuxc1_sd3_data0_gpio_io_gpio3_io22>,
181		<&iomuxc1_sd3_data1_gpio_io_gpio3_io23>,
182		<&iomuxc1_sd3_data2_gpio_io_gpio3_io24>,
183		<&iomuxc1_sd3_data3_gpio_io_gpio3_io25>,
184		<&iomuxc1_ccm_clko1_gpio_io_gpio3_io26>,
185		<&iomuxc1_ccm_clko2_gpio_io_gpio3_io27>,
186		<&iomuxc1_dap_tdi_gpio_io_gpio3_io28>,
187		<&iomuxc1_dap_tms_swdio_gpio_io_gpio3_io29>,
188		<&iomuxc1_dap_tclk_swclk_gpio_io_gpio3_io30>,
189		<&iomuxc1_dap_tdo_traceswo_gpio_io_gpio3_io31>;
190};
191
192&gpio4 {
193	pinmux = <&iomuxc1_enet1_mdc_gpio_io_gpio4_io00>,
194		<&iomuxc1_enet1_mdio_gpio_io_gpio4_io01>,
195		<&iomuxc1_enet1_td3_gpio_io_gpio4_io02>,
196		<&iomuxc1_enet1_td2_gpio_io_gpio4_io03>,
197		<&iomuxc1_enet1_td1_gpio_io_gpio4_io04>,
198		<&iomuxc1_enet1_td0_gpio_io_gpio4_io05>,
199		<&iomuxc1_enet1_tx_ctl_gpio_io_gpio4_io06>,
200		<&iomuxc1_enet1_txc_gpio_io_gpio4_io07>,
201		<&iomuxc1_enet1_rx_ctl_gpio_io_gpio4_io08>,
202		<&iomuxc1_enet1_rxc_gpio_io_gpio4_io09>,
203		<&iomuxc1_enet1_rd0_gpio_io_gpio4_io10>,
204		<&iomuxc1_enet1_rd1_gpio_io_gpio4_io11>,
205		<&iomuxc1_enet1_rd2_gpio_io_gpio4_io12>,
206		<&iomuxc1_enet1_rd3_gpio_io_gpio4_io13>,
207		<&iomuxc1_enet2_mdc_gpio_io_gpio4_io14>,
208		<&iomuxc1_enet2_mdio_gpio_io_gpio4_io15>,
209		<&iomuxc1_enet2_td3_gpio_io_gpio4_io16>,
210		<&iomuxc1_enet2_td2_gpio_io_gpio4_io17>,
211		<&iomuxc1_enet2_td1_gpio_io_gpio4_io18>,
212		<&iomuxc1_enet2_td0_gpio_io_gpio4_io19>,
213		<&iomuxc1_enet2_tx_ctl_gpio_io_gpio4_io20>,
214		<&iomuxc1_enet2_txc_gpio_io_gpio4_io21>,
215		<&iomuxc1_enet2_rx_ctl_gpio_io_gpio4_io22>,
216		<&iomuxc1_enet2_rxc_gpio_io_gpio4_io23>,
217		<&iomuxc1_enet2_rd0_gpio_io_gpio4_io24>,
218		<&iomuxc1_enet2_rd1_gpio_io_gpio4_io25>,
219		<&iomuxc1_enet2_rd2_gpio_io_gpio4_io26>,
220		<&iomuxc1_enet2_rd3_gpio_io_gpio4_io27>,
221		<&iomuxc1_ccm_clko3_gpio_io_gpio4_io28>,
222		<&iomuxc1_ccm_clko4_gpio_io_gpio4_io29>;
223};
224