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...
/* SPDX-License-Identifier: Apache-2.0 */

/dts-v1/;

#include <nxp/MK64FN1M0VLL12.dtsi>

/ {
	model = "NXP Freedom MK64F board";
	compatible = "nxp,mk64f12", "nxp,k64f", "nxp,k6x";

	aliases {
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		sw0 = &user_button_3;
		sw1 = &user_button_2;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-pipe = &uart0;
		zephyr,can-primary = &flexcan0;
	};

	leds {
		compatible = "gpio-leds";
		red_led: led_0 {
			gpios = <&gpiob 22 GPIO_ACTIVE_LOW>;
			label = "User LD1";
		};
		green_led: led_1 {
			gpios = <&gpioe 26 GPIO_ACTIVE_LOW>;
			label = "User LD2";
		};
		blue_led: led_2 {
			gpios = <&gpiob 21 GPIO_ACTIVE_LOW>;
			label = "User LD3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_2: button_0 {
			label = "User SW2";
			gpios = <&gpioc 6 GPIO_ACTIVE_LOW>;
		};
		user_button_3: button_1 {
			label = "User SW3";
			gpios = <&gpioa 4 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 = <0 0 &gpiob 2 0>,	/* A0 */
			   <1 0 &gpiob 3 0>,	/* A1 */
			   <2 0 &gpiob 10 0>,	/* A2 */
			   <3 0 &gpiob 11 0>,	/* A3 */
			   <4 0 &gpioc 11 0>,	/* A4 */
			   <5 0 &gpioc 10 0>,	/* A5 */
			   <6 0 &gpioc 16 0>,	/* D0 */
			   <7 0 &gpioc 17 0>,	/* D1 */
			   <8 0 &gpiob 9 0>,	/* D2 */
			   <9 0 &gpioa 1 0>,	/* D3 */
			   <10 0 &gpiob 23 0>,	/* D4 */
			   <11 0 &gpioa 2 0>,	/* D5 */
			   <12 0 &gpioc 2 0>,	/* D6 */
			   <13 0 &gpioc 3 0>,	/* D7 */
			   /* NOTE: HW Rev D and below use: */
			   /* <14 0 &gpioa 0 0>, */
			   /* NOTE: HW Rev E and on use: */
			   <14 0 &gpioc 12 0>,	/* D8 */
			   <15 0 &gpioc 4 0>,	/* D9 */
			   <16 0 &gpiod 0 0>,	/* D10 */
			   <17 0 &gpiod 2 0>,	/* D11 */
			   <18 0 &gpiod 3 0>,	/* D12 */
			   <19 0 &gpiod 1 0>,	/* D13 */
			   <20 0 &gpioe 25 0>,	/* D14 */
			   <21 0 &gpioe 24 0>;	/* D15 */
	};
};

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

arduino_serial: &uart3 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&UART3_RX_PTC16 &UART3_TX_PTC17>;
};

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

&adc0 {
	status = "okay";
};

&adc1 {
	status = "okay";
};

&temp1 {
	status = "okay";
};

&dac0 {
	status = "okay";
	voltage-reference = <2>;
};

arduino_i2c: &i2c0 {
	status = "okay";
	pinctrl-0 = <&I2C0_SCL_PTE24 &I2C0_SDA_PTE25>;

	fxos8700@1d {
		compatible = "nxp,fxos8700";
		reg = <0x1d>;
		label = "FXOS8700";
		int1-gpios = <&gpioc 6 GPIO_ACTIVE_LOW>;
		int2-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
	};
};

arduino_spi: &spi0 {
	status = "okay";
	pinctrl-0 = <&SPI0_PCS0_PTD0 &SPI0_SCK_PTD1 &SPI0_SOUT_PTD2 &SPI0_SIN_PTD3>;
};

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

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

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&UART0_RX_PTB16 &UART0_TX_PTB17>;
};

&uart2 {
	pinctrl-0 = <&UART2_RTS_b_PTD0 &UART2_CTS_b_PTD1 &UART2_RX_PTD2 &UART2_TX_PTD3>;
};

zephyr_udc0: &usbotg {
	compatible = "nxp,kinetis-usbd";
	status = "okay";
	num-bidir-endpoints = <8>;
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&gpiod {
	status = "okay";
};

&gpioe {
	status = "okay";
};

&flash0 {

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

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00010000>;
			read-only;
		};

		/*
		 * The flash starting at 0x00010000 and ending at
		 * 0x0001ffff (sectors 16-31) is reserved for use
		 * by the application.
		 */
		storage_partition: partition@1e000 {
			label = "storage";
			reg = <0x0001e000 0x00002000>;
		};

		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x00020000 0x00060000>;
		};
		slot1_partition: partition@80000 {
			label = "image-1";
			reg = <0x00080000 0x00060000>;
		};
		scratch_partition: partition@e0000 {
			label = "image-scratch";
			reg = <0x000e0000 0x00020000>;
		};
	};
};

&enet {
	status = "okay";
	pinctrl-0 = <&RMII0_RXER_PTA5 &RMII0_RXD1_PTA12
		     &RMII0_RXD0_PTA13 &RMII0_CRS_DV_PTA14
		     &RMII0_TXEN_PTA15 &RMII0_TXD0_PTA16
		     &RMII0_TXD1_PTA17 &RMII0_MDIO_PTB0
		     &RMII0_MDC_PTB1>;
	ptp {
		status = "okay";
		pinctrl-0 = <&ENET0_1588_TMR0_PTC16 &ENET0_1588_TMR1_PTC17
			     &ENET0_1588_TMR2_PTC18>;
	};
};

&RMII0_MDIO_PTB0 {
	bias-pull-up;
	drive-open-drain;
};

&flexcan0 {
	status = "okay";
	pinctrl-0 = <&CAN0_TX_PTB18 &CAN0_RX_PTB19>;
	bus-speed = <125000>;
};

&CAN0_RX_PTB19 {
	bias-pull-up;
};

&edma0 {
	status = "okay";
};

&pit0 {
	status = "okay";
};