Add watchdog support to the mimxrt685 platform. The mimxrt685 platform is excluded from the watchdog test case because the test case uses variables in the noinit section that need to be retained through a reset but the rt685 does not retain this memory through a reset. Signed-off-by: David Leach <david.leach@nxp.com>
295 lines
5.8 KiB
Text
295 lines
5.8 KiB
Text
/*
|
|
* Copyright (c) 2020, NXP
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include <nxp/nxp_rt6xx.dtsi>
|
|
#include <dt-bindings/pwm/pwm.h>
|
|
|
|
/ {
|
|
model = "NXP MIMXRT685-EVK board";
|
|
compatible = "nxp,mimxrt685";
|
|
|
|
aliases {
|
|
sw0 = &user_button_1;
|
|
sw1 = &user_button_2;
|
|
led0 = &green_led;
|
|
led1 = &blue_led;
|
|
led2 = &red_led;
|
|
usart-0 = &flexcomm0;
|
|
/* For pwm test suites */
|
|
pwm-0 = &sc_timer;
|
|
pwm-led0 = &green_pwm_led;
|
|
green-pwm-led = &green_pwm_led;
|
|
blue-pwm-led = &blue_pwm_led;
|
|
red-pwm-led = &red_pwm_led;
|
|
watchdog0 = &wwdt0;
|
|
};
|
|
|
|
chosen {
|
|
zephyr,flash-controller = &flexspi;
|
|
zephyr,flash = &mx25um51345g;
|
|
zephyr,code-partition = &slot0_partition;
|
|
zephyr,sram = &sram0;
|
|
zephyr,console = &flexcomm0;
|
|
zephyr,shell-uart = &flexcomm0;
|
|
};
|
|
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
user_button_1: button_0 {
|
|
label = "User SW1";
|
|
gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
|
|
};
|
|
user_button_2: button_1 {
|
|
label = "User SW2";
|
|
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
green_led: led_1 {
|
|
gpios = <&gpio0 14 0>;
|
|
label = "User LED_GREEN";
|
|
};
|
|
blue_led: led_2 {
|
|
gpios = <&gpio0 26 0>;
|
|
label = "User LED_BLUE";
|
|
};
|
|
red_led: led_3 {
|
|
gpios = <&gpio0 31 0>;
|
|
label = "User LED_RED";
|
|
};
|
|
};
|
|
|
|
pwmleds {
|
|
compatible = "pwm-leds";
|
|
green_pwm_led: green_pwm_led {
|
|
pwms = <&sc_timer 0 PWM_POLARITY_NORMAL>;
|
|
label = "Green PWM LED";
|
|
status = "okay";
|
|
};
|
|
blue_pwm_led: blue_pwm_led {
|
|
pwms = <&sc_timer 6 PWM_POLARITY_NORMAL>;
|
|
label = "Blue PWM LED";
|
|
status = "okay";
|
|
};
|
|
red_pwm_led: red_pwm_led {
|
|
pwms = <&sc_timer 6 PWM_POLARITY_NORMAL>;
|
|
label = "Red PWM LED";
|
|
status = "disabled";
|
|
};
|
|
};
|
|
|
|
arduino_header: arduino-connector {
|
|
compatible = "arduino-header-r3";
|
|
#gpio-cells = <2>;
|
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
|
gpio-map-pass-thru = <0 0x3f>;
|
|
gpio-map = <0 0 &gpio0 5 0>, /* A0 */
|
|
<1 0 &gpio0 6 0>, /* A1 */
|
|
<2 0 &gpio0 19 0>, /* A2 */
|
|
<3 0 &gpio0 20 0>, /* A3 */
|
|
<4 0 &gpio0 17 0>, /* A4 */
|
|
<5 0 &gpio0 18 0>, /* A5 */
|
|
<6 0 &gpio0 30 0>, /* D0 */
|
|
<7 0 &gpio0 29 0>, /* D1 */
|
|
<8 0 &gpio0 28 0>, /* D2 */
|
|
<9 0 &gpio0 27 0>, /* D3 */
|
|
<10 0 &gpio1 0 0>, /* D4 */
|
|
<11 0 &gpio1 10 0>, /* D5 */
|
|
<12 0 &gpio1 2 0>, /* D6 */
|
|
<13 0 &gpio1 8 0>, /* D7 */
|
|
<14 0 &gpio1 9 0>, /* D8 */
|
|
<15 0 &gpio1 7 0>, /* D9 */
|
|
<16 0 &gpio1 6 0>, /* D10 */
|
|
<17 0 &gpio1 5 0>, /* D11 */
|
|
<18 0 &gpio1 4 0>, /* D12 */
|
|
<19 0 &gpio1 3 0>, /* D13 */
|
|
<20 0 &gpio0 17 0>, /* D14 */
|
|
<21 0 &gpio0 18 0>; /* D15 */
|
|
};
|
|
|
|
power-states {
|
|
idle: idle {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "runtime-idle";
|
|
min-residency-us = <10>;
|
|
};
|
|
suspend: suspend {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "suspend-to-idle";
|
|
min-residency-us = <1000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-power-states = <&idle &suspend>;
|
|
};
|
|
|
|
/*
|
|
* RT600 EVK board uses OS timer as the kernel timer
|
|
* In case we need to switch to SYSTICK timer, then
|
|
* replace &os_timer with &systick
|
|
*/
|
|
&os_timer {
|
|
status = "okay";
|
|
};
|
|
|
|
&rtc {
|
|
status = "okay";
|
|
};
|
|
|
|
&flexcomm0 {
|
|
compatible = "nxp,lpc-usart";
|
|
status = "okay";
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
arduino_i2c: &flexcomm2 {
|
|
compatible = "nxp,lpc-i2c";
|
|
status = "okay";
|
|
clock-frequency = <I2C_BITRATE_FAST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
fxos8700@1e {
|
|
compatible = "nxp,fxos8700";
|
|
reg = <0x1e>;
|
|
label = "FXOS8700";
|
|
int1-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
|
|
reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
arduino_serial: &flexcomm4 {
|
|
compatible = "nxp,lpc-usart";
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
arduino_spi: &flexcomm5 {
|
|
compatible = "nxp,lpc-spi";
|
|
status = "okay";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
dmas = <&dma0 10>, <&dma0 11>;
|
|
dma-names = "rx", "tx";
|
|
};
|
|
|
|
/* I2S receive channel */
|
|
i2s0: &flexcomm1 {
|
|
status = "okay";
|
|
compatible = "nxp,lpc-i2s";
|
|
label = "I2S_0";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
dmas = <&dma0 2>;
|
|
dma-names = "rx";
|
|
};
|
|
|
|
/* I2S transmit channel */
|
|
i2s1: &flexcomm3 {
|
|
status = "okay";
|
|
compatible = "nxp,lpc-i2s";
|
|
label = "I2S_1";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
dmas = <&dma0 7>;
|
|
dma-names = "tx";
|
|
};
|
|
|
|
&flexspi {
|
|
reg = <0x50134000 0x4000>, <0x18000000 DT_SIZE_M(64)>;
|
|
mx25um51345g: mx25um51345g@2 {
|
|
compatible = "nxp,imx-flexspi-mx25um51345g";
|
|
size = <536870912>;
|
|
label = "MX25UM51345G";
|
|
reg = <2>;
|
|
spi-max-frequency = <200000000>;
|
|
status = "okay";
|
|
jedec-id = [c2 81 3a];
|
|
erase-block-size = <4096>;
|
|
write-block-size = <1>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
boot_partition: partition@0 {
|
|
label = "mcuboot";
|
|
reg = <0x00000000 DT_SIZE_K(64)>;
|
|
};
|
|
slot0_partition: partition@10000 {
|
|
label = "image-0";
|
|
reg = <0x00010000 DT_SIZE_M(24)>;
|
|
};
|
|
slot1_partition: partition@1810000 {
|
|
label = "image-1";
|
|
reg = <0x01810000 DT_SIZE_M(24)>;
|
|
};
|
|
scratch_partition: partition@3010000 {
|
|
label = "image-scratch";
|
|
reg = <0x03010000 DT_SIZE_K(8128)>;
|
|
};
|
|
storage_partition: partition@3f00000 {
|
|
label = "storage";
|
|
reg = <0x03f00000 DT_SIZE_M(1)>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&gpio0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&gpio1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&dma0 {
|
|
/*
|
|
* The total number of dma channels available is defined by
|
|
* FSL_FEATURE_DMA_NUMBER_OF_CHANNELS in the SoC features file.
|
|
* Since memory from the heap pool is allocated based on the number
|
|
* of DMA channels, set this property to as many channels is needed
|
|
* for the platform. Adjust HEAP_MEM_POOL_SIZE in case you need more
|
|
* memory.
|
|
*/
|
|
dma-channels = <20>;
|
|
status = "okay";
|
|
};
|
|
|
|
&wwdt0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&user_button_1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&user_button_2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&green_led {
|
|
status = "okay";
|
|
};
|
|
|
|
&blue_led {
|
|
status = "okay";
|
|
};
|
|
|
|
&red_led {
|
|
status = "okay";
|
|
};
|
|
|
|
&sc_timer {
|
|
status = "okay";
|
|
};
|