boards: nxp: add RT1060 EVKC support

MIMXRT1060 EVK rev C initial support files.

Signed-off-by: David Leach <david.leach@nxp.com>
This commit is contained in:
David Leach 2025-01-03 11:07:12 -06:00 committed by Benjamin Cabé
parent effa221bbc
commit d29e2f342d
35 changed files with 542 additions and 29 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright 2018-2022 NXP
# Copyright 2018-2022, 2025 NXP
#
# SPDX-License-Identifier: Apache-2.0
#
@ -12,7 +12,7 @@ endif()
if(CONFIG_NXP_IMXRT_BOOT_HEADER)
zephyr_library()
if(${BOARD_REVISION} STREQUAL "B")
if((${BOARD_REVISION} STREQUAL "B") OR (${BOARD_REVISION} STREQUAL "C"))
set(FLASH_CONF evkbmimxrt1060_flexspi_nor_config.c)
set(BOARD_NAME evkbmimxrt1060)
elseif(CONFIG_DT_HAS_NXP_IMX_FLEXSPI_NOR_ENABLED)

View File

@ -14,7 +14,7 @@ board_runner_args(pyocd "--target=mimxrt1060")
board_runner_args(jlink "--device=MIMXRT1062xxx6A")
board_runner_args(linkserver "--device=MIMXRT1062xxxxA:EVK-MIMXRT1060")
if(("${BOARD_QUALIFIERS}" MATCHES "qspi") OR ("${BOARD_REVISION}" STREQUAL "B"))
if(("${BOARD_QUALIFIERS}" MATCHES "qspi") OR ("${BOARD_REVISION}" STREQUAL "B") OR ("${BOARD_REVISION}" STREQUAL "C"))
board_runner_args(jlink "--loader=BankAddr=0x60000000&Loader=QSPI")
elseif ("${BOARD_QUALIFIERS}" MATCHES "hyperflash")
board_runner_args(jlink "--loader=BankAddr=0x60000000&Loader=HyperFlash")

View File

@ -9,7 +9,8 @@ boards:
- name: "hyperflash"
revision:
format: "letter"
default: "A"
default: "C"
revisions:
- name: "A"
- name: "B"
- name: "C"

View File

@ -316,8 +316,28 @@ The MIMXRT1060 SoC has eight UARTs. ``LPUART1`` is configured for the console,
``LPUART3`` for the Bluetooth Host Controller Interface (BT HCI), and the
remaining are not used.
Board Targets
*************
Board Revisions and Targets
***************************
There are three revisions of this board.
Rev A:
* Initial version
Rev B:
* adds the M.2 connector for Wi-Fi/BLE
* adds audio expansion connector J23
* USER LED1 changed to GPIO1 pin 8
Rev C:
* Replaces audio codec WM8960(EOL) to WM8962
* Replaces 32.768 KHz oscillator from ASH7K-32.768KHz-T(EOL)to ASH7KW-32.768KHZ-L-T
* Replaces motion sensor from FXOS8700CQ(EOL) to FXLS8974CFR3
* Re-assigns Bluetooth Audio PCM with dedicated I2S2
* Re-assigns Bluetooth interface UART_CTS, UART_RTS to hardware PIN
This board has two variants that can be targeted,
depending on which flash to set as ``zephyr,flash``:
@ -387,10 +407,28 @@ Flashing
Here is an example for the :zephyr:code-sample:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk//qspi
:goals: flash
.. tabs::
.. group-tab:: i.MX RT1060 Rev A
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@A//qspi
:goals: flash
.. group-tab:: i.MX RT1060 Rev B
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@B//qspi
:goals: flash
.. group-tab:: i.MX RT1060 Rev C (default)
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@C//qspi
:goals: flash
Open a serial terminal, reset the board (press the SW9 button), and you should
see the following message in the terminal:
@ -405,10 +443,29 @@ Debugging
Here is an example for the :zephyr:code-sample:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk//qspi
:goals: debug
.. tabs::
.. group-tab:: i.MX RT1060 Rev A
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@A//qspi
:goals: debug
.. group-tab:: i.MX RT1060 Rev B
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@B//qspi
:goals: debug
.. group-tab:: i.MX RT1060 Rev C (default)
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt1060_evk@C//qspi
:goals: debug
Open a serial terminal, step through the application in your debugger, and you
should see the following message in the terminal:

