/* SPDX-License-Identifier: Apache-2.0 */

/dts-v1/;

#include <nxp/nxp_kw41z.dtsi>
#include "frdm_kw41z-pinctrl.dtsi"

/ {
	model = "NXP Freedom KW41Z board";
	compatible = "nxp,kw41z", "nxp,mkw41z4";

	aliases {
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		sw0 = &user_button_3;
		sw1 = &user_button_4;
		pwm-led0 = &blue_pwm_led;
		pwm-led1 = &green_pwm_led;
		pwm-led2 = &red_pwm_led;
		blue-pwm-led = &blue_pwm_led;
		green-pwm-led = &green_pwm_led;
		red-pwm-led = &red_pwm_led;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,console = &lpuart0;
		zephyr,shell-uart = &lpuart0;
	};

	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
		green_led: led_1 {
			gpios = <&gpioa 19 GPIO_ACTIVE_LOW>;
			label = "User LD2";
		};
		blue_led: led_2 {
			gpios = <&gpioa 18 GPIO_ACTIVE_LOW>;
			label = "User LD3";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		blue_pwm_led: pwm_led_0 {
			pwms = <&tpm2 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LD1";
		};
		green_pwm_led: pwm_led_1 {
			pwms = <&tpm2 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LD2";
		};
		red_pwm_led: pwm_led_2 {
			pwms = <&tpm0 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LD3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_3: button_0 {
			label = "User SW3";
			gpios = <&gpioc 4 GPIO_ACTIVE_LOW>;
		};
		user_button_4: button_1 {
			label = "User SW4";
			gpios = <&gpioc 5 GPIO_ACTIVE_LOW>;
		};
	};

	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = /* A0 cannot be muxed as gpio */
			   <1 0 &gpiob 18 0>,	/* A1 */
			   <2 0 &gpiob 2 0>,	/* A2 */
			   <3 0 &gpiob 3 0>,	/* A3 */
			   <4 0 &gpiob 1 0>,	/* A4 */
			   <6 0 &gpioc 6 0>,	/* D0 */
			   <7 0 &gpioc 7 0>,	/* D1 */
			   <8 0 &gpioc 19 0>,	/* D2 */
			   <9 0 &gpioc 16 0>,	/* D3 */
			   <10 0 &gpioc 4 0>,	/* D4 */
			   <11 0 &gpioc 17 0>,	/* D5 */
			   <12 0 &gpioc 18 0>,	/* D6 */
			   <13 0 &gpioa 1 0>,	/* D7 */
			   <14 0 &gpioa 0 0>,	/* D8 */
			   <15 0 &gpioc 1 0>,	/* D9 */
			   <16 0 &gpioa 19 0>,	/* D10 */
			   <17 0 &gpioa 16 0>,	/* D11 */
			   <18 0 &gpioa 17 0>,	/* D12 */
			   <19 0 &gpioa 18 0>,	/* D13 */
			   <20 0 &gpioc 3 0>,	/* D14 */
			   <21 0 &gpioc 2 0>;	/* D15 */
	};
};

&sim {
	pllfll-select = <KINETIS_SIM_PLLFLLSEL_MCGPLLCLK>;
	er32k-select = <KINETIS_SIM_ER32KSEL_OSC32KCLK>;
};

&adc0 {
	status = "okay";
	pinctrl-0 = <&adc0_default>;
	pinctrl-names = "default";
};

&i2c1 {
	status = "okay";
	pinctrl-0 = <&i2c1_default>;
	pinctrl-names = "default";

	fxos8700@1f {
		compatible = "nxp,fxos8700";
		reg = <0x1f>;
		label = "FXOS8700";
		int1-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
	};
};

&lpuart0 {
	status = "okay";
	pinctrl-0 = <&lpuart0_default>;
	pinctrl-names = "default";
	current-speed = <115200>;
};

&gpioa {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&spi0 {
	status = "okay";
	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";
};

&tpm0 {
	status = "okay";
	pinctrl-0 = <&tpm0_default>;
	pinctrl-names = "default";
};

&tpm1 {
	status = "disabled";
};

&tpm2 {
	status = "okay";
	pinctrl-0 = <&tmp2_default>;
	pinctrl-names = "default";
};
