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