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/dac/st,stm32-dac.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: STMicroelectronics STM32 DAC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: |
1062306a36Sopenharmony_ci  The STM32 DAC is a 12-bit voltage output digital-to-analog converter. The DAC
1162306a36Sopenharmony_ci  may be configured in 8 or 12-bit mode. It has two output channels, each with
1262306a36Sopenharmony_ci  its own converter.
1362306a36Sopenharmony_ci  It has built-in noise and triangle waveform generator and supports external
1462306a36Sopenharmony_ci  triggers for conversions. The DAC's output buffer allows a high drive output
1562306a36Sopenharmony_ci  current.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cimaintainers:
1862306a36Sopenharmony_ci  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    enum:
2362306a36Sopenharmony_ci      - st,stm32f4-dac-core
2462306a36Sopenharmony_ci      - st,stm32h7-dac-core
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  reg:
2762306a36Sopenharmony_ci    maxItems: 1
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  resets:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  clocks:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  clock-names:
3662306a36Sopenharmony_ci    items:
3762306a36Sopenharmony_ci      - const: pclk
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  vref-supply:
4062306a36Sopenharmony_ci    description: Phandle to the vref input analog reference voltage.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  '#address-cells':
4362306a36Sopenharmony_ci    const: 1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  '#size-cells':
4662306a36Sopenharmony_ci    const: 0
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciadditionalProperties: false
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cirequired:
5162306a36Sopenharmony_ci  - compatible
5262306a36Sopenharmony_ci  - reg
5362306a36Sopenharmony_ci  - clocks
5462306a36Sopenharmony_ci  - clock-names
5562306a36Sopenharmony_ci  - vref-supply
5662306a36Sopenharmony_ci  - '#address-cells'
5762306a36Sopenharmony_ci  - '#size-cells'
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cipatternProperties:
6062306a36Sopenharmony_ci  "^dac@[1-2]+$":
6162306a36Sopenharmony_ci    type: object
6262306a36Sopenharmony_ci    description:
6362306a36Sopenharmony_ci      A DAC block node should contain at least one subnode, representing an
6462306a36Sopenharmony_ci      DAC instance/channel available on the machine.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci    properties:
6762306a36Sopenharmony_ci      compatible:
6862306a36Sopenharmony_ci        const: st,stm32-dac
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci      reg:
7162306a36Sopenharmony_ci        description: Must be either 1 or 2, to define (single) channel in use
7262306a36Sopenharmony_ci        enum: [1, 2]
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci      '#io-channel-cells':
7562306a36Sopenharmony_ci        const: 1
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    additionalProperties: false
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci    required:
8062306a36Sopenharmony_ci      - compatible
8162306a36Sopenharmony_ci      - reg
8262306a36Sopenharmony_ci      - '#io-channel-cells'
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciexamples:
8562306a36Sopenharmony_ci  - |
8662306a36Sopenharmony_ci    // Example on stm32mp157c
8762306a36Sopenharmony_ci    #include <dt-bindings/clock/stm32mp1-clks.h>
8862306a36Sopenharmony_ci    dac: dac@40017000 {
8962306a36Sopenharmony_ci      compatible = "st,stm32h7-dac-core";
9062306a36Sopenharmony_ci      reg = <0x40017000 0x400>;
9162306a36Sopenharmony_ci      clocks = <&rcc DAC12>;
9262306a36Sopenharmony_ci      clock-names = "pclk";
9362306a36Sopenharmony_ci      vref-supply = <&vref>;
9462306a36Sopenharmony_ci      #address-cells = <1>;
9562306a36Sopenharmony_ci      #size-cells = <0>;
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci      dac@1 {
9862306a36Sopenharmony_ci        compatible = "st,stm32-dac";
9962306a36Sopenharmony_ci        #io-channel-cells = <1>;
10062306a36Sopenharmony_ci        reg = <1>;
10162306a36Sopenharmony_ci      };
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci      dac@2 {
10462306a36Sopenharmony_ci        compatible = "st,stm32-dac";
10562306a36Sopenharmony_ci        #io-channel-cells = <1>;
10662306a36Sopenharmony_ci        reg = <2>;
10762306a36Sopenharmony_ci      };
10862306a36Sopenharmony_ci    };
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci...
111