diff --git a/boards/ti/am62l_evm/am62l_evm_am62l3_a53-pinctrl.dtsi b/boards/ti/am62l_evm/am62l_evm_am62l3_a53-pinctrl.dtsi index be2e7b062750..e2ee98b2316e 100644 --- a/boards/ti/am62l_evm/am62l_evm_am62l3_a53-pinctrl.dtsi +++ b/boards/ti/am62l_evm/am62l_evm_am62l3_a53-pinctrl.dtsi @@ -192,4 +192,12 @@ main_i2c1_sda: i2c1_sda_default { pinmux = ; /* (A6) I2C1_SDA */ }; + + adc0_ext_trigger0: adc0-ext-trigger0-default { + pinmux = ; /* (D16) ADC_EXT_TRIGGER0 */ + }; + + adc0_ext_trigger1: adc0-ext-trigger1-default { + pinmux = ; /* (M22) ADC_EXT_TRIGGER1 */ + }; }; diff --git a/boards/ti/am62l_evm/am62l_evm_am62l3_a53.dts b/boards/ti/am62l_evm/am62l_evm_am62l3_a53.dts index ebe33e28194d..fc6635bd97c7 100644 --- a/boards/ti/am62l_evm/am62l_evm_am62l3_a53.dts +++ b/boards/ti/am62l_evm/am62l_evm_am62l3_a53.dts @@ -34,6 +34,10 @@ }; }; + aliases { + adc0 = &main_adc0; + }; + cpus { cpu@0 { status = "okay"; @@ -208,3 +212,55 @@ &main_rti0 { status = "okay"; }; + +&main_adc0 { + ti,fifo = <0>; + pinctrl-0 = <&adc0_ext_trigger0>, + <&adc0_ext_trigger1>; + pinctrl-names = "default"; + status = "okay"; + + channel@0 { + reg = <0>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_VDD_1"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + zephyr,vref-mv = <1800>; + }; + + channel@1 { + reg = <1>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_VDD_1"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + zephyr,vref-mv = <1800>; + }; + + channel@2 { + reg = <2>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_VDD_1"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + zephyr,vref-mv = <1800>; + }; + + channel@3 { + reg = <3>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_VDD_1"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + zephyr,vref-mv = <1800>; + }; +}; diff --git a/boards/ti/am62l_evm/am62l_evm_am62l3_a53.yaml b/boards/ti/am62l_evm/am62l_evm_am62l3_a53.yaml index 6d469560df03..526e9a3b6cde 100644 --- a/boards/ti/am62l_evm/am62l_evm_am62l3_a53.yaml +++ b/boards/ti/am62l_evm/am62l_evm_am62l3_a53.yaml @@ -7,6 +7,7 @@ toolchain: - cross-compile ram: 2048 supported: + - adc - uart testing: ignore_tags: diff --git a/dts/arm64/ti/am62l3_a53.dtsi b/dts/arm64/ti/am62l3_a53.dtsi index 60092c6b683a..86cff7ea20a4 100644 --- a/dts/arm64/ti/am62l3_a53.dtsi +++ b/dts/arm64/ti/am62l3_a53.dtsi @@ -236,3 +236,8 @@ interrupts = ; interrupt-parent = <&gic>; }; + +&main_adc0 { + interrupts = ; + interrupt-parent = <&gic>; +}; diff --git a/dts/vendor/ti/am62l-main.dtsi b/dts/vendor/ti/am62l-main.dtsi index 3c49750bd0b9..cc76ae00d7fa 100644 --- a/dts/vendor/ti/am62l-main.dtsi +++ b/dts/vendor/ti/am62l-main.dtsi @@ -507,4 +507,15 @@ power-domains = <&main_timer3_pd>; status = "disabled"; }; + + main_adc0: adc@28001000 { + compatible = "ti,am335x-adc"; + reg = <0x28001000 DT_SIZE_K(1)>; + status = "disabled"; + power-domains = <&main_adc0_pd>; + clocks = <&scmi_clk 4>; + #io-channel-cells = <1>; + #address-cells = <1>; + #size-cells = <0>; + }; }; diff --git a/dts/vendor/ti/am62l_power_domains.dtsi b/dts/vendor/ti/am62l_power_domains.dtsi index e77292ebdce9..843f6b6853b4 100644 --- a/dts/vendor/ti/am62l_power_domains.dtsi +++ b/dts/vendor/ti/am62l_power_domains.dtsi @@ -8,6 +8,12 @@ #address-cells = <1>; #size-cells = <0>; + main_adc0_pd: power-domain@0 { + compatible = "arm,scmi-power-domain"; + reg = <0>; + #power-domain-cells = <0>; + }; + main_uart0_pd: power-domain@59 { compatible = "arm,scmi-power-domain"; reg = <89>; diff --git a/samples/drivers/adc/adc_dt/boards/am62l_evm_am62l3_a53.overlay b/samples/drivers/adc/adc_dt/boards/am62l_evm_am62l3_a53.overlay new file mode 100644 index 000000000000..c2c2095209fd --- /dev/null +++ b/samples/drivers/adc/adc_dt/boards/am62l_evm_am62l3_a53.overlay @@ -0,0 +1,11 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * Copyright (c) 2026 Texas Instruments + */ + +/ { + zephyr,user { + io-channels = <&main_adc0 0>, <&main_adc0 1>, <&main_adc0 2>, <&main_adc0 3>; + }; +}; diff --git a/soc/ti/k3/am6x/Kconfig.defconfig b/soc/ti/k3/am6x/Kconfig.defconfig index 6ea4ff65249d..87ed4c9ea25b 100644 --- a/soc/ti/k3/am6x/Kconfig.defconfig +++ b/soc/ti/k3/am6x/Kconfig.defconfig @@ -17,7 +17,7 @@ config FLASH_BASE_ADDRESS config NUM_IRQS default 64 if SOC_SERIES_AM6X_M4 - default 280 if SOC_SERIES_AM6X_A53 + default 992 if SOC_SERIES_AM6X_A53 default 512 if SOC_SERIES_AM6X_R5 config SYS_CLOCK_HW_CYCLES_PER_SEC