1/*
2 * Copyright 2022 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_lpc55S36_ns.dtsi>
10#include "lpcxpresso55s36-pinctrl.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12
13/ {
14	model = "NXP LPCXpresso55S36 board";
15	compatible = "nxp,lpc55xxx", "nxp,lpc";
16
17	chosen {
18		zephyr,sram = &sram0;
19		zephyr,flash = &flash0;
20		zephyr,code-partition = &slot0_partition;
21		zephyr,uart-mcumgr = &flexcomm0;
22		zephyr,console = &flexcomm0;
23		zephyr,shell-uart = &flexcomm0;
24		zephyr,canbus = &can0;
25		zephyr,flash-controller = &iap;
26	};
27
28	aliases{
29		led0 = &red_led;
30		led1 = &green_led;
31		led2 = &blue_led;
32		sw0 = &btn_wk;
33		sw1 = &btn_usr;
34		usart-0 = &flexcomm0;
35		pwm-0 = &flexpwm1_pwm0;
36		mcuboot-button0 = &btn_wk;
37	};
38
39	leds {
40		compatible = "gpio-leds";
41		red_led: led_0 {
42			gpios = <&gpio1 28 0>;
43			label = "Red LED";
44		};
45		green_led: led_1 {
46			gpios = <&gpio0 22 0>;
47			label = "Green LED";
48		};
49		blue_led: led_2 {
50			gpios = <&gpio1 11 0>;
51			label = "Blue LED";
52		};
53	};
54
55	gpio_keys {
56		compatible = "gpio-keys";
57		btn_wk: button_0 {
58			label = "Wakeup button";
59			gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
60			zephyr,code = <INPUT_KEY_WAKEUP>;
61		};
62		btn_usr: button_1 {
63			label = "USR button";
64			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
65			zephyr,code = <INPUT_KEY_0>;
66		};
67	};
68
69	mikrobus_header: mikrobus-connector {
70		compatible = "mikro-bus";
71		#gpio-cells = <2>;
72		gpio-map-mask = <0xffffffff 0xffffffc0>;
73		gpio-map-pass-thru = <0 0x3f>;
74		gpio-map =	<0 0 &gpio1 9 0>,	/* AN  */
75				/* Not a GPIO*/		/* RST */
76				<2 0 &gpio0 20 0>,	/* CS   */
77				<3 0 &gpio1 2 0>,	/* SCK  */
78				<4 0 &gpio1 3 0>,	/* MISO */
79				<5 0 &gpio0 26 0>,	/* MOSI */
80							/* +3.3V */
81							/* GND */
82				<6 0 &gpio1 8 0>,	/* PWM  */
83				<7 0 &gpio0 17 0>,	/* INT  */
84				<8 0 &gpio1 24 0>,	/* RX   */
85				<9 0 &gpio1 25 0>,	/* TX   */
86				<10 0 &gpio1 30 0>,	/* SCL  */
87				<11 0 &gpio1 21 0>;	/* SDA  */
88							/* +5V */
89							/* GND */
90	};
91
92	arduino_header: arduino-connector {
93		compatible = "arduino-header-r3";
94		#gpio-cells = <2>;
95		gpio-map-mask = <0xffffffff 0xffffffc0>;
96		gpio-map-pass-thru = <0 0x3f>;
97		gpio-map =	<0 0 &gpio0 15 0>,	/* A0 */
98				<1 0 &gpio0 16 0>,	/* A1 */
99				<2 0 &gpio0 0 0>,	/* A2 */
100				<3 0 &gpio1 13 0>,	/* A3 */
101				<4 0 &gpio1 21 0>,	/* A4 */
102				<5 0 &gpio1 30 0>,	/* A5 */
103				<6 0 &gpio2 0 0>,	/* D0 */
104				<7 0 &gpio2 1 0>,	/* D1 */
105				<8 0 &gpio1 26 0>,	/* D2 */
106				<9 0 &gpio1 23 0>,	/* D3 */
107				<10 0 &gpio1 8 0>,	/* D4 */
108				<11 0 &gpio1 25 0>,	/* D5 */
109				<12 0 &gpio1 0 0>,	/* D6 */
110				<13 0 &gpio1 28 0>,	/* D7 */
111				<14 0 &gpio1 27 0>,	/* D8 */
112				<15 0 &gpio1 29 0>,	/* D9 */
113				<16 0 &gpio1 26 0>,	/* D10 */
114				<17 0 &gpio0 26 0>,	/* D11 */
115				<18 0 &gpio1 3 0>,	/* D12 */
116				<19 0 &gpio1 2 0>,	/* D13 */
117				<20 0 &gpio0 3 0>,	/* D14 */
118				<21 0 &gpio0 2 0>;	/* D15 */
119	};
120};
121
122&flexcomm0 {
123	status = "okay";
124	compatible = "nxp,lpc-usart";
125	current-speed = <115200>;
126	pinctrl-0 = <&pinmux_flexcomm0_usart>;
127	pinctrl-names = "default";
128};
129
130&can0 {
131	pinctrl-0 = <&pinmux_mcan_can0>;
132	pinctrl-names = "default";
133	status = "okay";
134
135	can-transceiver {
136		max-bitrate = <5000000>;
137	};
138};
139
140&adc0 {
141	status = "okay";
142	pinctrl-0 = <&pinmux_lpadc0>;
143	pinctrl-names = "default";
144};
145
146/* Flash is divided into 32 kB sub-regions.
147 * Each sub-region can be assigned individual
148 * security tier in secure AHB controller.
149 */
150&flash0 {
151	partitions {
152		compatible = "fixed-partitions";
153		#address-cells = <1>;
154		#size-cells = <1>;
155		boot_partition: partition@0 {
156			label = "mcuboot";
157			reg = <0x0 DT_SIZE_K(32)>;
158		};
159		slot0_partition: partition@8000 {
160			label = "image-0";
161			reg = <0x00008000 DT_SIZE_K(96)>;
162		};
163		slot1_partition: partition@20000 {
164			label = "image-1";
165			reg = <0x00020000 DT_SIZE_K(96)>;
166		};
167		storage_partition: partition@38000 {
168			label = "storage";
169			reg = <0x00038000 DT_SIZE_K(20)>;
170		};
171		/* The last 12KB are reserved for PFR on the 256KB flash.
172		 */
173	};
174};
175
176&flexpwm1_pwm0 {
177	status = "okay";
178	pinctrl-0 = <&pinmux_flexpwm1_pwm0>;
179	pinctrl-names = "default";
180};
181
182zephyr_udc0: &usbfs {
183	status = "okay";
184	pinctrl-0 = <&pinmux_usbfs>;
185	pinctrl-names = "default";
186};
187
188&dma0 {
189	status = "okay";
190};
191
192&vref0 {
193	status = "okay";
194};
195
196&dac0 {
197	status = "okay";
198	pinctrl-0 = <&pinmux_dac0>;
199	pinctrl-names = "default";
200};
201