On Mon, 12 Jan 2015 14:04:56 +0000
Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:

> On Mon, Jan 12, 2015 at 02:59:57PM +0100, Philipp Zabel wrote:
> > Am Montag, den 12.01.2015, 12:25 +0000 schrieb Russell King - ARM Linux:
> > > It's not quite that simple, because the SPDIF AP pins are multiplexed
> > > with the I2S pins - and there is variation between chip models and
> > > packages.
> > >
> > > So, it's probably best if port at 0 is the video port, and then port at 
> > > 1..n
> > > can describe the audio inputs, including a property which specifies
> > > whether they are I2S or SPDIF, and the value to be programmed into
> > > the AP enable register (which is a bit field of the AP pins which
> > > should be unmasked.)  I guess we can re-use the reg= property for that
> > > value, since video will always be zero.
> > 
> > Note that of_graph_parse_endpoint interprets the port node's reg
> > property as port id. And the unit address part of the node name should
> > match the first address in the reg property.

This is not the case in vexpress-v2p-ca15_a7.dts.

> So that's not going to work very well... because the AP register is a
> bitmask.
> 
> I guess we could specify a node unit and reg, which the code otherwise
> ignores, and specify a philipps,ap-mask = property for the audio ports
> instead.

Also, the video and audio ports must be distinguished. They could be
defined in different port groups.

Example from the Cubox:

        video-ports: ports at 0 {
                port {
                        tda998x_video: endpoint {
                                remote-endpoint = <&lcd0_0>;
                                nxp,video-port = <0x230145>;
                        };
                };
        };
        audio-ports: ports at 1 {
                port at 0 {                     /* AP1 = I2S */
                        tda998x_i2s: endpoint at 0 {
                                remote-endpoint = <&audio1_i2s>;
                                nxp,audio-port = <0x03>;
                        };
                };
                port at 1 {                      /* AP2 = S/PDIF */
                        tda998x_spdif: endpoint at 1 {
                                remote-endpoint = <&audio1_spdif1>;
                                nxp,audio-port = <0x04>;
                        };
                };
        };

The port type is identified by the bit AP0.

-- 
Ken ar c'hentañ        |             ** Breizh ha Linux atav! **
Jef             |               http://moinejf.free.fr/

Reply via email to