162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/adc/aspeed,ast2600-adc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: ADC that forms part of an ASPEED server management processor.
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Billy Tsai <billy_tsai@aspeedtech.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  • 10-bits resolution for 16 voltage channels.
1462306a36Sopenharmony_ci  • The device split into two individual engine and each contains 8 voltage
1562306a36Sopenharmony_ci  channels.
1662306a36Sopenharmony_ci  • Channel scanning can be non-continuous.
1762306a36Sopenharmony_ci  • Programmable ADC clock frequency.
1862306a36Sopenharmony_ci  • Programmable upper and lower threshold for each channels.
1962306a36Sopenharmony_ci  • Interrupt when larger or less than threshold for each channels.
2062306a36Sopenharmony_ci  • Support hysteresis for each channels.
2162306a36Sopenharmony_ci  • Built-in a compensating method.
2262306a36Sopenharmony_ci  • Built-in a register to trim internal reference voltage.
2362306a36Sopenharmony_ci  • Internal or External reference voltage.
2462306a36Sopenharmony_ci  • Support 2 Internal reference voltage 1.2v or 2.5v.
2562306a36Sopenharmony_ci  • Integrate dividing circuit for battery sensing.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciproperties:
2862306a36Sopenharmony_ci  compatible:
2962306a36Sopenharmony_ci    enum:
3062306a36Sopenharmony_ci      - aspeed,ast2600-adc0
3162306a36Sopenharmony_ci      - aspeed,ast2600-adc1
3262306a36Sopenharmony_ci    description:
3362306a36Sopenharmony_ci      Their trimming data, which is used to calibrate internal reference volage,
3462306a36Sopenharmony_ci      locates in different address of OTP.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci  reg:
3762306a36Sopenharmony_ci    maxItems: 1
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  clocks:
4062306a36Sopenharmony_ci    maxItems: 1
4162306a36Sopenharmony_ci    description:
4262306a36Sopenharmony_ci      Input clock used to derive the sample clock. Expected to be the
4362306a36Sopenharmony_ci      SoC's APB clock.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  resets:
4662306a36Sopenharmony_ci    maxItems: 1
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  "#io-channel-cells":
4962306a36Sopenharmony_ci    const: 1
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  vref-supply:
5262306a36Sopenharmony_ci    description:
5362306a36Sopenharmony_ci      The external regulator supply ADC reference voltage.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  aspeed,int-vref-microvolt:
5662306a36Sopenharmony_ci    enum: [1200000, 2500000]
5762306a36Sopenharmony_ci    description:
5862306a36Sopenharmony_ci      ADC internal reference voltage in microvolts.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  aspeed,battery-sensing:
6162306a36Sopenharmony_ci    type: boolean
6262306a36Sopenharmony_ci    description:
6362306a36Sopenharmony_ci      Inform the driver that last channel will be used to sensor battery.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_cirequired:
6662306a36Sopenharmony_ci  - compatible
6762306a36Sopenharmony_ci  - reg
6862306a36Sopenharmony_ci  - clocks
6962306a36Sopenharmony_ci  - resets
7062306a36Sopenharmony_ci  - "#io-channel-cells"
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciadditionalProperties: false
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciexamples:
7562306a36Sopenharmony_ci  - |
7662306a36Sopenharmony_ci    #include <dt-bindings/clock/ast2600-clock.h>
7762306a36Sopenharmony_ci    adc0: adc@1e6e9000 {
7862306a36Sopenharmony_ci        compatible = "aspeed,ast2600-adc0";
7962306a36Sopenharmony_ci        reg = <0x1e6e9000 0x100>;
8062306a36Sopenharmony_ci        clocks = <&syscon ASPEED_CLK_APB2>;
8162306a36Sopenharmony_ci        resets = <&syscon ASPEED_RESET_ADC>;
8262306a36Sopenharmony_ci        #io-channel-cells = <1>;
8362306a36Sopenharmony_ci        aspeed,int-vref-microvolt = <2500000>;
8462306a36Sopenharmony_ci    };
8562306a36Sopenharmony_ci    adc1: adc@1e6e9100 {
8662306a36Sopenharmony_ci        compatible = "aspeed,ast2600-adc1";
8762306a36Sopenharmony_ci        reg = <0x1e6e9100 0x100>;
8862306a36Sopenharmony_ci        clocks = <&syscon ASPEED_CLK_APB2>;
8962306a36Sopenharmony_ci        resets = <&syscon ASPEED_RESET_ADC>;
9062306a36Sopenharmony_ci        #io-channel-cells = <1>;
9162306a36Sopenharmony_ci        aspeed,int-vref-microvolt = <2500000>;
9262306a36Sopenharmony_ci    };
9362306a36Sopenharmony_ci...
94