[v2,1/4] dt-bindings: add sunxi SPDIF transceiver bindings
diff mbox

Message ID 1443635458-8873-2-git-send-email-codekipper@gmail.com
State New
Headers show

Commit Message

Code Kipper Sept. 30, 2015, 5:50 p.m. UTC
From: Marcus Cooper <codekipper@gmail.com>

Add devicetree bindings for the SPDIF transceiver found on
found on Allwinners A10, A20 and A31 SoCs.

Signed-off-by: Marcus Cooper <codekipper@gmail.com>
---
 .../devicetree/bindings/sound/sunxi,spdif.txt      | 49 ++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/sunxi,spdif.txt

Comments

Maxime Ripard Oct. 1, 2015, 8:12 p.m. UTC | #1
On Wed, Sep 30, 2015 at 07:50:55PM +0200, codekipper@gmail.com wrote:
> From: Marcus Cooper <codekipper@gmail.com>
> 
> Add devicetree bindings for the SPDIF transceiver found on
> found on Allwinners A10, A20 and A31 SoCs.
> 
> Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> ---
>  .../devicetree/bindings/sound/sunxi,spdif.txt      | 49 ++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/sunxi,spdif.txt
> 
> diff --git a/Documentation/devicetree/bindings/sound/sunxi,spdif.txt b/Documentation/devicetree/bindings/sound/sunxi,spdif.txt
> new file mode 100644
> index 0000000..1868722
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/sunxi,spdif.txt
> @@ -0,0 +1,49 @@
> +Allwinner Sony/Philips Digital Interface Format (S/PDIF) Controller
> +
> +The Allwinner S/PDIF audio block is a transceiver that allows the
> +processor to receive and transmit digital audio via an coaxial cable or
> +a fibre cable.
> +
> +Required properties:
> +
> +  - compatible		: should be one of the following:
> +    - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
> +    - "allwinner,sun7i-a20-spdif": for the Allwinner A20 SoC
> +    - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC

Are all these compatibles really work? Is there any significant
difference between the controller on all these SoCs?

Thanks,
Maxime
Code Kipper Oct. 2, 2015, 5:24 a.m. UTC | #2
>> +
>> +  - compatible               : should be one of the following:
>> +    - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
>> +    - "allwinner,sun7i-a20-spdif": for the Allwinner A20 SoC
>> +    - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
>
> Are all these compatibles really work? Is there any significant
> difference between the controller on all these SoCs?
Let us assume that there isn't any difference. Remember SPDIF details
for all of these devices is sketchy. In the A10 User Manual, it's not
even mentioned although devices such as the Mele A2000 which I use
come with the physical connector. It's only when the A20 Manual was
released that we see the pin details and related components. We didn't
see a SPDIF block spec until the H3 User Manual was released.

Looking at the SDK code I've only seen fifo level settings to be
different for the sun6i family. It was this release that also showed
Rx rotines. The fact of the matter is we won't know until these SoCs
have been tested and with that in mind I'm happy to remove all
capabilities for now until then.

BR,
CK

>
> Thanks,
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
Maxime Ripard Oct. 5, 2015, 8:41 a.m. UTC | #3
On Fri, Oct 02, 2015 at 07:24:20AM +0200, Code Kipper wrote:
> >> +
> >> +  - compatible               : should be one of the following:
> >> +    - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
> >> +    - "allwinner,sun7i-a20-spdif": for the Allwinner A20 SoC
> >> +    - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
> >
> > Are all these compatibles really work? Is there any significant
> > difference between the controller on all these SoCs?
>
> Let us assume that there isn't any difference. Remember SPDIF details
> for all of these devices is sketchy. In the A10 User Manual, it's not
> even mentioned although devices such as the Mele A2000 which I use
> come with the physical connector. It's only when the A20 Manual was
> released that we see the pin details and related components. We didn't
> see a SPDIF block spec until the H3 User Manual was released.
> 
> Looking at the SDK code I've only seen fifo level settings to be
> different for the sun6i family. It was this release that also showed
> Rx rotines. The fact of the matter is we won't know until these SoCs
> have been tested and with that in mind I'm happy to remove all
> capabilities for now until then.

