1/* SPDX-License-Identifier: Apache-2.0 */
2
3/dts-v1/;
4
5#include <nxp/nxp_kl25z.dtsi>
6#include "frdm_kl25z-pinctrl.dtsi"
7#include <zephyr/dt-bindings/input/input-event-codes.h>
8
9/ {
10	model = "NXP Freedom KL25Z board";
11	compatible = "nxp,frdm-kl25z", "nxp,kl25z", "nxp,mkl25z4";
12
13	aliases {
14		led0 = &green_led;
15		led1 = &blue_led;
16		led2 = &red_led;
17		sw0 = &user_button_0;
18		sw1 = &user_button_1;
19		accel0 = &mma8451q;
20	};
21
22	chosen {
23		zephyr,sram = &sram0;
24		zephyr,flash = &flash0;
25		zephyr,console = &uart0;
26		zephyr,shell-uart = &uart0;
27	};
28
29	leds {
30		compatible = "gpio-leds";
31		red_led: led_0 {
32			gpios = <&gpiob 18 GPIO_ACTIVE_LOW>;
33			label = "User LD1";
34		};
35		green_led: led_1 {
36			gpios = <&gpiob 19 GPIO_ACTIVE_LOW>;
37			label = "User LD2";
38		};
39		blue_led: led_2 {
40			gpios = <&gpiod 1 GPIO_ACTIVE_LOW>;
41			label = "User LD3";
42		};
43	};
44
45	gpio_keys {
46		compatible = "gpio-keys";
47		user_button_0: button_0 {
48			label = "User SW0";
49			gpios = <&gpioa 16 GPIO_ACTIVE_LOW>;
50			zephyr,code = <INPUT_KEY_0>;
51		};
52		user_button_1: button_1 {
53			label = "User SW1";
54			gpios = <&gpioa 17 GPIO_ACTIVE_LOW>;
55			zephyr,code = <INPUT_KEY_1>;
56		};
57	};
58
59	arduino_header: connector {
60		compatible = "arduino-header-r3";
61		#gpio-cells = <2>;
62		gpio-map-mask = <0xffffffff 0xffffffc0>;
63		gpio-map-pass-thru = <0 0x3f>;
64		gpio-map = <0 0 &gpiob 0 0>,	/* A0 */
65			   <1 0 &gpiob 1 0>,	/* A1 */
66			   <2 0 &gpiob 2 0>,	/* A2 */
67			   <3 0 &gpiob 3 0>,	/* A3 */
68			   <4 0 &gpioc 2 0>,	/* A4 */
69			   <5 0 &gpioc 1 0>,	/* A5 */
70			   <6 0 &gpioa 1 0>,	/* D0 */
71			   <7 0 &gpioa 2 0>,	/* D1 */
72			   <8 0 &gpiod 4 0>,	/* D2 */
73			   <9 0 &gpioa 12 0>,	/* D3 */
74			   <10 0 &gpioa 4 0>,	/* D4 */
75			   <11 0 &gpioa 5 0>,	/* D5 */
76			   <12 0 &gpioc 8 0>,	/* D6 */
77			   <13 0 &gpioc 9 0>,	/* D7 */
78			   <14 0 &gpioa 13 0>,	/* D8 */
79			   <15 0 &gpiod 5 0>,	/* D9 */
80			   <16 0 &gpiod 0 0>,	/* D10 */
81			   <17 0 &gpiod 2 0>,	/* D11 */
82			   <18 0 &gpiod 3 0>,	/* D12 */
83			   <19 0 &gpiod 1 0>,	/* D13 */
84			   <20 0 &gpioe 0 0>,	/* D14 */
85			   <21 0 &gpioe 1 0>;	/* D15 */
86	};
87};
88
89&sim {
90	pllfll-select = <KINETIS_SIM_PLLFLLSEL_MCGPLLCLK>;
91	er32k-select = <KINETIS_SIM_ER32KSEL_LPO1KHZ>;
92};
93
94&cpu0 {
95	clock-frequency = <48000000>;
96};
97
98&adc0 {
99	status = "okay";
100	pinctrl-0 = <&adc0_default>;
101	pinctrl-names = "default";
102};
103
104&i2c0 {
105	status = "okay";
106	pinctrl-0 = <&i2c0_default>;
107	pinctrl-names = "default";
108
109	mma8451q: mma8451q@1d {
110		compatible = "nxp,fxos8700","nxp,mma8451q";
111		reg = <0x1d>;
112		int1-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
113		int2-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
114	};
115};
116
117&uart0 {
118	status = "okay";
119	current-speed = <115200>;
120	pinctrl-0 = <&uart0_default>;
121	pinctrl-names = "default";
122};
123
124&gpioa {
125	status = "okay";
126};
127
128&gpiob {
129	status = "okay";
130};
131
132&gpiod {
133	status = "okay";
134};
135
136zephyr_udc0: &usbotg {
137	compatible = "nxp,kinetis-usbd";
138	status = "okay";
139	num-bidir-endpoints = <8>;
140};
141