Browse Source

dts: atmel: add adc node to due

Add ADC0 node and associated pincontrols
in sam3x and Arduino Due device trees.

Signed-off-by: Eve Redero <eve.redero@gmail.com>
pull/88739/head
Eve Redero 3 months ago committed by Benjamin Cabé
parent
commit
cb8b1cdc74
  1. 7
      boards/arduino/due/arduino_due-pinctrl.dtsi
  2. 1
      boards/arduino/due/arduino_due.yaml
  3. 12
      dts/arm/atmel/sam3x.dtsi
  4. 43
      samples/drivers/adc/adc_sequence/boards/arduino_due.overlay
  5. 43
      tests/drivers/adc/adc_api/boards/arduino_due.overlay

7
boards/arduino/due/arduino_due-pinctrl.dtsi

@ -67,4 +67,11 @@ @@ -67,4 +67,11 @@
<PC5B_PWM_PWMH1>;
};
};
adc0_default: adc0_default {
group1 {
pinmux = <PA24X_ADC_AD6>,
<PA16X_ADC_AD7>;
};
};
};

1
boards/arduino/due/arduino_due.yaml

@ -8,6 +8,7 @@ toolchain: @@ -8,6 +8,7 @@ toolchain:
flash: 512
ram: 96
supported:
- adc
- arduino_i2c
- gpio
- watchdog

12
dts/arm/atmel/sam3x.dtsi

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
*/
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/clock/atmel_sam_pmc.h>
@ -258,6 +259,17 @@ @@ -258,6 +259,17 @@
status = "disabled";
};
adc0: adc@400c0000 {
compatible = "atmel,sam-adc";
reg = <0x400c0000 0x4000>;
interrupts = <37 1>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
status = "disabled";
};
pwm0: pwm@40094000 {
compatible = "atmel,sam-pwm";
reg = <0x40094000 0x4000>;

43
samples/drivers/adc/adc_sequence/boards/arduino_due.overlay

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
/*
* Copyright (c) 2024 Centro de Inovacao EDGE
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
aliases {
adc0 = &adc0;
};
};
&adc0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-0 = <&adc0_default>;
pinctrl-names = "default";
prescaler = <9>;
startup-time = <64>;
settling-time = <3>;
tracking-time = <2>;
/* External ADC(+) */
channel@6 { // Connector A1
reg = <6>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_EXTERNAL0";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,input-positive = <6>;
zephyr,vref-mv = <3300>;
};
channel@7 { // Connector A0
reg = <7>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_EXTERNAL0";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,input-positive = <7>;
zephyr,vref-mv = <3300>;
};
};

43
tests/drivers/adc/adc_api/boards/arduino_due.overlay

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
/*
* Copyright (c) 2024 Centro de Inovacao EDGE
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
zephyr,user {
io-channels = <&adc0 0>, <&adc0 1>;
};
};
&adc0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-0 = <&adc0_default>;
pinctrl-names = "default";
prescaler = <9>;
startup-time = <64>;
settling-time = <3>;
tracking-time = <2>;
/* External ADC(+) */
channel@6 { // Connector A1
reg = <6>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_EXTERNAL0";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,input-positive = <6>;
zephyr,vref-mv = <3300>;
};
channel@7 { // Connector A0
reg = <7>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_EXTERNAL0";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,input-positive = <7>;
zephyr,vref-mv = <3300>;
};
};
Loading…
Cancel
Save