From acaaa9e2c5eb073fb9768f892f233e46a284e01b Mon Sep 17 00:00:00 2001 From: Maxin John Date: Fri, 13 Oct 2023 14:12:01 +0300 Subject: [PATCH] boards: riscv: longan_nano: add adc support Add ADC support for longan nano. Tested using samples/drivers/adc. Also added longan_nano.overlay and updated documentation. Signed-off-by: Maxin John --- boards/riscv/longan_nano/doc/index.rst | 3 +++ .../riscv/longan_nano/longan_nano-common.dtsi | 6 +++++ .../longan_nano/longan_nano-pinctrl.dtsi | 7 ++++++ .../drivers/adc/boards/longan_nano.overlay | 23 +++++++++++++++++++ .../adc/boards/longan_nano_lite.overlay | 23 +++++++++++++++++++ samples/drivers/adc/sample.yaml | 2 ++ 6 files changed, 64 insertions(+) create mode 100644 samples/drivers/adc/boards/longan_nano.overlay create mode 100644 samples/drivers/adc/boards/longan_nano_lite.overlay diff --git a/boards/riscv/longan_nano/doc/index.rst b/boards/riscv/longan_nano/doc/index.rst index c31abb6ec8f..b62d91c3130 100644 --- a/boards/riscv/longan_nano/doc/index.rst +++ b/boards/riscv/longan_nano/doc/index.rst @@ -71,6 +71,9 @@ The board configuration supports the following hardware features: * - DAC - :kconfig:option:`CONFIG_DAC` - :dtcompatible:`gd,gd32-dac` + * - ADC + - :kconfig:option:`CONFIG_ADC` + - :dtcompatible:`gd,gd32-adc` Serial Port =========== diff --git a/boards/riscv/longan_nano/longan_nano-common.dtsi b/boards/riscv/longan_nano/longan_nano-common.dtsi index 71f787b2df6..6d272ddd53d 100644 --- a/boards/riscv/longan_nano/longan_nano-common.dtsi +++ b/boards/riscv/longan_nano/longan_nano-common.dtsi @@ -165,6 +165,12 @@ }; }; +&adc0 { + status = "okay"; + pinctrl-0 = <&adc0_default>; + pinctrl-names = "default"; +}; + &fwdgt { status = "okay"; }; diff --git a/boards/riscv/longan_nano/longan_nano-pinctrl.dtsi b/boards/riscv/longan_nano/longan_nano-pinctrl.dtsi index 41dd3538534..93d8abc02bd 100644 --- a/boards/riscv/longan_nano/longan_nano-pinctrl.dtsi +++ b/boards/riscv/longan_nano/longan_nano-pinctrl.dtsi @@ -37,4 +37,11 @@ , ; }; }; + + adc0_default: adc0_default { + group1 { + pinmux = ; + }; + }; + }; diff --git a/samples/drivers/adc/boards/longan_nano.overlay b/samples/drivers/adc/boards/longan_nano.overlay new file mode 100644 index 00000000000..390534e74ff --- /dev/null +++ b/samples/drivers/adc/boards/longan_nano.overlay @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + /* adjust channel number according to pinmux in board.dts */ + io-channels = <&adc0 0>; + }; +}; + +&adc0 { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = ; + zephyr,resolution = <12>; + }; +}; diff --git a/samples/drivers/adc/boards/longan_nano_lite.overlay b/samples/drivers/adc/boards/longan_nano_lite.overlay new file mode 100644 index 00000000000..390534e74ff --- /dev/null +++ b/samples/drivers/adc/boards/longan_nano_lite.overlay @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + /* adjust channel number according to pinmux in board.dts */ + io-channels = <&adc0 0>; + }; +}; + +&adc0 { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = ; + zephyr,resolution = <12>; + }; +}; diff --git a/samples/drivers/adc/sample.yaml b/samples/drivers/adc/sample.yaml index 46b88fa6040..0af996a8bab 100644 --- a/samples/drivers/adc/sample.yaml +++ b/samples/drivers/adc/sample.yaml @@ -26,6 +26,8 @@ tests: - gd32l233r_eval - lpcxpresso55s36 - mr_canhubk3 + - longan_nano + - longan_nano_lite integration_platforms: - nucleo_l073rz - nrf52840dk_nrf52840