Re: Question about OF-graph ports

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, Jan 19, 2017 at 7:46 PM, Kuninori Morimoto
<kuninori.morimoto.gx@xxxxxxxxxxx> wrote:
>
> Hi Rob
>
> Thank you for your feedback
>
>> >         SoC.0              Codec0
>> >         SoC.1 <-> Card <-> Codec1
>> >         SoC.2              Codec2
> (snip)
>> The card should only have the entry (or exit) points of the graph.
>> That may not even need to be graph nodes. It could just be a list of
>> CPU DAI phandles (which then have graph nodes).
>>
>> Look at the display side use of OF graph. We have display subsystem
>> nodes (like a card) with a poorly named ports property (nothing to do
>> with OF graph) listing display channels. Each phandle there is the
>> entry point to the graph and is typically the front end display
>> controller (perhaps a CSC and scaling unit). The graph then goes to a
>> backend controller (for display timing), then to interface PHY
>> (DSI/HDMI), then possibly and external bridge chip, then to a
>> connector or panel node. That's a complex example. In simple cases, we
>> just have a display controller connected to a panel.
>
> If my understanding here was correct, do you mean like this ?

I need a drawing of what the hw looks like to really tell you.

>
>         sound_dai0 {
>                 ports {
>                         port { /* Card.0  */ }
>                         port { /* SoC.0  */ }
>                         port { /* Codec0 */ }

This tells me that the DAI0 h/w block has 2 inputs and 1 output or has
1 input and 2 outputs. I assume that is not what you meant.

>                 };
>         };
>
>         sound_dai1 {
>                 ports {
>                         port { /* Card.1  */ }
>                         port { /* SoC.1  */ }
>                         port { /* Codec1 */ }
>                 };
>         };
>
>         sound_dai2 {
>                 ports {
>                         port { /* Card.2  */ }
>                         port { /* SoC.2  */ }
>                         port { /* Codec2 */ }
>                 };
>         };
>
>         card {
>                 ports {
>                         port { /* sound_dai0 */ }
>                         port { /* sound_dai1 */ }
>                         port { /* sound_dai2 */ }
>                 };
>         };
>
>
> Or this ?
>
>         sound_dai0 {
>                 ports {
>                         port { /* SoC.0  */ }
>                         port { /* Codec0 */ }

This is probably closer, but I don't know what SoC.0 is. The input
should be some audio processor I guess.

>                 };
>         };
>
>         sound_dai1 {
>                 ports {
>                         port { /* SoC.1  */ }
>                         port { /* Codec1 */ }
>                 };
>         };
>
>         sound_dai2 {
>                 ports {
>                         port { /* SoC.2  */ }
>                         port { /* Codec2 */ }
>                 };
>         };
>
>         card {
>                 dais = <&sound_dai0
>                         &sound_dai1
>                         &sound_dai2>;
>         };
>
>
> Best regards
> ---
> Kuninori Morimoto
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux