Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2019-2021 Vestas Wind Systems A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nxp/nxp_ke18f512vlx16.dtsi>
#include <zephyr/dt-bindings/clock/kinetis_scg.h>
#include <zephyr/dt-bindings/pwm/pwm.h>
#include "twr_ke18f-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "NXP Kinetis KE18 MCU Tower System Module";
	compatible = "nxp,mke18f16", "nxp,ke18f", "nxp,ke1xf";

	aliases {
		led0 = &orange_led;
		led1 = &yellow_led;
		led2 = &green_led;
		led3 = &red_led;
		led4 = &tri_red_led;
		led5 = &tri_green_led;
		led6 = &tri_blue_led;
		pwm-led0 = &orange_pwm_led;
		pwm-led1 = &yellow_pwm_led;
		pwm-led2 = &green_pwm_led;
		pwm-led3 = &red_pwm_led;
		red-pwm-led = &tri_red_pwm_led;
		green-pwm-led = &tri_green_pwm_led;
		blue-pwm-led = &tri_blue_pwm_led;
		sw0 = &user_button_3;
		sw1 = &user_button_2;
		magn0 = &fxos8700;
		accel0 = &fxos8700;
	};

	chosen {
		/*
		 * Note: when using DMA, the SRAM region must be set to
		 * a memory region that is not cached by the chip. If the chosen
		 * sram region is changed and DMA is in use, you will
		 * encounter issues!
		 */
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
		zephyr,console = &lpuart0;
		zephyr,shell-uart = &lpuart0;
		zephyr,uart-pipe = &lpuart0;
		zephyr,canbus = &flexcan0;
	};

	leds {
		compatible = "gpio-leds";
		orange_led: led_0 {
			gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
			label = "User LED D9";
		};
		yellow_led: led_1 {
			gpios = <&gpioc 12 GPIO_ACTIVE_LOW>;
			label = "User LED D8";
		};
		green_led: led_2 {
			gpios = <&gpioc 11 GPIO_ACTIVE_LOW>;
			label = "User LED D7";
		};
		red_led: led_3 {
			gpios = <&gpioc 10 GPIO_ACTIVE_LOW>;
			label = "User LED D6";
		};

		tri_red_led: led_4 {
			gpios = <&gpiod 16 GPIO_ACTIVE_LOW>;
			label = "User Tricolor LED D5 (Red)";
		};
		tri_green_led: led_5 {
			gpios = <&gpiod 15 GPIO_ACTIVE_LOW>;
			label = "User Tricolor LED D5 (Green)";
		};
		tri_blue_led: led_6 {
			gpios = <&gpiob 5 GPIO_ACTIVE_LOW>;
			label = "User Tricolor LED D5 (Blue)";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		orange_pwm_led: led_pwm_0 {
			pwms = <&ftm3 7 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LED D9";
		};
		yellow_pwm_led: led_pwm_1 {
			pwms = <&ftm3 6 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LED D8";
		};
		green_pwm_led: led_pwm_2 {
			pwms = <&ftm3 5 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LED D7";
		};
		red_pwm_led: led_pwm_3 {
			pwms = <&ftm3 4 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User PWM LED D6";
		};

		tri_red_pwm_led: led_pwm_4 {
			pwms = <&ftm0 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User Tricolor PWM LED D5 (Red)";
		};
		tri_green_pwm_led: led_pwm_5 {
			pwms = <&ftm0 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User Tricolor PWM LED D5 (Green)";
		};
		tri_blue_pwm_led: led_pwm_6 {
			pwms = <&ftm0 5 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
			label = "User Tricolor PWM LED D5 (Blue)";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_2: button_0 {
			label = "User SW2";
			gpios = <&gpiod 3 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
		user_button_3: button_1 {
			label = "User SW3";
			gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_1>;
		};
	};

	flexio: flexio@4005a000 {
		reg = <0x4005a000 0x1000>;
		compatible = "nxp,flexio";
		pinctrl-0 = <&flexio_clockout>;
		pinctrl-names = "default";
	};
};

&cpu0 {
	clock-frequency = <120000000>;
};

&idle {
	min-residency-us = <1>;
};

&stop {
	min-residency-us = <20000>;
	exit-latency-us = <13>;
};

&sim {
	clkout-source = <1>;
	clkout-divider = <0>;
};

&scg {
	sosc-mode = <KINETIS_SCG_SOSC_MODE_LOW_POWER>;

	sosc_clk {
		status = "okay";
		clock-frequency = <8000000>;
	};

	pll {
		clock-mult = <30>;
	};

	core_clk {
		clocks = <&spll_clk>;
	};

	bus_clk {
		clock-div = <2>;
	};

	slow_clk {
		clock-div = <5>;
	};

	clkout_clk {
		status = "okay";
	};

	splldiv1_clk {
		clock-div = <1>;
	};

	splldiv2_clk {
		clock-div = <2>;
	};

	sircdiv1_clk {
		clock-div = <1>;
	};

	sircdiv2_clk {
		clock-div = <2>;
	};

	fircdiv1_clk {
		clock-div = <1>;
	};

	fircdiv2_clk {
		clock-div = <1>;
	};

	soscdiv1_clk {
		clock-div = <1>;
	};

	soscdiv2_clk {
		clock-div = <1>;
	};
};

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

&ftm0 {
	status = "okay";
	compatible = "nxp,kinetis-ftm-pwm";
	#pwm-cells = <3>;
	pinctrl-0 = <&ftm0_default>;
	pinctrl-names = "default";
};

&ftm3 {
	status = "okay";
	compatible = "nxp,kinetis-ftm-pwm";
	#pwm-cells = <3>;
	pinctrl-0 = <&ftm3_default>;
	pinctrl-names = "default";
};

&lpi2c0 {
	status = "okay";
	pinctrl-0 = <&lpi2c0_default>;
	pinctrl-names = "default";
	scl-gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>;
	sda-gpios = <&gpioa 2 GPIO_ACTIVE_HIGH>;

	fxos8700: fxos8700@1d {
		compatible = "nxp,fxos8700";
		reg = <0x1d>;
		reset-gpios = <&gpioc 15 GPIO_ACTIVE_HIGH>;
	};
};

&lpi2c1 {
	status = "okay";
	pinctrl-0 = <&lpi2c1_default>;
	pinctrl-names = "default";
	scl-gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
	sda-gpios = <&gpiod 8 GPIO_ACTIVE_HIGH>;
};

&lpspi0 {
	dmas = <&edma 0 14>, <&edma 1 15>;
	dma-names = "rx", "tx";
	status = "okay";
	pinctrl-0 = <&lpspi0_default>;
	pinctrl-names = "default";
};

&lpspi1 {
	status = "okay";
	pinctrl-0 = <&lpspi1_default>;
	pinctrl-names = "default";
};

&dac0 {
	status = "okay";
	pinctrl-0 = <&dac0_default>;
	pinctrl-names = "default";
};

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

&temp0 {
	status = "okay";
};

&flexcan0 {
	status = "okay";
	bus-speed = <125000>;
	pinctrl-0 = <&flexcan0_default>;
	pinctrl-names = "default";

	can-transceiver {
		max-bitrate = <1000000>;
	};
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpiod {
	status = "okay";
};

&gpioe {
	status = "okay";
};

&edma {
	status = "okay";
};

&flash0 {

	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0xc000>;
		};
		slot0_partition: partition@c000 {
			label = "image-0";
			reg = <0x0000c000 0x32000>;
		};
		slot1_partition: partition@3e000 {
			label = "image-1";
			reg = <0x0003e000 0x32000>;
		};
		scratch_partition: partition@70000 {
			label = "image-scratch";
			reg = <0x00070000 0xa000>;
		};
		storage_partition: partition@7a000 {
			label = "storage";
			reg = <0x0007a000 0x00006000>;
		};
	};
};