View File

@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#
identifier: mimxrt1060_evk/mimxrt1062/qspi
identifier: mimxrt1060_evk@A/mimxrt1062/qspi
name: NXP MIMXRT1060-EVK
type: mcu
arch: arm

View File

@ -14,20 +14,20 @@ toolchain:
ram: 32768
flash: 8192
supported:
- adc
- arduino_gpio
- arduino_i2c
- arduino_serial
- arduino_spi
- can
- counter
- display
- dma
- gpio
- i2c
- netif:eth
- sdhc
- spi
- usb_device
- dma
- can
- usbd
- watchdog
- adc
vendor: nxp

View File

@ -0,0 +1,15 @@
/*
* Copyright (c) 2022, Whisper.ai
*
* SPDX-License-Identifier: Apache-2.0
*/
/* FLEXPWM not routed to LED on this EVK */
&flexpwm2_pwm3 {
status = "disabled";
};
&green_led {
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
label = "User LED1";
};

View File

@ -0,0 +1,34 @@
#
# Copyright (c) 2022, Whisper.ai
#
# SPDX-License-Identifier: Apache-2.0
#
identifier: mimxrt1060_evk@C/mimxrt1062/qspi
name: NXP MIMXRT1060-EVKC
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
- xtools
ram: 32768
flash: 8192
supported:
- adc
- arduino_gpio
- arduino_i2c
- arduino_serial
- arduino_spi
- can
- counter
- display
- dma
- gpio
- i2c
- netif:eth
- sdhc
- spi
- usbd
- watchdog
vendor: nxp

View File

@ -17,12 +17,15 @@ tests:
platform_allow:
- mimxrt1020_evk
- mimxrt1050_evk/mimxrt1052/hyperflash
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@A/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
- frdm_k64f
tags: bluetooth
extra_args: SHIELD=frdm_kw41z
integration_platforms:
- mimxrt1020_evk
- mimxrt1060_evk/mimxrt1062/qspi
sample.bluetooth.peripheral_ht.nxp:
# Disabling monolithic since CI environment doesn't use blobs
build_only: true

View File

@ -6,7 +6,8 @@ tests:
sample.boards.mimxrt1060_evk.system_off:
build_only: true
platform_allow:
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@A/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
integration_platforms:
- mimxrt1060_evk/mimxrt1062/qspi

View File

@ -0,0 +1,25 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2021 NXP
*/
/ {
zephyr,user {
/* adjust channel number according to pinmux in board.dts */
io-channels = <&adc1 0>;
};
};
&adc1 {
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
};

View File

@ -61,7 +61,9 @@ tests:
sample.display.rk043fn02h_ct:
platform_allow:
- mimxrt1064_evk
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@A/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
- mimxrt1050_evk/mimxrt1052/hyperflash
- mimxrt1040_evk
integration_platforms:

View File

@ -88,7 +88,7 @@ tests:
samples.subsys.display.lvgl.rk043fn02h_ct:
platform_allow:
- mimxrt1064_evk
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
- mimxrt1050_evk/mimxrt1052/hyperflash
- mimxrt1040_evk
integration_platforms:

View File

@ -8,7 +8,9 @@ common:
- mimxrt1010_evk
- mimxrt1020_evk
- mimxrt1015_evk
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@A/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
- sam4l_ek
- mimxrt1050_evk/mimxrt1052/hyperflash
- mimxrt1050_evk/mimxrt1052/qspi

View File

@ -21,7 +21,6 @@ tests:
- frdm_k64f
- stm32f723e_disco
- nucleo_f413zh
- mimxrt685_evk/mimxrt685s/cm33
- mimxrt1060_evk/mimxrt1062/qspi
extra_args:
- CONF_FILE="usbd_next_prj.conf"

View File

