On Tue, Jul 02, 2019 at 09:09:15AM +0100, Srinivas Kandagatla wrote: > This patch adds bindings for wcd9340/wcd9341 audio codec which can > support both SLIMbus and I2S/I2C interface. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> > --- > .../bindings/sound/qcom,wcd934x.txt | 188 ++++++++++++++++++ > 1 file changed, 188 insertions(+) > create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd934x.txt > > diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd934x.txt b/Documentation/devicetree/bindings/sound/qcom,wcd934x.txt > new file mode 100644 > index 000000000000..2b48c98b5b7d > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/qcom,wcd934x.txt > @@ -0,0 +1,188 @@ > +QCOM WCD9340/9341 Codec Bindings > + > +Qualcomm WCD9340/WCD9341 Codec is a standalone Hi-Fi audio codec IC, supports > +Qualcomm Technologies, Inc. (QTI) multimedia solutions, including > +the MSM8996, MSM8976, and MSM8956 chipsets. It has in-built > +Soundwire controller, interrupt mux. It supports both I2S/I2C and > +SLIMbus audio interfaces. > + > +Required properties with SLIMbus Interface: > + > +- compatible: > + Usage: required > + Value type: <stringlist> > + Definition: For SLIMbus interface it should be "slimMID,PID", > + textual representation of Manufacturer ID, Product Code, > + shall be in lower case hexadecimal with leading zeroes > + suppressed. Refer to slimbus/bus.txt for details. > + Should be: > + "slim217,250" for SDM845/SDA845 SoCs with SLIMbus. > + > +- reg > + Usage: required > + Value type: <u32 u32> > + Definition: Should be ('Device index', 'Instance ID') > + > +- interrupts > + Usage: required > + Value type: <prop-encoded-array> > + Definition: Interrupts via WCD INTR1 and INTR2 pins Example only has 1 irq. > + > +- interrupt-names: > + Usage: required > + Value type: <String array> > + Definition: Interrupt names of WCD INTR1 and INTR2 > + Should be: "intr1", "intr2" > + > +- reset-gpios: > + Usage: required > + Value type: <String Array> Really? > + Definition: Reset gpio line > + > +- slim-ifc-dev: > + Usage: required > + Value type: <phandle> > + Definition: SLIM interface device > + > +- clocks: > + Usage: required > + Value type: <prop-encoded-array> > + Definition: See clock-bindings.txt section "consumers". List of > + three clock specifiers for mclk, mclk2 and slimbus clock. > + > +- clock-names: > + Usage: required > + Value type: <string> > + Definition: Must contain "mclk", "mclk2" and "slimbus" strings. > + > +- vdd-buck-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the 1.8V buck supply > + > +- vdd-buck-sido-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the 1.8V SIDO buck supply > + > +- vdd-rx-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the 1.8V rx supply > + > +- vdd-tx-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the 1.8V tx supply > + > +- vdd-vbat-supply: > + Usage: Optional > + Value type: <phandle> > + Definition: Should contain a reference to the vbat supply > + > +- vdd-micbias-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the micbias supply > + > +- vdd-io-supply: > + Usage: required > + Value type: <phandle> > + Definition: Should contain a reference to the 1.8V io supply > + > +- qcom,micbias1-lvl: > + Usage: required > + Value type: <u32> > + Definition: Should be voltage in milli Volts for micbias1 output > + Supported values are in inbetween 1800mV-2850mV > + > +- qcom,micbias2-lvl: > + Usage: required > + Value type: <u32> > + Definition: Should be voltage in milli Volts for micbias2 output > + Supported values are in inbetween 1800mV-2850mV > + > +- qcom,micbias3-lvl: > + Usage: required > + Value type: <u32> > + Definition: Should be voltage in milli Volts for micbias3 output > + Supported values are in inbetween 1800mV-2850mV > + > +- qcom,micbias4-lvl: > + Usage: required > + Value type: <u32> > + Definition: Should be voltage in milli Volts for micbias4 output > + Supported values are in inbetween 1800mV-2850mV > + > +- clock-output-names: > + Usage: required > + Value type: <string> > + Definition: Should be the "mclk", corresponding to name > + of the clk output. > + > +- clock-frequency: > + Usage: required > + Definition: Indicating the frequency of mclk output. > + > +- interrupt-controller: > + Usage: required > + Definition: Indicating that this is a interrupt controller > + > +- #interrupt-cells: > + Usage: required > + Value type: <int> > + Definition: should be 1 > + > +- #clock-cells: > + Usage: required > + Value type: <int> > + Definition: should be 0, as there is only one clock out supported. > + > +#sound-dai-cells > + Usage: required > + Value type: <u32> > + Definition: Must be 1 > + > +Example: > + > +wcd9340: audio-codec@1{ > + compatible = "slim217,250"; > + reg = <1 0>; > + reset-gpios = <&tlmm 64 0>; > + slim-ifc-dev = <&wcd9340_ifd>; > + vdd-buck-supply = <&vreg_s4a_1p8>; > + vdd-buck-sido-supply = <&vreg_s4a_1p8>; > + vdd-tx-supply = <&vreg_s4a_1p8>; > + vdd-rx-supply = <&vreg_s4a_1p8>; > + vdd-io-supply = <&vreg_s4a_1p8>; > + qcom,micbias1-lvl = <1800>; > + qcom,micbias2-lvl = <1800>; > + qcom,micbias3-lvl = <1800>; > + qcom,micbias4-lvl = <1800>; > + > + interrupt-parent = <&tlmm>; > + interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "intr1"; > + interrupt-controller; > + #interrupt-cells = <1>; > + > + #clock-cells = <0>; > + clock-frequency = <9600000>; > + clock-output-names = "mclk"; > + #sound-dai-cells = <1>; > + > + pinctrl@42 { > + compatible = "qcom,wcd9340-pinctrl"; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&wcdpinctrl 0 0 5>; > + reg = <0x42 0x2>; > + ... > + }; > + > + soundwire@c85{ Child nodes need documenting. > + compatible = "qcom,soundwire-v1.3.0"; > + reg = <0xc85 0x40>; > + ... > + }; > +}; > -- > 2.21.0 >