1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml#" 5*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: STMicroelectronics STM32 ADC bindings 8*4882a593Smuzhiyun 9*4882a593Smuzhiyundescription: | 10*4882a593Smuzhiyun STM32 ADC is a successive approximation analog-to-digital converter. 11*4882a593Smuzhiyun It has several multiplexed input channels. Conversions can be performed 12*4882a593Smuzhiyun in single, continuous, scan or discontinuous mode. Result of the ADC is 13*4882a593Smuzhiyun stored in a left-aligned or right-aligned 32-bit data register. 14*4882a593Smuzhiyun Conversions can be launched in software or using hardware triggers. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun The analog watchdog feature allows the application to detect if the input 17*4882a593Smuzhiyun voltage goes beyond the user-defined, higher or lower thresholds. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun Each STM32 ADC block can have up to 3 ADC instances. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunmaintainers: 22*4882a593Smuzhiyun - Fabrice Gasnier <fabrice.gasnier@st.com> 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunproperties: 25*4882a593Smuzhiyun compatible: 26*4882a593Smuzhiyun enum: 27*4882a593Smuzhiyun - st,stm32f4-adc-core 28*4882a593Smuzhiyun - st,stm32h7-adc-core 29*4882a593Smuzhiyun - st,stm32mp1-adc-core 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun reg: 32*4882a593Smuzhiyun maxItems: 1 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun interrupts: 35*4882a593Smuzhiyun description: | 36*4882a593Smuzhiyun One or more interrupts for ADC block, depending on part used: 37*4882a593Smuzhiyun - stm32f4 and stm32h7 share a common ADC interrupt line. 38*4882a593Smuzhiyun - stm32mp1 has two separate interrupt lines, one for each ADC within 39*4882a593Smuzhiyun ADC block. 40*4882a593Smuzhiyun minItems: 1 41*4882a593Smuzhiyun maxItems: 2 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun clocks: 44*4882a593Smuzhiyun description: | 45*4882a593Smuzhiyun Core can use up to two clocks, depending on part used: 46*4882a593Smuzhiyun - "adc" clock: for the analog circuitry, common to all ADCs. 47*4882a593Smuzhiyun It's required on stm32f4. 48*4882a593Smuzhiyun It's optional on stm32h7 and stm32mp1. 49*4882a593Smuzhiyun - "bus" clock: for registers access, common to all ADCs. 50*4882a593Smuzhiyun It's not present on stm32f4. 51*4882a593Smuzhiyun It's required on stm32h7 and stm32mp1. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun clock-names: true 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun st,max-clk-rate-hz: 56*4882a593Smuzhiyun description: 57*4882a593Smuzhiyun Allow to specify desired max clock rate used by analog circuitry. 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun vdda-supply: 60*4882a593Smuzhiyun description: Phandle to the vdda input analog voltage. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun vref-supply: 63*4882a593Smuzhiyun description: Phandle to the vref input analog reference voltage. 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun booster-supply: 66*4882a593Smuzhiyun description: 67*4882a593Smuzhiyun Phandle to the embedded booster regulator that can be used to supply ADC 68*4882a593Smuzhiyun analog input switches on stm32h7 and stm32mp1. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun vdd-supply: 71*4882a593Smuzhiyun description: 72*4882a593Smuzhiyun Phandle to the vdd input voltage. It can be used to supply ADC analog 73*4882a593Smuzhiyun input switches on stm32mp1. 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun st,syscfg: 76*4882a593Smuzhiyun description: 77*4882a593Smuzhiyun Phandle to system configuration controller. It can be used to control the 78*4882a593Smuzhiyun analog circuitry on stm32mp1. 79*4882a593Smuzhiyun $ref: "/schemas/types.yaml#/definitions/phandle-array" 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun interrupt-controller: true 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun '#interrupt-cells': 84*4882a593Smuzhiyun const: 1 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun '#address-cells': 87*4882a593Smuzhiyun const: 1 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun '#size-cells': 90*4882a593Smuzhiyun const: 0 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunallOf: 93*4882a593Smuzhiyun - if: 94*4882a593Smuzhiyun properties: 95*4882a593Smuzhiyun compatible: 96*4882a593Smuzhiyun contains: 97*4882a593Smuzhiyun const: st,stm32f4-adc-core 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun then: 100*4882a593Smuzhiyun properties: 101*4882a593Smuzhiyun clocks: 102*4882a593Smuzhiyun maxItems: 1 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun clock-names: 105*4882a593Smuzhiyun const: adc 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun interrupts: 108*4882a593Smuzhiyun items: 109*4882a593Smuzhiyun - description: interrupt line common for all ADCs 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun st,max-clk-rate-hz: 112*4882a593Smuzhiyun minimum: 600000 113*4882a593Smuzhiyun maximum: 36000000 114*4882a593Smuzhiyun default: 36000000 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun booster-supply: false 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun vdd-supply: false 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun st,syscfg: false 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun - if: 123*4882a593Smuzhiyun properties: 124*4882a593Smuzhiyun compatible: 125*4882a593Smuzhiyun contains: 126*4882a593Smuzhiyun const: st,stm32h7-adc-core 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun then: 129*4882a593Smuzhiyun properties: 130*4882a593Smuzhiyun clocks: 131*4882a593Smuzhiyun minItems: 1 132*4882a593Smuzhiyun maxItems: 2 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun clock-names: 135*4882a593Smuzhiyun items: 136*4882a593Smuzhiyun - const: bus 137*4882a593Smuzhiyun - const: adc 138*4882a593Smuzhiyun minItems: 1 139*4882a593Smuzhiyun maxItems: 2 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun interrupts: 142*4882a593Smuzhiyun items: 143*4882a593Smuzhiyun - description: interrupt line common for all ADCs 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun st,max-clk-rate-hz: 146*4882a593Smuzhiyun minimum: 120000 147*4882a593Smuzhiyun maximum: 36000000 148*4882a593Smuzhiyun default: 36000000 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun vdd-supply: false 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun st,syscfg: false 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun - if: 155*4882a593Smuzhiyun properties: 156*4882a593Smuzhiyun compatible: 157*4882a593Smuzhiyun contains: 158*4882a593Smuzhiyun const: st,stm32mp1-adc-core 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun then: 161*4882a593Smuzhiyun properties: 162*4882a593Smuzhiyun clocks: 163*4882a593Smuzhiyun minItems: 1 164*4882a593Smuzhiyun maxItems: 2 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun clock-names: 167*4882a593Smuzhiyun items: 168*4882a593Smuzhiyun - const: bus 169*4882a593Smuzhiyun - const: adc 170*4882a593Smuzhiyun minItems: 1 171*4882a593Smuzhiyun maxItems: 2 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun interrupts: 174*4882a593Smuzhiyun items: 175*4882a593Smuzhiyun - description: interrupt line for ADC1 176*4882a593Smuzhiyun - description: interrupt line for ADC2 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun st,max-clk-rate-hz: 179*4882a593Smuzhiyun minimum: 120000 180*4882a593Smuzhiyun maximum: 36000000 181*4882a593Smuzhiyun default: 36000000 182*4882a593Smuzhiyun 183*4882a593SmuzhiyunadditionalProperties: false 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunrequired: 186*4882a593Smuzhiyun - compatible 187*4882a593Smuzhiyun - reg 188*4882a593Smuzhiyun - interrupts 189*4882a593Smuzhiyun - clocks 190*4882a593Smuzhiyun - clock-names 191*4882a593Smuzhiyun - vdda-supply 192*4882a593Smuzhiyun - vref-supply 193*4882a593Smuzhiyun - interrupt-controller 194*4882a593Smuzhiyun - '#interrupt-cells' 195*4882a593Smuzhiyun - '#address-cells' 196*4882a593Smuzhiyun - '#size-cells' 197*4882a593Smuzhiyun 198*4882a593SmuzhiyunpatternProperties: 199*4882a593Smuzhiyun "^adc@[0-9]+$": 200*4882a593Smuzhiyun type: object 201*4882a593Smuzhiyun description: 202*4882a593Smuzhiyun An ADC block node should contain at least one subnode, representing an 203*4882a593Smuzhiyun ADC instance available on the machine. 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun properties: 206*4882a593Smuzhiyun compatible: 207*4882a593Smuzhiyun enum: 208*4882a593Smuzhiyun - st,stm32f4-adc 209*4882a593Smuzhiyun - st,stm32h7-adc 210*4882a593Smuzhiyun - st,stm32mp1-adc 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun reg: 213*4882a593Smuzhiyun description: | 214*4882a593Smuzhiyun Offset of ADC instance in ADC block. Valid values are: 215*4882a593Smuzhiyun - 0x0: ADC1 216*4882a593Smuzhiyun - 0x100: ADC2 217*4882a593Smuzhiyun - 0x200: ADC3 (stm32f4 only) 218*4882a593Smuzhiyun maxItems: 1 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun '#io-channel-cells': 221*4882a593Smuzhiyun const: 1 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun interrupts: 224*4882a593Smuzhiyun description: | 225*4882a593Smuzhiyun IRQ Line for the ADC instance. Valid values are: 226*4882a593Smuzhiyun - 0 for adc@0 227*4882a593Smuzhiyun - 1 for adc@100 228*4882a593Smuzhiyun - 2 for adc@200 (stm32f4 only) 229*4882a593Smuzhiyun maxItems: 1 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun clocks: 232*4882a593Smuzhiyun description: 233*4882a593Smuzhiyun Input clock private to this ADC instance. It's required only on 234*4882a593Smuzhiyun stm32f4, that has per instance clock input for registers access. 235*4882a593Smuzhiyun maxItems: 1 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun dmas: 238*4882a593Smuzhiyun description: RX DMA Channel 239*4882a593Smuzhiyun maxItems: 1 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun dma-names: 242*4882a593Smuzhiyun const: rx 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun assigned-resolution-bits: 245*4882a593Smuzhiyun description: | 246*4882a593Smuzhiyun Resolution (bits) to use for conversions: 247*4882a593Smuzhiyun - can be 6, 8, 10 or 12 on stm32f4 248*4882a593Smuzhiyun - can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1 249*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun st,adc-channels: 252*4882a593Smuzhiyun description: | 253*4882a593Smuzhiyun List of single-ended channels muxed for this ADC. It can have up to: 254*4882a593Smuzhiyun - 16 channels, numbered from 0 to 15 (for in0..in15) on stm32f4 255*4882a593Smuzhiyun - 20 channels, numbered from 0 to 19 (for in0..in19) on stm32h7 and 256*4882a593Smuzhiyun stm32mp1. 257*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32-array 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun st,adc-diff-channels: 260*4882a593Smuzhiyun description: | 261*4882a593Smuzhiyun List of differential channels muxed for this ADC. Some channels can 262*4882a593Smuzhiyun be configured as differential instead of single-ended on stm32h7 and 263*4882a593Smuzhiyun on stm32mp1. Positive and negative inputs pairs are listed: 264*4882a593Smuzhiyun <vinp vinn>, <vinp vinn>,... vinp and vinn are numbered from 0 to 19. 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun Note: At least one of "st,adc-channels" or "st,adc-diff-channels" is 267*4882a593Smuzhiyun required. Both properties can be used together. Some channels can be 268*4882a593Smuzhiyun used as single-ended and some other ones as differential (mixed). But 269*4882a593Smuzhiyun channels can't be configured both as single-ended and differential. 270*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32-matrix 271*4882a593Smuzhiyun items: 272*4882a593Smuzhiyun items: 273*4882a593Smuzhiyun - description: | 274*4882a593Smuzhiyun "vinp" indicates positive input number 275*4882a593Smuzhiyun minimum: 0 276*4882a593Smuzhiyun maximum: 19 277*4882a593Smuzhiyun - description: | 278*4882a593Smuzhiyun "vinn" indicates negative input number 279*4882a593Smuzhiyun minimum: 0 280*4882a593Smuzhiyun maximum: 19 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun st,min-sample-time-nsecs: 283*4882a593Smuzhiyun description: 284*4882a593Smuzhiyun Minimum sampling time in nanoseconds. Depending on hardware (board) 285*4882a593Smuzhiyun e.g. high/low analog input source impedance, fine tune of ADC 286*4882a593Smuzhiyun sampling time may be recommended. This can be either one value or an 287*4882a593Smuzhiyun array that matches "st,adc-channels" and/or "st,adc-diff-channels" 288*4882a593Smuzhiyun list, to set sample time resp. for all channels, or independently for 289*4882a593Smuzhiyun each channel. 290*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32-array 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun allOf: 293*4882a593Smuzhiyun - if: 294*4882a593Smuzhiyun properties: 295*4882a593Smuzhiyun compatible: 296*4882a593Smuzhiyun contains: 297*4882a593Smuzhiyun const: st,stm32f4-adc 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun then: 300*4882a593Smuzhiyun properties: 301*4882a593Smuzhiyun reg: 302*4882a593Smuzhiyun enum: 303*4882a593Smuzhiyun - 0x0 304*4882a593Smuzhiyun - 0x100 305*4882a593Smuzhiyun - 0x200 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun interrupts: 308*4882a593Smuzhiyun minimum: 0 309*4882a593Smuzhiyun maximum: 2 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun assigned-resolution-bits: 312*4882a593Smuzhiyun enum: [6, 8, 10, 12] 313*4882a593Smuzhiyun default: 12 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun st,adc-channels: 316*4882a593Smuzhiyun minItems: 1 317*4882a593Smuzhiyun maxItems: 16 318*4882a593Smuzhiyun items: 319*4882a593Smuzhiyun minimum: 0 320*4882a593Smuzhiyun maximum: 15 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun st,adc-diff-channels: false 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun st,min-sample-time-nsecs: 325*4882a593Smuzhiyun minItems: 1 326*4882a593Smuzhiyun maxItems: 16 327*4882a593Smuzhiyun items: 328*4882a593Smuzhiyun minimum: 80 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun required: 331*4882a593Smuzhiyun - clocks 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun - if: 334*4882a593Smuzhiyun properties: 335*4882a593Smuzhiyun compatible: 336*4882a593Smuzhiyun contains: 337*4882a593Smuzhiyun enum: 338*4882a593Smuzhiyun - st,stm32h7-adc 339*4882a593Smuzhiyun - st,stm32mp1-adc 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun then: 342*4882a593Smuzhiyun properties: 343*4882a593Smuzhiyun reg: 344*4882a593Smuzhiyun enum: 345*4882a593Smuzhiyun - 0x0 346*4882a593Smuzhiyun - 0x100 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun interrupts: 349*4882a593Smuzhiyun minimum: 0 350*4882a593Smuzhiyun maximum: 1 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun assigned-resolution-bits: 353*4882a593Smuzhiyun enum: [8, 10, 12, 14, 16] 354*4882a593Smuzhiyun default: 16 355*4882a593Smuzhiyun 356*4882a593Smuzhiyun st,adc-channels: 357*4882a593Smuzhiyun minItems: 1 358*4882a593Smuzhiyun maxItems: 20 359*4882a593Smuzhiyun items: 360*4882a593Smuzhiyun minimum: 0 361*4882a593Smuzhiyun maximum: 19 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun st,min-sample-time-nsecs: 364*4882a593Smuzhiyun minItems: 1 365*4882a593Smuzhiyun maxItems: 20 366*4882a593Smuzhiyun items: 367*4882a593Smuzhiyun minimum: 40 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun additionalProperties: false 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun anyOf: 372*4882a593Smuzhiyun - required: 373*4882a593Smuzhiyun - st,adc-channels 374*4882a593Smuzhiyun - required: 375*4882a593Smuzhiyun - st,adc-diff-channels 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun required: 378*4882a593Smuzhiyun - compatible 379*4882a593Smuzhiyun - reg 380*4882a593Smuzhiyun - interrupts 381*4882a593Smuzhiyun - '#io-channel-cells' 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunexamples: 384*4882a593Smuzhiyun - | 385*4882a593Smuzhiyun // Example 1: with stm32f429, ADC1, single-ended channel 8 386*4882a593Smuzhiyun adc123: adc@40012000 { 387*4882a593Smuzhiyun compatible = "st,stm32f4-adc-core"; 388*4882a593Smuzhiyun reg = <0x40012000 0x400>; 389*4882a593Smuzhiyun interrupts = <18>; 390*4882a593Smuzhiyun clocks = <&rcc 0 168>; 391*4882a593Smuzhiyun clock-names = "adc"; 392*4882a593Smuzhiyun st,max-clk-rate-hz = <36000000>; 393*4882a593Smuzhiyun vdda-supply = <&vdda>; 394*4882a593Smuzhiyun vref-supply = <&vref>; 395*4882a593Smuzhiyun interrupt-controller; 396*4882a593Smuzhiyun #interrupt-cells = <1>; 397*4882a593Smuzhiyun #address-cells = <1>; 398*4882a593Smuzhiyun #size-cells = <0>; 399*4882a593Smuzhiyun adc@0 { 400*4882a593Smuzhiyun compatible = "st,stm32f4-adc"; 401*4882a593Smuzhiyun #io-channel-cells = <1>; 402*4882a593Smuzhiyun reg = <0x0>; 403*4882a593Smuzhiyun clocks = <&rcc 0 168>; 404*4882a593Smuzhiyun interrupt-parent = <&adc123>; 405*4882a593Smuzhiyun interrupts = <0>; 406*4882a593Smuzhiyun st,adc-channels = <8>; 407*4882a593Smuzhiyun dmas = <&dma2 0 0 0x400 0x0>; 408*4882a593Smuzhiyun dma-names = "rx"; 409*4882a593Smuzhiyun assigned-resolution-bits = <8>; 410*4882a593Smuzhiyun }; 411*4882a593Smuzhiyun // ... 412*4882a593Smuzhiyun // other adc child nodes follow... 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun - | 416*4882a593Smuzhiyun // Example 2: with stm32mp157c to setup ADC1 with: 417*4882a593Smuzhiyun // - channels 0 & 1 as single-ended 418*4882a593Smuzhiyun // - channels 2 & 3 as differential (with resp. 6 & 7 negative inputs) 419*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 420*4882a593Smuzhiyun #include <dt-bindings/clock/stm32mp1-clks.h> 421*4882a593Smuzhiyun adc12: adc@48003000 { 422*4882a593Smuzhiyun compatible = "st,stm32mp1-adc-core"; 423*4882a593Smuzhiyun reg = <0x48003000 0x400>; 424*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 425*4882a593Smuzhiyun <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 426*4882a593Smuzhiyun clocks = <&rcc ADC12>, <&rcc ADC12_K>; 427*4882a593Smuzhiyun clock-names = "bus", "adc"; 428*4882a593Smuzhiyun booster-supply = <&booster>; 429*4882a593Smuzhiyun vdd-supply = <&vdd>; 430*4882a593Smuzhiyun vdda-supply = <&vdda>; 431*4882a593Smuzhiyun vref-supply = <&vref>; 432*4882a593Smuzhiyun st,syscfg = <&syscfg>; 433*4882a593Smuzhiyun interrupt-controller; 434*4882a593Smuzhiyun #interrupt-cells = <1>; 435*4882a593Smuzhiyun #address-cells = <1>; 436*4882a593Smuzhiyun #size-cells = <0>; 437*4882a593Smuzhiyun adc@0 { 438*4882a593Smuzhiyun compatible = "st,stm32mp1-adc"; 439*4882a593Smuzhiyun #io-channel-cells = <1>; 440*4882a593Smuzhiyun reg = <0x0>; 441*4882a593Smuzhiyun interrupt-parent = <&adc12>; 442*4882a593Smuzhiyun interrupts = <0>; 443*4882a593Smuzhiyun st,adc-channels = <0 1>; 444*4882a593Smuzhiyun st,adc-diff-channels = <2 6>, <3 7>; 445*4882a593Smuzhiyun st,min-sample-time-nsecs = <5000>; 446*4882a593Smuzhiyun dmas = <&dmamux1 9 0x400 0x05>; 447*4882a593Smuzhiyun dma-names = "rx"; 448*4882a593Smuzhiyun }; 449*4882a593Smuzhiyun // ... 450*4882a593Smuzhiyun // other adc child node follow... 451*4882a593Smuzhiyun }; 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun... 454