@ -0,0 +1,22 @@
/*
* Copyright 2023 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
chosen {
zephyr,bt-hci = &bt_hci_uart;
};
};
&lpuart3 {
status = "okay";
current-speed = <3000000>;
hw-flow-control;
bt_hci_uart: bt_hci_uart {
compatible = "zephyr,bt-hci-uart";
status = "okay";
};
};

View File

@ -0,0 +1,34 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2023 Benjamin Björnsson <benjamin.bjornsson@gmail.com>
*/
#include <zephyr/dt-bindings/adc/mcux-lpadc.h>
/ {
zephyr,user {
io-channels = <&adc1 0>, <&adc1 1>;
};
};
&adc1 {
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
channel@1 {
reg = <1>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
};

View File

@ -0,0 +1,25 @@
/*
* Copyright 2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
&pit0_channel0 {
status = "okay";
};
&pit0_channel1 {
status = "okay";
};
/* channel 2 disabled to test disabled channel not breaking things */
&pit0_channel3 {
status = "okay";
};
&qtmr1_timer0 {
status = "okay";
primary-source = "kQTMR_ClockDivide_128";
mode = "kQTMR_PriSrcRiseEdge";
};

View File

@ -0,0 +1,14 @@
/*
* Copyright (c) 2022 Kumar Gala <galak@kernel.org>
* Copyright (c) 2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h>
&dtcm {
zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>;
};
tst_dma0: &edma0 { };

View File

@ -0,0 +1,7 @@
/*
* Copyright (c) 2022 Kumar Gala <galak@kernel.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
dma0: &edma0 { };

View File

@ -0,0 +1,3 @@
CONFIG_CODE_DATA_RELOCATION=y
CONFIG_MEM_ATTR_HEAP=y
CONFIG_DMA_LOOP_TRANSFER_RELOCATE_SECTION="ITCM"

View File

@ -0,0 +1,14 @@
/*
* Copyright (c) 2022 Kumar Gala <galak@kernel.org>
* Copyright (c) 2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h>
&dtcm {
zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>;
};
tst_dma0: &edma0 { };

View File

@ -0,0 +1,11 @@
/*
* Copyright (c) 2022 Kumar Gala <galak@kernel.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
aliases {
dma0 = &edma0;
};
};

View File

@ -0,0 +1,16 @@
/*
* Copyright (c) 2024 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
/* loopback with arduino header D0 and D1 */
/ {
resources {
compatible = "test-gpio-basic-api";
status = "okay";
out-gpios = <&arduino_header 6 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL | GPIO_PULL_UP)>;
in-gpios = <&arduino_header 7 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL | GPIO_PULL_UP)>;
};
};

View File

@ -56,8 +56,9 @@ tests:
- mimxrt595_evk/mimxrt595s/cm33
- mimxrt1020_evk
- mimxrt1040_evk
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@A/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk@C/mimxrt1062/qspi
- lpcxpresso55s69/lpc55s69/cpu0
- lpcxpresso55s36
drivers.gpio.2pin_arduino_customized:
@ -71,7 +72,6 @@ tests:
- mimxrt1020_evk
- mimxrt1040_evk
- mimxrt1060_evk/mimxrt1062/qspi
- mimxrt1060_evk@B/mimxrt1062/qspi
- lpcxpresso55s69/lpc55s69/cpu0
- lpcxpresso55s36
- nucleo_wb09ke

View File

@ -0,0 +1 @@
CONFIG_I2C_VIRTUAL=n

View File

@ -0,0 +1,41 @@
/*
* Copyright 2023 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
&pinctrl {
pinmux_lpi2c3: pinmux_lpi2c3 {
group0 {
pinmux = <&iomuxc_gpio_ad_b1_06_lpi2c3_sda>,
<&iomuxc_gpio_ad_b1_07_lpi2c3_scl>;
drive-strength = "r0-6";
drive-open-drain;
slew-rate = "slow";
nxp,speed = "100-mhz";
input-enable;
};
};
};
/* To test this sample, connect J22.2 <-> J24.9 and J22.1 <-> J24.10 */
&lpi2c1 {
status = "okay";
eeprom0: eeprom@54 {
compatible = "zephyr,i2c-target-eeprom";
reg = <0x54>;
size = <256>;
};
};
&lpi2c3 {
status = "okay";
pinctrl-0 = <&pinmux_lpi2c3>;
pinctrl-names = "default";
eeprom1: eeprom@56 {
compatible = "zephyr,i2c-target-eeprom";
reg = <0x56>;
size = <256>;
};
};

View File

