xref: /linux/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml (revision 1260ed77798502de9c98020040d2995008de10cc)
108080963SLad Prabhakar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
208080963SLad Prabhakar%YAML 1.2
308080963SLad Prabhakar---
408080963SLad Prabhakar$id: http://devicetree.org/schemas/iio/adc/renesas,rzg2l-adc.yaml#
508080963SLad Prabhakar$schema: http://devicetree.org/meta-schemas/core.yaml#
608080963SLad Prabhakar
708080963SLad Prabhakartitle: Renesas RZ/G2L ADC
808080963SLad Prabhakar
908080963SLad Prabhakarmaintainers:
1008080963SLad Prabhakar  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
1108080963SLad Prabhakar
1208080963SLad Prabhakardescription: |
1308080963SLad Prabhakar  A/D Converter block is a successive approximation analog-to-digital converter
1408080963SLad Prabhakar  with a 12-bit accuracy. Up to eight analog input channels can be selected.
1508080963SLad Prabhakar  Conversions can be performed in single or repeat mode. Result of the ADC is
1608080963SLad Prabhakar  stored in a 32-bit data register corresponding to each channel.
1708080963SLad Prabhakar
1808080963SLad Prabhakarproperties:
1908080963SLad Prabhakar  compatible:
20*4af77feaSClaudiu Beznea    oneOf:
21*4af77feaSClaudiu Beznea      - items:
2208080963SLad Prabhakar          - enum:
2332abe97bSLad Prabhakar              - renesas,r9a07g043-adc   # RZ/G2UL and RZ/Five
2442763b24SBiju Das              - renesas,r9a07g044-adc   # RZ/G2L
2542763b24SBiju Das              - renesas,r9a07g054-adc   # RZ/V2L
2608080963SLad Prabhakar          - const: renesas,rzg2l-adc
27*4af77feaSClaudiu Beznea      - items:
28*4af77feaSClaudiu Beznea          - const: renesas,r9a08g045-adc  # RZ/G3S
2908080963SLad Prabhakar
3008080963SLad Prabhakar  reg:
3108080963SLad Prabhakar    maxItems: 1
3208080963SLad Prabhakar
3308080963SLad Prabhakar  interrupts:
3408080963SLad Prabhakar    maxItems: 1
3508080963SLad Prabhakar
3608080963SLad Prabhakar  clocks:
3708080963SLad Prabhakar    items:
3808080963SLad Prabhakar      - description: converter clock
3908080963SLad Prabhakar      - description: peripheral clock
4008080963SLad Prabhakar
4108080963SLad Prabhakar  clock-names:
4208080963SLad Prabhakar    items:
4308080963SLad Prabhakar      - const: adclk
4408080963SLad Prabhakar      - const: pclk
4508080963SLad Prabhakar
4608080963SLad Prabhakar  power-domains:
4708080963SLad Prabhakar    maxItems: 1
4808080963SLad Prabhakar
4908080963SLad Prabhakar  resets:
5008080963SLad Prabhakar    maxItems: 2
5108080963SLad Prabhakar
5208080963SLad Prabhakar  reset-names:
5308080963SLad Prabhakar    items:
5408080963SLad Prabhakar      - const: presetn
5508080963SLad Prabhakar      - const: adrst-n
5608080963SLad Prabhakar
5708080963SLad Prabhakar  '#address-cells':
5808080963SLad Prabhakar    const: 1
5908080963SLad Prabhakar
6008080963SLad Prabhakar  '#size-cells':
6108080963SLad Prabhakar    const: 0
6208080963SLad Prabhakar
63*4af77feaSClaudiu Beznea  "#io-channel-cells":
64*4af77feaSClaudiu Beznea    const: 1
65*4af77feaSClaudiu Beznea
6608080963SLad Prabhakarrequired:
6708080963SLad Prabhakar  - compatible
6808080963SLad Prabhakar  - reg
6908080963SLad Prabhakar  - interrupts
7008080963SLad Prabhakar  - clocks
7108080963SLad Prabhakar  - clock-names
7208080963SLad Prabhakar  - power-domains
7308080963SLad Prabhakar  - resets
7408080963SLad Prabhakar  - reset-names
7508080963SLad Prabhakar
7608080963SLad PrabhakarpatternProperties:
77*4af77feaSClaudiu Beznea  "^channel@[0-8]$":
7834d1e754SKrzysztof Kozlowski    $ref: adc.yaml
7908080963SLad Prabhakar    type: object
8008080963SLad Prabhakar    description: |
8108080963SLad Prabhakar      Represents the external channels which are connected to the ADC.
8208080963SLad Prabhakar
8308080963SLad Prabhakar    properties:
8408080963SLad Prabhakar      reg:
8508080963SLad Prabhakar        description: |
86153415feSBiju Das          The channel number.
87*4af77feaSClaudiu Beznea        minimum: 0
88*4af77feaSClaudiu Beznea        maximum: 8
8908080963SLad Prabhakar
9008080963SLad Prabhakar    required:
9108080963SLad Prabhakar      - reg
9208080963SLad Prabhakar
9308080963SLad Prabhakar    additionalProperties: false
9408080963SLad Prabhakar
95153415feSBiju DasallOf:
96153415feSBiju Das  - if:
97153415feSBiju Das      properties:
98153415feSBiju Das        compatible:
99153415feSBiju Das          contains:
100153415feSBiju Das            const: renesas,r9a07g043-adc
101153415feSBiju Das    then:
102153415feSBiju Das      patternProperties:
103*4af77feaSClaudiu Beznea        "^channel@[2-8]$": false
104153415feSBiju Das        "^channel@[0-1]$":
105153415feSBiju Das          properties:
106153415feSBiju Das            reg:
107153415feSBiju Das              maximum: 1
108*4af77feaSClaudiu Beznea
109*4af77feaSClaudiu Beznea  - if:
110*4af77feaSClaudiu Beznea      properties:
111*4af77feaSClaudiu Beznea        compatible:
112*4af77feaSClaudiu Beznea          contains:
113*4af77feaSClaudiu Beznea            enum:
114*4af77feaSClaudiu Beznea              - renesas,r9a07g044-adc
115*4af77feaSClaudiu Beznea              - renesas,r9a07g054-adc
116*4af77feaSClaudiu Beznea    then:
117153415feSBiju Das      patternProperties:
118*4af77feaSClaudiu Beznea        "^channel@[8]$": false
119153415feSBiju Das        "^channel@[0-7]$":
120153415feSBiju Das          properties:
121153415feSBiju Das            reg:
122153415feSBiju Das              maximum: 7
123153415feSBiju Das
12408080963SLad PrabhakaradditionalProperties: false
12508080963SLad Prabhakar
12608080963SLad Prabhakarexamples:
12708080963SLad Prabhakar  - |
12808080963SLad Prabhakar    #include <dt-bindings/clock/r9a07g044-cpg.h>
12908080963SLad Prabhakar    #include <dt-bindings/interrupt-controller/arm-gic.h>
13008080963SLad Prabhakar
13108080963SLad Prabhakar    adc: adc@10059000 {
13208080963SLad Prabhakar      compatible = "renesas,r9a07g044-adc", "renesas,rzg2l-adc";
13308080963SLad Prabhakar      reg = <0x10059000 0x400>;
13408080963SLad Prabhakar      interrupts = <GIC_SPI 347 IRQ_TYPE_EDGE_RISING>;
13508080963SLad Prabhakar      clocks = <&cpg CPG_MOD R9A07G044_ADC_ADCLK>,
13608080963SLad Prabhakar               <&cpg CPG_MOD R9A07G044_ADC_PCLK>;
13708080963SLad Prabhakar      clock-names = "adclk", "pclk";
13808080963SLad Prabhakar      power-domains = <&cpg>;
13908080963SLad Prabhakar      resets = <&cpg R9A07G044_ADC_PRESETN>,
14008080963SLad Prabhakar               <&cpg R9A07G044_ADC_ADRST_N>;
14108080963SLad Prabhakar      reset-names = "presetn", "adrst-n";
14208080963SLad Prabhakar
14308080963SLad Prabhakar      #address-cells = <1>;
14408080963SLad Prabhakar      #size-cells = <0>;
14508080963SLad Prabhakar
14608080963SLad Prabhakar      channel@0 {
14708080963SLad Prabhakar        reg = <0>;
14808080963SLad Prabhakar      };
14908080963SLad Prabhakar      channel@1 {
15008080963SLad Prabhakar        reg = <1>;
15108080963SLad Prabhakar      };
15208080963SLad Prabhakar      channel@2 {
15308080963SLad Prabhakar        reg = <2>;
15408080963SLad Prabhakar      };
15508080963SLad Prabhakar      channel@3 {
15608080963SLad Prabhakar        reg = <3>;
15708080963SLad Prabhakar      };
15808080963SLad Prabhakar      channel@4 {
15908080963SLad Prabhakar        reg = <4>;
16008080963SLad Prabhakar      };
16108080963SLad Prabhakar      channel@5 {
16208080963SLad Prabhakar        reg = <5>;
16308080963SLad Prabhakar      };
16408080963SLad Prabhakar      channel@6 {
16508080963SLad Prabhakar        reg = <6>;
16608080963SLad Prabhakar      };
16708080963SLad Prabhakar      channel@7 {
16808080963SLad Prabhakar        reg = <7>;
16908080963SLad Prabhakar      };
17008080963SLad Prabhakar    };
171