1/*
2 * Copyright (c) 2019 SEAL AG
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <nxp/nxp_kv58f1m0vlx24.dtsi>
10#include "twr_kv58f220m-pinctrl.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12
13/ {
14	model = "NXP Kinetis KV58 MCU Tower System Module";
15	compatible = "nxp,mkv58f24", "nxp,kv58", "nxp,kv5x";
16
17	aliases {
18		led0 = &red_led;
19		led1 = &green_led;
20		led2 = &blue_led;
21		led3 = &orange_led;
22		sw0 = &user_button_0;
23		sw1 = &user_button_1;
24		sw2 = &user_button_2;
25		sw3 = &user_button_3;
26		magn0 = &fxos8700;
27		accel0 = &fxos8700;
28		mcuboot-button0 = &user_button_0;
29	};
30
31	chosen {
32		zephyr,sram = &sram0;
33		zephyr,flash = &flash0;
34		zephyr,code-partition = &slot0_partition;
35		zephyr,uart-mcumgr = &uart0;
36		zephyr,console = &uart0;
37		zephyr,shell-uart = &uart0;
38		zephyr,uart-pipe = &uart0;
39	};
40
41	leds {
42		compatible = "gpio-leds";
43		red_led: led_0 {
44			gpios = <&gpioe 11 0>;
45			label = "User LED D4";
46		};
47		green_led: led_1 {
48			gpios = <&gpioe 12 0>;
49			label = "User LED D3";
50		};
51		blue_led: led_2 {
52			gpios = <&gpioe 29 0>;
53			label = "User LED D2";
54		};
55		orange_led: led_3 {
56			gpios = <&gpioe 30 0>;
57			label = "User LED D1";
58		};
59	};
60
61	gpio_keys {
62		compatible = "gpio-keys";
63		user_button_0: button_0 {
64			label = "User SW2";
65			gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
66			zephyr,code = <INPUT_KEY_0>;
67		};
68		user_button_1: button_1 {
69			label = "User SW3";
70			gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
71			zephyr,code = <INPUT_KEY_1>;
72		};
73		user_button_2: button_2 {
74			label = "User SW4";
75			gpios = <&gpiob 5 GPIO_ACTIVE_LOW>;
76			zephyr,code = <INPUT_KEY_2>;
77		};
78		user_button_3: button_3 {
79			label = "User SW5";
80			gpios = <&gpiob 4 GPIO_ACTIVE_LOW>;
81			zephyr,code = <INPUT_KEY_3>;
82		};
83	};
84};
85
86&sim {
87	pllfll-select = <KINETIS_SIM_PLLFLLSEL_MCGPLLCLK>;
88	er32k-select = <KINETIS_SIM_ER32KSEL_OSC32KCLK>;
89};
90
91
92&gpioa {
93	status = "okay";
94};
95
96&gpiob {
97	status = "okay";
98};
99
100&gpioc {
101	status = "okay";
102};
103
104&gpiod {
105	status = "okay";
106};
107
108&gpioe {
109	status = "okay";
110};
111
112&flash0 {
113
114	partitions {
115		compatible = "fixed-partitions";
116		#address-cells = <1>;
117		#size-cells = <1>;
118		boot_partition: partition@0 {
119			label = "mcuboot";
120			reg = <0x00000000 DT_SIZE_K(64)>;
121			read-only;
122		};
123		/* The MCUBoot swap-move algorithm uses the last 2 sectors
124		 * of the primary slot0 for swap status and move.
125		 */
126		slot0_partition: partition@10000 {
127			label = "image-0";
128			reg = <0x00010000 (DT_SIZE_K(416) + DT_SIZE_K(16))>;
129		};
130		slot1_partition: partition@7C000 {
131			label = "image-1";
132			reg = <0x0007C000 DT_SIZE_K(416)>;
133		};
134		storage_partition: partition@E4000 {
135			label = "storage";
136			reg = <0x000E4000 DT_SIZE_K(112)>;
137		};
138	};
139};
140
141&i2c1 {
142	status = "okay";
143	pinctrl-0 = <&i2c1_default>;
144	pinctrl-names = "default";
145
146	fxos8700: fxos8700@1c {
147		compatible = "nxp,fxos8700";
148		reg = <0x1c>;
149		int1-gpios = <&gpioc 18 GPIO_ACTIVE_LOW>;
150		int2-gpios = <&gpioc 19 GPIO_ACTIVE_LOW>;
151	};
152};
153
154&uart0 {
155	status = "okay";
156	current-speed = <115200>;
157	pinctrl-0 = <&uart0_default>;
158	pinctrl-names = "default";
159};
160