xref: /freebsd/sys/contrib/device-tree/Bindings/iio/dac/st,stm32-dac.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/iio/dac/st,stm32-dac.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: STMicroelectronics STM32 DAC
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription: |
10c66ec88fSEmmanuel Vadot  The STM32 DAC is a 12-bit voltage output digital-to-analog converter. The DAC
11c66ec88fSEmmanuel Vadot  may be configured in 8 or 12-bit mode. It has two output channels, each with
12c66ec88fSEmmanuel Vadot  its own converter.
13c66ec88fSEmmanuel Vadot  It has built-in noise and triangle waveform generator and supports external
14c66ec88fSEmmanuel Vadot  triggers for conversions. The DAC's output buffer allows a high drive output
15c66ec88fSEmmanuel Vadot  current.
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadotmaintainers:
188cc087a1SEmmanuel Vadot  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadotproperties:
21c66ec88fSEmmanuel Vadot  compatible:
22c66ec88fSEmmanuel Vadot    enum:
23c66ec88fSEmmanuel Vadot      - st,stm32f4-dac-core
24c66ec88fSEmmanuel Vadot      - st,stm32h7-dac-core
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  reg:
27c66ec88fSEmmanuel Vadot    maxItems: 1
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  resets:
30c66ec88fSEmmanuel Vadot    maxItems: 1
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot  clocks:
33c66ec88fSEmmanuel Vadot    maxItems: 1
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  clock-names:
36c66ec88fSEmmanuel Vadot    items:
37c66ec88fSEmmanuel Vadot      - const: pclk
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  vref-supply:
40c66ec88fSEmmanuel Vadot    description: Phandle to the vref input analog reference voltage.
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  '#address-cells':
43c66ec88fSEmmanuel Vadot    const: 1
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  '#size-cells':
46c66ec88fSEmmanuel Vadot    const: 0
47c66ec88fSEmmanuel Vadot
48*7d0873ebSEmmanuel Vadot  access-controllers:
49*7d0873ebSEmmanuel Vadot    minItems: 1
50*7d0873ebSEmmanuel Vadot    maxItems: 2
51*7d0873ebSEmmanuel Vadot
52c66ec88fSEmmanuel VadotadditionalProperties: false
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel Vadotrequired:
55c66ec88fSEmmanuel Vadot  - compatible
56c66ec88fSEmmanuel Vadot  - reg
57c66ec88fSEmmanuel Vadot  - clocks
58c66ec88fSEmmanuel Vadot  - clock-names
59c66ec88fSEmmanuel Vadot  - vref-supply
60c66ec88fSEmmanuel Vadot  - '#address-cells'
61c66ec88fSEmmanuel Vadot  - '#size-cells'
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel VadotpatternProperties:
64c66ec88fSEmmanuel Vadot  "^dac@[1-2]+$":
65c66ec88fSEmmanuel Vadot    type: object
66c66ec88fSEmmanuel Vadot    description:
67c66ec88fSEmmanuel Vadot      A DAC block node should contain at least one subnode, representing an
68c66ec88fSEmmanuel Vadot      DAC instance/channel available on the machine.
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot    properties:
71c66ec88fSEmmanuel Vadot      compatible:
72c66ec88fSEmmanuel Vadot        const: st,stm32-dac
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot      reg:
75c66ec88fSEmmanuel Vadot        description: Must be either 1 or 2, to define (single) channel in use
76c66ec88fSEmmanuel Vadot        enum: [1, 2]
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot      '#io-channel-cells':
79c66ec88fSEmmanuel Vadot        const: 1
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot    additionalProperties: false
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel Vadot    required:
84c66ec88fSEmmanuel Vadot      - compatible
85c66ec88fSEmmanuel Vadot      - reg
86c66ec88fSEmmanuel Vadot      - '#io-channel-cells'
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadotexamples:
89c66ec88fSEmmanuel Vadot  - |
90c66ec88fSEmmanuel Vadot    // Example on stm32mp157c
91c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/stm32mp1-clks.h>
92c66ec88fSEmmanuel Vadot    dac: dac@40017000 {
93c66ec88fSEmmanuel Vadot      compatible = "st,stm32h7-dac-core";
94c66ec88fSEmmanuel Vadot      reg = <0x40017000 0x400>;
95c66ec88fSEmmanuel Vadot      clocks = <&rcc DAC12>;
96c66ec88fSEmmanuel Vadot      clock-names = "pclk";
97c66ec88fSEmmanuel Vadot      vref-supply = <&vref>;
98c66ec88fSEmmanuel Vadot      #address-cells = <1>;
99c66ec88fSEmmanuel Vadot      #size-cells = <0>;
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot      dac@1 {
102c66ec88fSEmmanuel Vadot        compatible = "st,stm32-dac";
103c66ec88fSEmmanuel Vadot        #io-channel-cells = <1>;
104c66ec88fSEmmanuel Vadot        reg = <1>;
105c66ec88fSEmmanuel Vadot      };
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot      dac@2 {
108c66ec88fSEmmanuel Vadot        compatible = "st,stm32-dac";
109c66ec88fSEmmanuel Vadot        #io-channel-cells = <1>;
110c66ec88fSEmmanuel Vadot        reg = <2>;
111c66ec88fSEmmanuel Vadot      };
112c66ec88fSEmmanuel Vadot    };
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadot...
115