@ -0,0 +1,25 @@
/*
* Copyright 2023 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* Enable PWM outputs on J24 pin 3 and J22 pin 6. These outputs are not used
* by the test, but can be tested using the PWM shell.
*/
/ {
aliases {
pwm-0 = &flexpwm1_pwm0;
pwm-1 = &flexpwm1_pwm3;
};
};
&flexpwm1_pwm3 {
status = "okay";
};
&flexpwm1_pwm0 {
status = "okay";
};

View File

@ -0,0 +1,7 @@
#
# Copyright (c) 2021, NXP
#
# SPDX-License-Identifier: Apache-2.0
#
CONFIG_SPI_MCUX_LPSPI_DMA=y
CONFIG_SPI_ASYNC=n

View File

@ -0,0 +1,18 @@
/*
* Copyright (c) 2022 Kumar Gala <galak@kernel.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
&lpspi1 {
slow@0 {
compatible = "test-spi-loopback-slow";
reg = <0>;
spi-max-frequency = <500000>;
};
fast@0 {
compatible = "test-spi-loopback-fast";
reg = <0>;
spi-max-frequency = <16000000>;
};
};

View File

@ -0,0 +1,61 @@
/*
* Copyright (c) 2024 Navimatix GmbH
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/gpio/gpio.h>
/ {
zephyr,user {
stepper-motors = <&drv8424 0>;
};
};
&lpi2c1 {
status = "okay";
mikroe_stepper_gpios: mikroe_stepper_ctrl_tca9538a@70 {
status = "okay";
compatible = "ti,tca9538";
reg = <0x70>;
gpio-controller;
ngpios = <8>;
#gpio-cells = <2>;
gpio-reserved-ranges = <7 1>;
gpio-line-names =
"M0",
"M1",
"DEC0",
"DEC1",
"TOFF",
"STP",
"DIR";
};
};
/ {
drv8424: drv8424 {
status = "okay";
compatible = "ti,drv8424";
dir-gpios = <&arduino_header 9 0>; /* D3 */
step-gpios = <&arduino_header 10 0>; /* D4 */
sleep-gpios = <&arduino_header 8 GPIO_ACTIVE_LOW>; /* D2 */
en-gpios = <&arduino_header 11 0>; /* D5 */
m0-gpios = <&mikroe_stepper_gpios 0 0>;
m1-gpios = <&mikroe_stepper_gpios 1 0>;
counter = <&pit0_channel0>;
#address-cells = <1>;
#size-cells = <0>;
#stepper-motor-cells = <0>;
};
};
&pit0_channel0 {
status = "okay";
};

View File

@ -10,9 +10,9 @@ tests:
- drv8424
platform_allow:
- nucleo_f767zi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk/mimxrt1062/qspi
- native_sim
integration_platforms:
- nucleo_f767zi
- mimxrt1060_evk@B/mimxrt1062/qspi
- mimxrt1060_evk/mimxrt1062/qspi
- native_sim

View File

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: Apache-2.0 */
dut: &lpuart3 {
status = "okay";
current-speed = <115200>;
nxp,loopback;
};

View File

@ -0,0 +1,34 @@
/*
* Copyright (c) 2021 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
&is25wp064 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 DT_SIZE_K(128)>;
};
slot0_partition: partition@20000 {
label = "image-0";
reg = <0x00020000 (DT_SIZE_M(3) + DT_SIZE_K(8))>;
};
large_partition: partition@322000 {
label = "large";
reg = <0x00322000 DT_SIZE_M(3)>;
};
medium_partition: partition@622000 {
label = "medium";
reg = <0x00622000 DT_SIZE_K(960)>;
};
small_partition: partition@712000 {
label = "small";
reg = <0x00712000 DT_SIZE_K(64)>;
};
};
};

View File

@ -0,0 +1,34 @@
/*
* Copyright (c) 2021 NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
&is25wp064 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 DT_SIZE_K(128)>;
};
slot0_partition: partition@20000 {
label = "image-0";
reg = <0x00020000 (DT_SIZE_M(3) + DT_SIZE_K(8))>;
};
large_partition: partition@322000 {
label = "large";
reg = <0x00322000 DT_SIZE_M(3)>;
};
medium_partition: partition@622000 {
label = "medium";
reg = <0x00622000 DT_SIZE_K(960)>;
};
small_partition: partition@712000 {
label = "small";
reg = <0x00712000 DT_SIZE_K(64)>;
};
};
};