From 4e6ac9324bbac1d56b19bf81d2a31ef15ff2f4c2 Mon Sep 17 00:00:00 2001 From: Daniel DeGrasse Date: Mon, 11 Oct 2021 17:03:00 -0500 Subject: [PATCH] boards: mimxrt1010_evk: Added ADC support to RT1010 Added ADC support to RT1010 evaluation board. ADC channels 1 and 2 are exposed as pins 10 and 12 of J26. Signed-off-by: Daniel DeGrasse --- boards/arm/mimxrt1010_evk/doc/index.rst | 6 ++++++ boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts | 4 ++++ boards/arm/mimxrt1010_evk/mimxrt1010_evk.yaml | 1 + boards/arm/mimxrt1010_evk/pinmux.c | 13 +++++++++++++ samples/drivers/adc/boards/mimxrt1010_evk.overlay | 12 ++++++++++++ tests/drivers/adc/adc_api/src/test_adc.c | 3 ++- 6 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 samples/drivers/adc/boards/mimxrt1010_evk.overlay diff --git a/boards/arm/mimxrt1010_evk/doc/index.rst b/boards/arm/mimxrt1010_evk/doc/index.rst index 07560400d8a..a74e2c9f5c0 100644 --- a/boards/arm/mimxrt1010_evk/doc/index.rst +++ b/boards/arm/mimxrt1010_evk/doc/index.rst @@ -76,6 +76,8 @@ features: +-----------+------------+-------------------------------------+ | USB | on-chip | USB device | +-----------+------------+-------------------------------------+ +| ADC | on-chip | adc | ++-----------+------------+-------------------------------------+ The default configuration can be found in the defconfig file: ``boards/arm/mimxrt1010_evk/mimxrt1010_evk_defconfig`` @@ -110,6 +112,10 @@ The MIMXRT1010 SoC has five pairs of pinmux/gpio controllers. +---------------+-----------------+---------------------------+ | GPIO_AD_06 | LPSPI1_SCK | SPI | +---------------+-----------------+---------------------------+ +| GPIO_AD_01 | ADC | ADC1 Channel 1 | ++---------------+-----------------+---------------------------+ +| GPIO_AD_02 | ADC | ADC1 Channel 2 | ++---------------+-----------------+---------------------------+ System Clock ============ diff --git a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts index e8dc61a2879..3e443d7b55a 100644 --- a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts +++ b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts @@ -72,3 +72,7 @@ arduino_serial: &lpuart1 {}; zephyr_udc0: &usb1 { status = "okay"; }; + +&adc1 { + status = "okay"; +}; diff --git a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.yaml b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.yaml index ae69c07cf1b..cb379dd0603 100644 --- a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.yaml +++ b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.yaml @@ -20,3 +20,4 @@ supported: - counter - usb_device - spi + - adc diff --git a/boards/arm/mimxrt1010_evk/pinmux.c b/boards/arm/mimxrt1010_evk/pinmux.c index c7d652115a7..89417e99dc0 100644 --- a/boards/arm/mimxrt1010_evk/pinmux.c +++ b/boards/arm/mimxrt1010_evk/pinmux.c @@ -101,6 +101,19 @@ static int mimxrt1010_evk_init(const struct device *dev) IOMUXC_SW_PAD_CTL_PAD_DSE(4)); #endif +#if DT_NODE_HAS_STATUS(DT_NODELABEL(adc1), okay) && CONFIG_ADC + /* ADC Channels 1 and 2, exposed as pins 10 and 12 on J26 of EVK */ + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_01_GPIOMUX_IO15, 0U); + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_02_GPIOMUX_IO16, 0U); + + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_01_GPIOMUX_IO15, + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(4)); + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_02_GPIOMUX_IO16, + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(4)); +#endif + return 0; } diff --git a/samples/drivers/adc/boards/mimxrt1010_evk.overlay b/samples/drivers/adc/boards/mimxrt1010_evk.overlay new file mode 100644 index 00000000000..25f651dc635 --- /dev/null +++ b/samples/drivers/adc/boards/mimxrt1010_evk.overlay @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * Copyright (c) 2021 NXP + */ + +/ { + zephyr,user { + /* adjust channel number according to pinmux in board.dts */ + io-channels = <&adc1 1>; + }; +}; diff --git a/tests/drivers/adc/adc_api/src/test_adc.c b/tests/drivers/adc/adc_api/src/test_adc.c index 3de3e2736d2..8771c66671a 100644 --- a/tests/drivers/adc/adc_api/src/test_adc.c +++ b/tests/drivers/adc/adc_api/src/test_adc.c @@ -299,7 +299,8 @@ defined(CONFIG_BOARD_MIMXRT1050_EVK_QSPI) || \ defined(CONFIG_BOARD_MIMXRT1064_EVK) || \ defined(CONFIG_BOARD_MIMXRT1060_EVK) || \ - defined(CONFIG_BOARD_MIMXRT1024_EVK) + defined(CONFIG_BOARD_MIMXRT1024_EVK) || \ + defined(CONFIG_BOARD_MIMXRT1010_EVK) #define ADC_DEVICE_NAME DT_LABEL(DT_INST(0, nxp_mcux_12b1msps_sar)) #define ADC_RESOLUTION 12 #define ADC_GAIN ADC_GAIN_1