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/dac/st,stm32-dac.yaml#"
58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: STMicroelectronics STM32 DAC bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription: |
108c2ecf20Sopenharmony_ci  The STM32 DAC is a 12-bit voltage output digital-to-analog converter. The DAC
118c2ecf20Sopenharmony_ci  may be configured in 8 or 12-bit mode. It has two output channels, each with
128c2ecf20Sopenharmony_ci  its own converter.
138c2ecf20Sopenharmony_ci  It has built-in noise and triangle waveform generator and supports external
148c2ecf20Sopenharmony_ci  triggers for conversions. The DAC's output buffer allows a high drive output
158c2ecf20Sopenharmony_ci  current.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_cimaintainers:
188c2ecf20Sopenharmony_ci  - Fabrice Gasnier <fabrice.gasnier@st.com>
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciproperties:
218c2ecf20Sopenharmony_ci  compatible:
228c2ecf20Sopenharmony_ci    enum:
238c2ecf20Sopenharmony_ci      - st,stm32f4-dac-core
248c2ecf20Sopenharmony_ci      - st,stm32h7-dac-core
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  reg:
278c2ecf20Sopenharmony_ci    maxItems: 1
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci  resets:
308c2ecf20Sopenharmony_ci    maxItems: 1
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  clocks:
338c2ecf20Sopenharmony_ci    maxItems: 1
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  clock-names:
368c2ecf20Sopenharmony_ci    items:
378c2ecf20Sopenharmony_ci      - const: pclk
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  vref-supply:
408c2ecf20Sopenharmony_ci    description: Phandle to the vref input analog reference voltage.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci  '#address-cells':
438c2ecf20Sopenharmony_ci    const: 1
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci  '#size-cells':
468c2ecf20Sopenharmony_ci    const: 0
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciadditionalProperties: false
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_cirequired:
518c2ecf20Sopenharmony_ci  - compatible
528c2ecf20Sopenharmony_ci  - reg
538c2ecf20Sopenharmony_ci  - clocks
548c2ecf20Sopenharmony_ci  - clock-names
558c2ecf20Sopenharmony_ci  - vref-supply
568c2ecf20Sopenharmony_ci  - '#address-cells'
578c2ecf20Sopenharmony_ci  - '#size-cells'
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_cipatternProperties:
608c2ecf20Sopenharmony_ci  "^dac@[1-2]+$":
618c2ecf20Sopenharmony_ci    type: object
628c2ecf20Sopenharmony_ci    description:
638c2ecf20Sopenharmony_ci      A DAC block node should contain at least one subnode, representing an
648c2ecf20Sopenharmony_ci      DAC instance/channel available on the machine.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci    properties:
678c2ecf20Sopenharmony_ci      compatible:
688c2ecf20Sopenharmony_ci        const: st,stm32-dac
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci      reg:
718c2ecf20Sopenharmony_ci        description: Must be either 1 or 2, to define (single) channel in use
728c2ecf20Sopenharmony_ci        enum: [1, 2]
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci      '#io-channel-cells':
758c2ecf20Sopenharmony_ci        const: 1
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci    additionalProperties: false
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci    required:
808c2ecf20Sopenharmony_ci      - compatible
818c2ecf20Sopenharmony_ci      - reg
828c2ecf20Sopenharmony_ci      - '#io-channel-cells'
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciexamples:
858c2ecf20Sopenharmony_ci  - |
868c2ecf20Sopenharmony_ci    // Example on stm32mp157c
878c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/stm32mp1-clks.h>
888c2ecf20Sopenharmony_ci    dac: dac@40017000 {
898c2ecf20Sopenharmony_ci      compatible = "st,stm32h7-dac-core";
908c2ecf20Sopenharmony_ci      reg = <0x40017000 0x400>;
918c2ecf20Sopenharmony_ci      clocks = <&rcc DAC12>;
928c2ecf20Sopenharmony_ci      clock-names = "pclk";
938c2ecf20Sopenharmony_ci      vref-supply = <&vref>;
948c2ecf20Sopenharmony_ci      #address-cells = <1>;
958c2ecf20Sopenharmony_ci      #size-cells = <0>;
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci      dac@1 {
988c2ecf20Sopenharmony_ci        compatible = "st,stm32-dac";
998c2ecf20Sopenharmony_ci        #io-channel-cells = <1>;
1008c2ecf20Sopenharmony_ci        reg = <1>;
1018c2ecf20Sopenharmony_ci      };
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci      dac@2 {
1048c2ecf20Sopenharmony_ci        compatible = "st,stm32-dac";
1058c2ecf20Sopenharmony_ci        #io-channel-cells = <1>;
1068c2ecf20Sopenharmony_ci        reg = <2>;
1078c2ecf20Sopenharmony_ci      };
1088c2ecf20Sopenharmony_ci    };
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci...
111