18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml#" 58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: STMicroelectronics STM32 ADC bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci STM32 ADC is a successive approximation analog-to-digital converter. 118c2ecf20Sopenharmony_ci It has several multiplexed input channels. Conversions can be performed 128c2ecf20Sopenharmony_ci in single, continuous, scan or discontinuous mode. Result of the ADC is 138c2ecf20Sopenharmony_ci stored in a left-aligned or right-aligned 32-bit data register. 148c2ecf20Sopenharmony_ci Conversions can be launched in software or using hardware triggers. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci The analog watchdog feature allows the application to detect if the input 178c2ecf20Sopenharmony_ci voltage goes beyond the user-defined, higher or lower thresholds. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci Each STM32 ADC block can have up to 3 ADC instances. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cimaintainers: 228c2ecf20Sopenharmony_ci - Fabrice Gasnier <fabrice.gasnier@st.com> 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciproperties: 258c2ecf20Sopenharmony_ci compatible: 268c2ecf20Sopenharmony_ci enum: 278c2ecf20Sopenharmony_ci - st,stm32f4-adc-core 288c2ecf20Sopenharmony_ci - st,stm32h7-adc-core 298c2ecf20Sopenharmony_ci - st,stm32mp1-adc-core 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci reg: 328c2ecf20Sopenharmony_ci maxItems: 1 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci interrupts: 358c2ecf20Sopenharmony_ci description: | 368c2ecf20Sopenharmony_ci One or more interrupts for ADC block, depending on part used: 378c2ecf20Sopenharmony_ci - stm32f4 and stm32h7 share a common ADC interrupt line. 388c2ecf20Sopenharmony_ci - stm32mp1 has two separate interrupt lines, one for each ADC within 398c2ecf20Sopenharmony_ci ADC block. 408c2ecf20Sopenharmony_ci minItems: 1 418c2ecf20Sopenharmony_ci maxItems: 2 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci clocks: 448c2ecf20Sopenharmony_ci description: | 458c2ecf20Sopenharmony_ci Core can use up to two clocks, depending on part used: 468c2ecf20Sopenharmony_ci - "adc" clock: for the analog circuitry, common to all ADCs. 478c2ecf20Sopenharmony_ci It's required on stm32f4. 488c2ecf20Sopenharmony_ci It's optional on stm32h7 and stm32mp1. 498c2ecf20Sopenharmony_ci - "bus" clock: for registers access, common to all ADCs. 508c2ecf20Sopenharmony_ci It's not present on stm32f4. 518c2ecf20Sopenharmony_ci It's required on stm32h7 and stm32mp1. 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci clock-names: true 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci st,max-clk-rate-hz: 568c2ecf20Sopenharmony_ci description: 578c2ecf20Sopenharmony_ci Allow to specify desired max clock rate used by analog circuitry. 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci vdda-supply: 608c2ecf20Sopenharmony_ci description: Phandle to the vdda input analog voltage. 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci vref-supply: 638c2ecf20Sopenharmony_ci description: Phandle to the vref input analog reference voltage. 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci booster-supply: 668c2ecf20Sopenharmony_ci description: 678c2ecf20Sopenharmony_ci Phandle to the embedded booster regulator that can be used to supply ADC 688c2ecf20Sopenharmony_ci analog input switches on stm32h7 and stm32mp1. 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci vdd-supply: 718c2ecf20Sopenharmony_ci description: 728c2ecf20Sopenharmony_ci Phandle to the vdd input voltage. It can be used to supply ADC analog 738c2ecf20Sopenharmony_ci input switches on stm32mp1. 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci st,syscfg: 768c2ecf20Sopenharmony_ci description: 778c2ecf20Sopenharmony_ci Phandle to system configuration controller. It can be used to control the 788c2ecf20Sopenharmony_ci analog circuitry on stm32mp1. 798c2ecf20Sopenharmony_ci $ref: "/schemas/types.yaml#/definitions/phandle-array" 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci interrupt-controller: true 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci '#interrupt-cells': 848c2ecf20Sopenharmony_ci const: 1 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci '#address-cells': 878c2ecf20Sopenharmony_ci const: 1 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci '#size-cells': 908c2ecf20Sopenharmony_ci const: 0 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciallOf: 938c2ecf20Sopenharmony_ci - if: 948c2ecf20Sopenharmony_ci properties: 958c2ecf20Sopenharmony_ci compatible: 968c2ecf20Sopenharmony_ci contains: 978c2ecf20Sopenharmony_ci const: st,stm32f4-adc-core 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci then: 1008c2ecf20Sopenharmony_ci properties: 1018c2ecf20Sopenharmony_ci clocks: 1028c2ecf20Sopenharmony_ci maxItems: 1 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci clock-names: 1058c2ecf20Sopenharmony_ci const: adc 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci interrupts: 1088c2ecf20Sopenharmony_ci items: 1098c2ecf20Sopenharmony_ci - description: interrupt line common for all ADCs 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci st,max-clk-rate-hz: 1128c2ecf20Sopenharmony_ci minimum: 600000 1138c2ecf20Sopenharmony_ci maximum: 36000000 1148c2ecf20Sopenharmony_ci default: 36000000 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci booster-supply: false 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci vdd-supply: false 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci st,syscfg: false 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci - if: 1238c2ecf20Sopenharmony_ci properties: 1248c2ecf20Sopenharmony_ci compatible: 1258c2ecf20Sopenharmony_ci contains: 1268c2ecf20Sopenharmony_ci const: st,stm32h7-adc-core 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci then: 1298c2ecf20Sopenharmony_ci properties: 1308c2ecf20Sopenharmony_ci clocks: 1318c2ecf20Sopenharmony_ci minItems: 1 1328c2ecf20Sopenharmony_ci maxItems: 2 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci clock-names: 1358c2ecf20Sopenharmony_ci items: 1368c2ecf20Sopenharmony_ci - const: bus 1378c2ecf20Sopenharmony_ci - const: adc 1388c2ecf20Sopenharmony_ci minItems: 1 1398c2ecf20Sopenharmony_ci maxItems: 2 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci interrupts: 1428c2ecf20Sopenharmony_ci items: 1438c2ecf20Sopenharmony_ci - description: interrupt line common for all ADCs 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci st,max-clk-rate-hz: 1468c2ecf20Sopenharmony_ci minimum: 120000 1478c2ecf20Sopenharmony_ci maximum: 36000000 1488c2ecf20Sopenharmony_ci default: 36000000 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci vdd-supply: false 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci st,syscfg: false 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci - if: 1558c2ecf20Sopenharmony_ci properties: 1568c2ecf20Sopenharmony_ci compatible: 1578c2ecf20Sopenharmony_ci contains: 1588c2ecf20Sopenharmony_ci const: st,stm32mp1-adc-core 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci then: 1618c2ecf20Sopenharmony_ci properties: 1628c2ecf20Sopenharmony_ci clocks: 1638c2ecf20Sopenharmony_ci minItems: 1 1648c2ecf20Sopenharmony_ci maxItems: 2 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci clock-names: 1678c2ecf20Sopenharmony_ci items: 1688c2ecf20Sopenharmony_ci - const: bus 1698c2ecf20Sopenharmony_ci - const: adc 1708c2ecf20Sopenharmony_ci minItems: 1 1718c2ecf20Sopenharmony_ci maxItems: 2 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci interrupts: 1748c2ecf20Sopenharmony_ci items: 1758c2ecf20Sopenharmony_ci - description: interrupt line for ADC1 1768c2ecf20Sopenharmony_ci - description: interrupt line for ADC2 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci st,max-clk-rate-hz: 1798c2ecf20Sopenharmony_ci minimum: 120000 1808c2ecf20Sopenharmony_ci maximum: 36000000 1818c2ecf20Sopenharmony_ci default: 36000000 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ciadditionalProperties: false 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_cirequired: 1868c2ecf20Sopenharmony_ci - compatible 1878c2ecf20Sopenharmony_ci - reg 1888c2ecf20Sopenharmony_ci - interrupts 1898c2ecf20Sopenharmony_ci - clocks 1908c2ecf20Sopenharmony_ci - clock-names 1918c2ecf20Sopenharmony_ci - vdda-supply 1928c2ecf20Sopenharmony_ci - vref-supply 1938c2ecf20Sopenharmony_ci - interrupt-controller 1948c2ecf20Sopenharmony_ci - '#interrupt-cells' 1958c2ecf20Sopenharmony_ci - '#address-cells' 1968c2ecf20Sopenharmony_ci - '#size-cells' 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_cipatternProperties: 1998c2ecf20Sopenharmony_ci "^adc@[0-9]+$": 2008c2ecf20Sopenharmony_ci type: object 2018c2ecf20Sopenharmony_ci description: 2028c2ecf20Sopenharmony_ci An ADC block node should contain at least one subnode, representing an 2038c2ecf20Sopenharmony_ci ADC instance available on the machine. 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci properties: 2068c2ecf20Sopenharmony_ci compatible: 2078c2ecf20Sopenharmony_ci enum: 2088c2ecf20Sopenharmony_ci - st,stm32f4-adc 2098c2ecf20Sopenharmony_ci - st,stm32h7-adc 2108c2ecf20Sopenharmony_ci - st,stm32mp1-adc 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci reg: 2138c2ecf20Sopenharmony_ci description: | 2148c2ecf20Sopenharmony_ci Offset of ADC instance in ADC block. Valid values are: 2158c2ecf20Sopenharmony_ci - 0x0: ADC1 2168c2ecf20Sopenharmony_ci - 0x100: ADC2 2178c2ecf20Sopenharmony_ci - 0x200: ADC3 (stm32f4 only) 2188c2ecf20Sopenharmony_ci maxItems: 1 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci '#io-channel-cells': 2218c2ecf20Sopenharmony_ci const: 1 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci interrupts: 2248c2ecf20Sopenharmony_ci description: | 2258c2ecf20Sopenharmony_ci IRQ Line for the ADC instance. Valid values are: 2268c2ecf20Sopenharmony_ci - 0 for adc@0 2278c2ecf20Sopenharmony_ci - 1 for adc@100 2288c2ecf20Sopenharmony_ci - 2 for adc@200 (stm32f4 only) 2298c2ecf20Sopenharmony_ci maxItems: 1 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci clocks: 2328c2ecf20Sopenharmony_ci description: 2338c2ecf20Sopenharmony_ci Input clock private to this ADC instance. It's required only on 2348c2ecf20Sopenharmony_ci stm32f4, that has per instance clock input for registers access. 2358c2ecf20Sopenharmony_ci maxItems: 1 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci dmas: 2388c2ecf20Sopenharmony_ci description: RX DMA Channel 2398c2ecf20Sopenharmony_ci maxItems: 1 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci dma-names: 2428c2ecf20Sopenharmony_ci const: rx 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci assigned-resolution-bits: 2458c2ecf20Sopenharmony_ci description: | 2468c2ecf20Sopenharmony_ci Resolution (bits) to use for conversions: 2478c2ecf20Sopenharmony_ci - can be 6, 8, 10 or 12 on stm32f4 2488c2ecf20Sopenharmony_ci - can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1 2498c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci st,adc-channels: 2528c2ecf20Sopenharmony_ci description: | 2538c2ecf20Sopenharmony_ci List of single-ended channels muxed for this ADC. It can have up to: 2548c2ecf20Sopenharmony_ci - 16 channels, numbered from 0 to 15 (for in0..in15) on stm32f4 2558c2ecf20Sopenharmony_ci - 20 channels, numbered from 0 to 19 (for in0..in19) on stm32h7 and 2568c2ecf20Sopenharmony_ci stm32mp1. 2578c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci st,adc-diff-channels: 2608c2ecf20Sopenharmony_ci description: | 2618c2ecf20Sopenharmony_ci List of differential channels muxed for this ADC. Some channels can 2628c2ecf20Sopenharmony_ci be configured as differential instead of single-ended on stm32h7 and 2638c2ecf20Sopenharmony_ci on stm32mp1. Positive and negative inputs pairs are listed: 2648c2ecf20Sopenharmony_ci <vinp vinn>, <vinp vinn>,... vinp and vinn are numbered from 0 to 19. 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci Note: At least one of "st,adc-channels" or "st,adc-diff-channels" is 2678c2ecf20Sopenharmony_ci required. Both properties can be used together. Some channels can be 2688c2ecf20Sopenharmony_ci used as single-ended and some other ones as differential (mixed). But 2698c2ecf20Sopenharmony_ci channels can't be configured both as single-ended and differential. 2708c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-matrix 2718c2ecf20Sopenharmony_ci items: 2728c2ecf20Sopenharmony_ci items: 2738c2ecf20Sopenharmony_ci - description: | 2748c2ecf20Sopenharmony_ci "vinp" indicates positive input number 2758c2ecf20Sopenharmony_ci minimum: 0 2768c2ecf20Sopenharmony_ci maximum: 19 2778c2ecf20Sopenharmony_ci - description: | 2788c2ecf20Sopenharmony_ci "vinn" indicates negative input number 2798c2ecf20Sopenharmony_ci minimum: 0 2808c2ecf20Sopenharmony_ci maximum: 19 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci st,min-sample-time-nsecs: 2838c2ecf20Sopenharmony_ci description: 2848c2ecf20Sopenharmony_ci Minimum sampling time in nanoseconds. Depending on hardware (board) 2858c2ecf20Sopenharmony_ci e.g. high/low analog input source impedance, fine tune of ADC 2868c2ecf20Sopenharmony_ci sampling time may be recommended. This can be either one value or an 2878c2ecf20Sopenharmony_ci array that matches "st,adc-channels" and/or "st,adc-diff-channels" 2888c2ecf20Sopenharmony_ci list, to set sample time resp. for all channels, or independently for 2898c2ecf20Sopenharmony_ci each channel. 2908c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci allOf: 2938c2ecf20Sopenharmony_ci - if: 2948c2ecf20Sopenharmony_ci properties: 2958c2ecf20Sopenharmony_ci compatible: 2968c2ecf20Sopenharmony_ci contains: 2978c2ecf20Sopenharmony_ci const: st,stm32f4-adc 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci then: 3008c2ecf20Sopenharmony_ci properties: 3018c2ecf20Sopenharmony_ci reg: 3028c2ecf20Sopenharmony_ci enum: 3038c2ecf20Sopenharmony_ci - 0x0 3048c2ecf20Sopenharmony_ci - 0x100 3058c2ecf20Sopenharmony_ci - 0x200 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci interrupts: 3088c2ecf20Sopenharmony_ci minimum: 0 3098c2ecf20Sopenharmony_ci maximum: 2 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci assigned-resolution-bits: 3128c2ecf20Sopenharmony_ci enum: [6, 8, 10, 12] 3138c2ecf20Sopenharmony_ci default: 12 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci st,adc-channels: 3168c2ecf20Sopenharmony_ci minItems: 1 3178c2ecf20Sopenharmony_ci maxItems: 16 3188c2ecf20Sopenharmony_ci items: 3198c2ecf20Sopenharmony_ci minimum: 0 3208c2ecf20Sopenharmony_ci maximum: 15 3218c2ecf20Sopenharmony_ci 3228c2ecf20Sopenharmony_ci st,adc-diff-channels: false 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci st,min-sample-time-nsecs: 3258c2ecf20Sopenharmony_ci minItems: 1 3268c2ecf20Sopenharmony_ci maxItems: 16 3278c2ecf20Sopenharmony_ci items: 3288c2ecf20Sopenharmony_ci minimum: 80 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci required: 3318c2ecf20Sopenharmony_ci - clocks 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci - if: 3348c2ecf20Sopenharmony_ci properties: 3358c2ecf20Sopenharmony_ci compatible: 3368c2ecf20Sopenharmony_ci contains: 3378c2ecf20Sopenharmony_ci enum: 3388c2ecf20Sopenharmony_ci - st,stm32h7-adc 3398c2ecf20Sopenharmony_ci - st,stm32mp1-adc 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ci then: 3428c2ecf20Sopenharmony_ci properties: 3438c2ecf20Sopenharmony_ci reg: 3448c2ecf20Sopenharmony_ci enum: 3458c2ecf20Sopenharmony_ci - 0x0 3468c2ecf20Sopenharmony_ci - 0x100 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ci interrupts: 3498c2ecf20Sopenharmony_ci minimum: 0 3508c2ecf20Sopenharmony_ci maximum: 1 3518c2ecf20Sopenharmony_ci 3528c2ecf20Sopenharmony_ci assigned-resolution-bits: 3538c2ecf20Sopenharmony_ci enum: [8, 10, 12, 14, 16] 3548c2ecf20Sopenharmony_ci default: 16 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ci st,adc-channels: 3578c2ecf20Sopenharmony_ci minItems: 1 3588c2ecf20Sopenharmony_ci maxItems: 20 3598c2ecf20Sopenharmony_ci items: 3608c2ecf20Sopenharmony_ci minimum: 0 3618c2ecf20Sopenharmony_ci maximum: 19 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ci st,min-sample-time-nsecs: 3648c2ecf20Sopenharmony_ci minItems: 1 3658c2ecf20Sopenharmony_ci maxItems: 20 3668c2ecf20Sopenharmony_ci items: 3678c2ecf20Sopenharmony_ci minimum: 40 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci additionalProperties: false 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci anyOf: 3728c2ecf20Sopenharmony_ci - required: 3738c2ecf20Sopenharmony_ci - st,adc-channels 3748c2ecf20Sopenharmony_ci - required: 3758c2ecf20Sopenharmony_ci - st,adc-diff-channels 3768c2ecf20Sopenharmony_ci 3778c2ecf20Sopenharmony_ci required: 3788c2ecf20Sopenharmony_ci - compatible 3798c2ecf20Sopenharmony_ci - reg 3808c2ecf20Sopenharmony_ci - interrupts 3818c2ecf20Sopenharmony_ci - '#io-channel-cells' 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ciexamples: 3848c2ecf20Sopenharmony_ci - | 3858c2ecf20Sopenharmony_ci // Example 1: with stm32f429, ADC1, single-ended channel 8 3868c2ecf20Sopenharmony_ci adc123: adc@40012000 { 3878c2ecf20Sopenharmony_ci compatible = "st,stm32f4-adc-core"; 3888c2ecf20Sopenharmony_ci reg = <0x40012000 0x400>; 3898c2ecf20Sopenharmony_ci interrupts = <18>; 3908c2ecf20Sopenharmony_ci clocks = <&rcc 0 168>; 3918c2ecf20Sopenharmony_ci clock-names = "adc"; 3928c2ecf20Sopenharmony_ci st,max-clk-rate-hz = <36000000>; 3938c2ecf20Sopenharmony_ci vdda-supply = <&vdda>; 3948c2ecf20Sopenharmony_ci vref-supply = <&vref>; 3958c2ecf20Sopenharmony_ci interrupt-controller; 3968c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 3978c2ecf20Sopenharmony_ci #address-cells = <1>; 3988c2ecf20Sopenharmony_ci #size-cells = <0>; 3998c2ecf20Sopenharmony_ci adc@0 { 4008c2ecf20Sopenharmony_ci compatible = "st,stm32f4-adc"; 4018c2ecf20Sopenharmony_ci #io-channel-cells = <1>; 4028c2ecf20Sopenharmony_ci reg = <0x0>; 4038c2ecf20Sopenharmony_ci clocks = <&rcc 0 168>; 4048c2ecf20Sopenharmony_ci interrupt-parent = <&adc123>; 4058c2ecf20Sopenharmony_ci interrupts = <0>; 4068c2ecf20Sopenharmony_ci st,adc-channels = <8>; 4078c2ecf20Sopenharmony_ci dmas = <&dma2 0 0 0x400 0x0>; 4088c2ecf20Sopenharmony_ci dma-names = "rx"; 4098c2ecf20Sopenharmony_ci assigned-resolution-bits = <8>; 4108c2ecf20Sopenharmony_ci }; 4118c2ecf20Sopenharmony_ci // ... 4128c2ecf20Sopenharmony_ci // other adc child nodes follow... 4138c2ecf20Sopenharmony_ci }; 4148c2ecf20Sopenharmony_ci 4158c2ecf20Sopenharmony_ci - | 4168c2ecf20Sopenharmony_ci // Example 2: with stm32mp157c to setup ADC1 with: 4178c2ecf20Sopenharmony_ci // - channels 0 & 1 as single-ended 4188c2ecf20Sopenharmony_ci // - channels 2 & 3 as differential (with resp. 6 & 7 negative inputs) 4198c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 4208c2ecf20Sopenharmony_ci #include <dt-bindings/clock/stm32mp1-clks.h> 4218c2ecf20Sopenharmony_ci adc12: adc@48003000 { 4228c2ecf20Sopenharmony_ci compatible = "st,stm32mp1-adc-core"; 4238c2ecf20Sopenharmony_ci reg = <0x48003000 0x400>; 4248c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 4258c2ecf20Sopenharmony_ci <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 4268c2ecf20Sopenharmony_ci clocks = <&rcc ADC12>, <&rcc ADC12_K>; 4278c2ecf20Sopenharmony_ci clock-names = "bus", "adc"; 4288c2ecf20Sopenharmony_ci booster-supply = <&booster>; 4298c2ecf20Sopenharmony_ci vdd-supply = <&vdd>; 4308c2ecf20Sopenharmony_ci vdda-supply = <&vdda>; 4318c2ecf20Sopenharmony_ci vref-supply = <&vref>; 4328c2ecf20Sopenharmony_ci st,syscfg = <&syscfg>; 4338c2ecf20Sopenharmony_ci interrupt-controller; 4348c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 4358c2ecf20Sopenharmony_ci #address-cells = <1>; 4368c2ecf20Sopenharmony_ci #size-cells = <0>; 4378c2ecf20Sopenharmony_ci adc@0 { 4388c2ecf20Sopenharmony_ci compatible = "st,stm32mp1-adc"; 4398c2ecf20Sopenharmony_ci #io-channel-cells = <1>; 4408c2ecf20Sopenharmony_ci reg = <0x0>; 4418c2ecf20Sopenharmony_ci interrupt-parent = <&adc12>; 4428c2ecf20Sopenharmony_ci interrupts = <0>; 4438c2ecf20Sopenharmony_ci st,adc-channels = <0 1>; 4448c2ecf20Sopenharmony_ci st,adc-diff-channels = <2 6>, <3 7>; 4458c2ecf20Sopenharmony_ci st,min-sample-time-nsecs = <5000>; 4468c2ecf20Sopenharmony_ci dmas = <&dmamux1 9 0x400 0x05>; 4478c2ecf20Sopenharmony_ci dma-names = "rx"; 4488c2ecf20Sopenharmony_ci }; 4498c2ecf20Sopenharmony_ci // ... 4508c2ecf20Sopenharmony_ci // other adc child node follow... 4518c2ecf20Sopenharmony_ci }; 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ci... 454