The point was more that you document compatibles that you are not
actually supporting.

You've only tested it on one SoC (and it actually works only on one
SoC, or at least with one compatible), so only document that.

Maxime
Code Kipper Oct. 5, 2015, 10:40 a.m. UTC | #4
On 5 October 2015 at 10:41, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Fri, Oct 02, 2015 at 07:24:20AM +0200, Code Kipper wrote:
>> >> +
>> >> +  - compatible               : should be one of the following:
>> >> +    - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
>> >> +    - "allwinner,sun7i-a20-spdif": for the Allwinner A20 SoC
>> >> +    - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
>> >
>> > Are all these compatibles really work? Is there any significant
>> > difference between the controller on all these SoCs?
>>
>> Let us assume that there isn't any difference. Remember SPDIF details
>> for all of these devices is sketchy. In the A10 User Manual, it's not
>> even mentioned although devices such as the Mele A2000 which I use
>> come with the physical connector. It's only when the A20 Manual was
>> released that we see the pin details and related components. We didn't
>> see a SPDIF block spec until the H3 User Manual was released.
>>
>> Looking at the SDK code I've only seen fifo level settings to be
>> different for the sun6i family. It was this release that also showed
>> Rx rotines. The fact of the matter is we won't know until these SoCs
>> have been tested and with that in mind I'm happy to remove all
>> capabilities for now until then.
>
> The point was more that you document compatibles that you are not
> actually supporting.
>
> You've only tested it on one SoC (and it actually works only on one
> SoC, or at least with one compatible), so only document that.

Fixed,
Thanks,
CK
>
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com

Patch
diff mbox

diff --git a/Documentation/devicetree/bindings/sound/sunxi,spdif.txt b/Documentation/devicetree/bindings/sound/sunxi,spdif.txt
new file mode 100644
index 0000000..1868722
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/sunxi,spdif.txt
@@ -0,0 +1,49 @@ 
+Allwinner Sony/Philips Digital Interface Format (S/PDIF) Controller
+
+The Allwinner S/PDIF audio block is a transceiver that allows the
+processor to receive and transmit digital audio via an coaxial cable or
+a fibre cable.
+
+Required properties:
+
+  - compatible		: should be one of the following:
+    - "allwinner,sun4i-a10-spdif": for the Allwinner A10 SoC
+    - "allwinner,sun7i-a20-spdif": for the Allwinner A20 SoC
+    - "allwinner,sun6i-a31-spdif": for the Allwinner A31 SoC
+
+  - reg			: Offset and length of the register set for the device.
+
+  - interrupts		: Contains the spdif interrupt.
+
+  - dmas		: Generic dma devicetree binding as described in
+			  Documentation/devicetree/bindings/dma/dma.txt.
+
+  - dma-names		: Two dmas have to be defined, "tx" and "rx".
+
+  - clocks		: Contains an entry for each entry in clock-names.
+
+  - clock-names		: Includes the following entries:
+	"apb"		  clock for the spdif bus.
+	"audio"		  clock from the audio pll.
+	"spdif"		  clock for spdif controller.
+
+Optional:
+
+  - spdif-in		: Enable block for capturing an SPDIF signal.
+
+  - spdif-out		: Enable block for transmitting an SPDIF signal.
+
+Example:
+
+spdif: spdif@01c21000 {
+	compatible = "allwinner,sun4i-a10-spdif";
+	reg = <0x01c21000 0x40>;
+	interrupts = <13>;
+	clocks = <&apb0_gates 1>, <&pll2 0>, <&spdif_clk>;
+	clock-names = "apb", "audio", "spdif";
+	dmas = <&dma 0 2>, <&dma 0 2>;
+	dma-names = "rx", "tx";
+	spdif-in = "disabled";
+	spdif-out = "okay";
+	status = "okay";
+};