mfd: ac100: Add device tree bindings for X-Powers AC100 codec/RTC combo IC
authorChen-Yu Tsai <wens@csie.org>
Fri, 8 Jul 2016 14:33:36 +0000 (22:33 +0800)
committerLee Jones <lee.jones@linaro.org>
Mon, 8 Aug 2016 11:53:11 +0000 (12:53 +0100)
The AC100 is a multifunction device with an audio codec subsystem and
an RTC subsystem. These two subsystems share a common register space
and host interface.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Documentation/devicetree/bindings/mfd/ac100.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/mfd/ac100.txt b/Documentation/devicetree/bindings/mfd/ac100.txt
new file mode 100644 (file)
index 0000000..b8ef006
--- /dev/null
@@ -0,0 +1,54 @@
+X-Powers AC100 Codec/RTC IC Device Tree bindings
+
+AC100 is a audio codec and RTC subsystem combo IC. The 2 parts are
+separated, including power supplies and interrupt lines, but share
+a common register address space and host interface.
+
+Required properties:
+- compatible: "x-powers,ac100"
+- reg: The I2C slave address or RSB hardware address for the chip
+- sub-nodes:
+  - codec
+    - compatible:              "x-powers,ac100-codec"
+    - interrupt-parent:                The parent interrupt controller
+    - interrupts:              SoC NMI / GPIO interrupt connected to the
+                               IRQ_AUDIO pin
+    - #clock-cells:            Shall be 0
+    - clock-output-names:      "4M_adda"
+
+    - see clock/clock-bindings.txt for common clock bindings
+
+  - rtc
+    - compatible:              "x-powers,ac100-rtc"
+    - interrupt-parent:                The parent interrupt controller
+    - interrupts:              SoC NMI / GPIO interrupt connected to the
+                               IRQ_RTC pin
+    - clocks:                  A phandle to the codec's "4M_adda" clock
+    - #clock-cells:            Shall be 1
+    - clock-output-names:      "cko1_rtc", "cko2_rtc", "cko3_rtc"
+
+    - see clock/clock-bindings.txt for common clock bindings
+
+Example:
+
+ac100: codec@e89 {
+       compatible = "x-powers,ac100";
+       reg = <0xe89>;
+
+       ac100_codec: codec {
+               compatible = "x-powers,ac100-codec";
+               interrupt-parent = <&r_pio>;
+               interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
+               #clock-cells = <0>;
+               clock-output-names = "4M_adda";
+       };
+
+       ac100_rtc: rtc {
+               compatible = "x-powers,ac100-rtc";
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&ac100_codec>;
+               #clock-cells = <1>;
+               clock-output-names = "cko1_rtc", "cko2_rtc", "cko3_rtc";
+       };
+};