ASoC: rockchip: add support for pdm controller
[firefly-linux-kernel-4.4.55.git] / Documentation / devicetree / bindings / sound / rockchip,pdm.txt
diff --git a/Documentation/devicetree/bindings/sound/rockchip,pdm.txt b/Documentation/devicetree/bindings/sound/rockchip,pdm.txt
new file mode 100644 (file)
index 0000000..921729d
--- /dev/null
@@ -0,0 +1,39 @@
+* Rockchip PDM controller
+
+Required properties:
+
+- compatible: "rockchip,pdm"
+- reg: physical base address of the controller and length of memory mapped
+  region.
+- dmas: DMA specifiers for rx dma. See the DMA client binding,
+       Documentation/devicetree/bindings/dma/dma.txt
+- dma-names: should include "rx".
+- clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names.
+- clock-names: should contain following:
+   - "pdm_hclk": clock for PDM BUS
+   - "pdm_clk" : clock for PDM controller
+- pinctrl-names: Must contain a "default" entry.
+- pinctrl-N: One property must exist for each entry in
+            pinctrl-names. See ../pinctrl/pinctrl-bindings.txt
+            for details of the property values.
+
+Example for rk3328 PDM controller:
+
+pdm: pdm@ff040000 {
+       compatible = "rockchip,pdm";
+       reg = <0x0 0xff040000 0x0 0x1000>;
+       clocks = <&clk_pdm>, <&clk_gates28 0>;
+       clock-names = "pdm_clk", "pdm_hclk";
+       dmas = <&pdma 16>;
+       #dma-cells = <1>;
+       dma-names = "rx";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pdmm0_clk
+                    &pdmm0_fsync
+                    &pdmm0_sdi0
+                    &pdmm0_sdi1
+                    &pdmm0_sdi2
+                    &pdmm0_sdi3>;
+       pinctrl-1 = <&pdmm0_sleep>;
+       status = "disabled";
+};