Re: [PATCH] dt-bindings: Nokia N9 audio support

From: Rob Herring
Date: Fri Jan 19 2018 - 15:15:57 EST


On Wed, Jan 10, 2018 at 09:53:15AM +0100, Pavel Machek wrote:
> From: Filip MatijeviÄ <filip.matijevic.pz@xxxxxxxxx>
>
> Add bindings for Nokia N9 audio components.
>
> Signed-off-by: Filip MatijeviÄ <filip.matijevic.pz@xxxxxxxxx>
> Signed-off-by: Pavel Machek <pavel@xxxxxx>
>
> diff --git a/Documentation/devicetree/bindings/media/ti-wl1273.txt b/Documentation/devicetree/bindings/media/ti-wl1273.txt
> new file mode 100644
> index 0000000..21db389
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/ti-wl1273.txt
> @@ -0,0 +1,36 @@
> +Texas Instruments - wl1273 radio/bluetooth module

bluetooth chips have a binding location: bindings/net/bluetooth.

And we already have a WL1273 binding. Plus there's the one for the Nokia
BT which I think can be TI chips with a different firmware and protocol.
Is this related?

> +
> +Required properties:
> +
> +- compatible - "ti,wl1273-core"
> +- reg - I2C slave address
> +- interrupts - The interrupt output from the device.
> +- interrupt-parent - The parent interrupt controller.
> +- power-gpio - gpio pin to power the device.
> +
> +- wl1273radio child - compatible = "ti,wl1273-fm-radio";

AIUI, the FM radio is accessed thru the HCI interface aka shared
transport via the UART. So it is already covered by the serial device
binding for TI chips.

> +
> +Optional properties:
> +
> +- wl1273codec child - compatible = "ti,wl1273codec";

This is a codec or just BT audio I2S/PCM interface?

> +
> +Example:
> +
> +wl1273core: wl1273core@22 {
> + compatible = "ti,wl1273-core";
> + reg = <0x22>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wl1273_gpio>;
> +
> + interrupt-parent = <&gpio2>;
> + interrupts = <11 2>; /* gpio_43, IRQF_TRIGGER_FALLING */
> +
> + wl1273radio: wl1273radio {
> + compatible = "ti,wl1273-fm-radio";
> + };
> +
> + wl1273codec: wl1273codec {
> + compatible = "ti,wl1273-codec";
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/sound/nokia,n9.txt b/Documentation/devicetree/bindings/sound/nokia,n9.txt
> new file mode 100644
> index 0000000..230b1eb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nokia,n9.txt
> @@ -0,0 +1,32 @@
> +* Nokia N9/N950 audio setup
> +
> +Required properties:
> +- compatible: "nokia,n9-audio"
> +
> +- nokia,twl4030-cpu-dai: phandle for the McBSP node connected to TWL4030
> +- nokia,tlv320dac33-cpu-dai: phandle for the McBSP node connected to TLV320DAC33
> +- nokia,wl1273-cpu-dai: phandle for the McBSP node connected to WL1273
> +
> +- nokia,twl4030-codec: phandle for the TWL4030 codec
> +- nokia,tlv320dac33-codec: phandle for the TLV320DAC33 codec
> +- nokia,wl1273-codec: phandle for the WL1273 codec

Both dais and codecs should just be lists with a defined order.

> +- nokia,headphone-amplifier: phandle for the TPA6130A2 node

The simple card or graph card binding don't work? At least follow them
to the extent that they do work.
> +
> +- nokia,speaker-amplifier-gpios: GPIO for speaker amplifier
> +
> +Example:
> +
> +sound: n9-audio {
> + compatible = "nokia,n9-audio";
> +
> + nokia,twl4030-cpu-dai = <&mcbsp3>;
> + nokia,tlv320dac33-cpu-dai = <&mcbsp2>;
> + nokia,wl1273-cpu-dai = <&mcbsp4>;
> +
> + nokia,twl4030-codec = <&twl4030_audio>;
> + nokia,tlv320dac33-codec = <&tlv320dac33>;
> + nokia,wl1273-codec = <&wl1273codec>;
> + nokia,headphone-amplifier = <&tpa6140a2>;
> +
> + nokia,speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
> +};
> diff --git a/Documentation/devicetree/bindings/sound/tlv320dac33.txt b/Documentation/devicetree/bindings/sound/tlv320dac33.txt
> new file mode 100644
> index 0000000..8e981f7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/tlv320dac33.txt
> @@ -0,0 +1,39 @@
> +Texas Instruments - tlv320dac33 Codec module
> +
> +The tlv320dac33 serial control bus communicates through I2C protocols.
> +
> +Required properties:
> +
> +- compatible - "ti,tlv320dac33"
> +- reg - I2C slave address
> +
> +Optional properties:
> +
> +- power-gpio - gpio pin to power the device

power-gpios.

Active high or low?

> +
> +- avdd-supply, dvdd-supply, iovdd-supply: power supplies for the device as covered
> + in Documentation/devicetree/bindings/regulator/regulator.txt
> +
> +- interrupts - The interrupt output from the device.
> +- interrupt-parent - The parent interrupt controller.
> +
> +- ti,keep-bclk - Keep the BCLK running in FIFO modes
> +- ti,burst-bclkdiv - BCLK divider value in burst mode
> +
> +Example:
> +
> +tlv320dac33: tlv320dac33@19 {

audio-codec@19

> + compatible = "ti,tlv320dac33";
> + reg = <0x19>;
> +
> + avdd-supply = <&vaux4>;
> + dvdd-supply = <&vio>;
> + iovdd-supply = <&vio>;
> +
> + interrupt-parent = <&gpio2>;
> + interrupts = <21 1>; /* gpio_53, IRQF_TRIGGER_RISING */
> + power-gpio = <&gpio2 28 0>; /* gpio_60 */
> +
> + ti,keep-bclk;
> + ti,burst-bclkdiv = /bits/ 8 <3>;
> +};
>
>
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html