From 813a74d41543ae5824c35ec429ac0c9049bdd7cd Mon Sep 17 00:00:00 2001 From: Daniel DeGrasse Date: Tue, 12 Oct 2021 10:01:41 -0500 Subject: [PATCH] boards: mimxrt1020_evk: Enable ADC on RT1020 EVK Enables ADC1 on the RT1020 evaluation board. Channels 10 and 11 of this ADC are exposed as pins 1 and 2 of J18 on the evk. Signed-off-by: Daniel DeGrasse --- boards/arm/mimxrt1020_evk/doc/index.rst | 6 ++++++ boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts | 4 ++++ boards/arm/mimxrt1020_evk/mimxrt1020_evk.yaml | 1 + boards/arm/mimxrt1020_evk/pinmux.c | 15 +++++++++++++++ samples/drivers/adc/boards/mimxrt1020_evk.overlay | 12 ++++++++++++ tests/drivers/adc/adc_api/src/test_adc.c | 3 ++- 6 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 samples/drivers/adc/boards/mimxrt1020_evk.overlay diff --git a/boards/arm/mimxrt1020_evk/doc/index.rst b/boards/arm/mimxrt1020_evk/doc/index.rst index 1533c20543e..bcfa04a0b94 100644 --- a/boards/arm/mimxrt1020_evk/doc/index.rst +++ b/boards/arm/mimxrt1020_evk/doc/index.rst @@ -90,6 +90,8 @@ features: +-----------+------------+-------------------------------------+ | USB | on-chip | USB device | +-----------+------------+-------------------------------------+ +| ADC | on-chip | adc | ++-----------+------------+-------------------------------------+ The default configuration can be found in the defconfig file: ``boards/arm/mimxrt1020_evk/mimxrt1020_evk_defconfig`` @@ -164,6 +166,10 @@ The MIMXRT1020 SoC has five pairs of pinmux/gpio controllers. +---------------+-----------------+---------------------------+ | GPIO_SD_B0_06 | USDHC1_CD_B | SD Card | +---------------+-----------------+---------------------------+ +| GPIO_AD_B1_10 | ADC | ADC1 Channel 10 | ++---------------+-----------------+---------------------------+ +| GPIO_AD_B1_11 | ADC | ADC1 Channel 11 | ++---------------+-----------------+---------------------------+ System Clock ============ diff --git a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts index 87e9a183ab4..ff8efcdfa24 100644 --- a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts +++ b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts @@ -158,3 +158,7 @@ zephyr_udc0: &usb1 { cd-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; no-1-8-v; }; + +&adc1 { + status = "okay"; +}; diff --git a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.yaml b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.yaml index a45f4910a3f..40cd1d88ec5 100644 --- a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.yaml +++ b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.yaml @@ -23,3 +23,4 @@ supported: - netif:eth - spi - usb_device + - adc diff --git a/boards/arm/mimxrt1020_evk/pinmux.c b/boards/arm/mimxrt1020_evk/pinmux.c index 67b352f2dae..874639de238 100644 --- a/boards/arm/mimxrt1020_evk/pinmux.c +++ b/boards/arm/mimxrt1020_evk/pinmux.c @@ -262,6 +262,21 @@ static int mimxrt1020_evk_init(const struct device *dev) imxrt_usdhc_pinmux_cb_register(mimxrt1020_evk_usdhc_pinmux); #endif +#if DT_NODE_HAS_STATUS(DT_NODELABEL(adc1), okay) && CONFIG_ADC + /* ADC1 Channel 10 and 11 are on pins 1 and 2 of J18 */ + /* ADC1 Channel 10 */ + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_10_GPIO1_IO26, 0U); + /* ADC1 Channel 11 */ + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_11_GPIO1_IO27, 0U); + + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_10_GPIO1_IO26, + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(6)); + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_11_GPIO1_IO27, + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(6)); +#endif + return 0; } diff --git a/samples/drivers/adc/boards/mimxrt1020_evk.overlay b/samples/drivers/adc/boards/mimxrt1020_evk.overlay new file mode 100644 index 00000000000..cecde8e2cb0 --- /dev/null +++ b/samples/drivers/adc/boards/mimxrt1020_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 10>; + }; +}; diff --git a/tests/drivers/adc/adc_api/src/test_adc.c b/tests/drivers/adc/adc_api/src/test_adc.c index 02d2d7e59be..efdbb5f1b26 100644 --- a/tests/drivers/adc/adc_api/src/test_adc.c +++ b/tests/drivers/adc/adc_api/src/test_adc.c @@ -301,7 +301,8 @@ defined(CONFIG_BOARD_MIMXRT1060_EVK) || \ defined(CONFIG_BOARD_MIMXRT1024_EVK) || \ defined(CONFIG_BOARD_MIMXRT1010_EVK) || \ - defined(CONFIG_BOARD_MIMXRT1015_EVK) + defined(CONFIG_BOARD_MIMXRT1015_EVK) || \ + defined(CONFIG_BOARD_MIMXRT1020_EVK) #define ADC_DEVICE_NAME DT_LABEL(DT_INST(0, nxp_mcux_12b1msps_sar)) #define ADC_RESOLUTION 12 #define ADC_GAIN ADC_GAIN_1