Hi Anton,

On Wed, 2008-08-06 at 16:07 +0400, Anton Vorontsov wrote:
> Hello Li,
> 
> On Wed, Aug 06, 2008 at 03:04:44PM +0800, Li Yang wrote:
> > Signed-off-by: Li Yang <[EMAIL PROTECTED]>
> > ---
> >  arch/powerpc/boot/dts/mpc836x_mds.dts     |   15 ++++++-
> >  arch/powerpc/platforms/83xx/mpc836x_mds.c |   19 ++++++++-
> >  arch/powerpc/platforms/83xx/mpc83xx.h     |    1 +
> >  arch/powerpc/platforms/83xx/usb.c         |   67 
> > +++++++++++++++++++++++++++++
> >  4 files changed, 100 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts 
> > b/arch/powerpc/boot/dts/mpc836x_mds.dts
> > index a3b76a7..596377b 100644
> > --- a/arch/powerpc/boot/dts/mpc836x_mds.dts
> > +++ b/arch/powerpc/boot/dts/mpc836x_mds.dts
> > @@ -235,6 +235,17 @@
> >                                     0  2  1  0  1  0>; /* MDC */
> >                     };
> >  
> > +                   pio_usb: [EMAIL PROTECTED] {
> > +                           pio-map = <
> > +                   /* port  pin  dir  open_drain  assignment  has_irq */
> > +                                   1  2  1  0  3  0        /* USBOE  */
> > +                                   1  3  1  0  3  0        /* USBTP  */
> > +                                   1  8  1  0  1  0        /* USBTN  */
> > +                                   1 10  2  0  3  0        /* USBRXD */
> > +                                   1  9  2  1  3  0        /* USBRP  */
> > +                                   1 11  2  1  3  0>;      /* USBRN  */
> > +                   };
> > +
> >             };
> >     };
> >  
> > @@ -280,11 +291,13 @@
> >             };
> >  
> >             [EMAIL PROTECTED] {
> > -                   compatible = "qe_udc";
> > +                   compatible = "fsl,qe_udc";
> 
> You might want to reuse existing bindings as described in
> Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt.

Ok.  I didn't notice your addition to the binding.  I will try to update
it for device mode.

> 
> >                     reg = <0x6c0 0x40 0x8b00 0x100>;
> >                     interrupts = <11>;
> >                     interrupt-parent = <&qeic>;
> >                     mode = "slave";
> 
> I'd suggest to rename this to "peripheral" as we use for fsl dual-role
> usb controller.

As there will be two drivers chosen by compatible, I'm now inclined to
put this information in compatible.

> 
> > +                   usb-clock = <21>;
> > +                   pio-handle = <&pio_usb>;
> 
> Can we not introduce new pio maps? The pio setup should be done
> by the firmware, or at least fixed up via the board file, as in
> arch/powerpc/platforms/83xx/mpc832x_rdb.c.

Actually I am more apt to leaving full hardware access to kernel than
firmware, especially for devices that are not used in firmware.  The
reason why I made the pin-configuration flexible is that for development
boards the role of pins are often changeable.

> 
> [...]
> > +#ifdef CONFIG_QUICC_ENGINE
> > +/* QE USB_CLOCK configure functions */
> > +int qe_usb_clock_set(struct device_node *np)
> 
> We already have this function, in arch/powerpc/sysdev/qe_lib/usb.c

I just saw this.  Will try to reuse it.

> 
> It does not parse any of properties though, driver should do this.
> 
> > +{
> > +   u32 tmpreg = 0;
> > +   struct qe_mux *qemux = NULL;
> > +   const int *clock;
> > +
> > +   qemux = &qe_immr->qmx;
> > +
> > +   clock = of_get_property(np, "usb-clock", NULL);
> > +   if (!clock)
> > +           return -EINVAL;
> > +
> > +   /* CLK21 -> USBCLK on MPC8360-PB*/
> > +   tmpreg = in_be32(&qemux->cmxgcr) & ~QE_CMXGCR_USBCS;
> > +   switch (*clock) {
> > +   case 21:
> > +           tmpreg |= 0x8;
> > +           out_be32(&qemux->cmxgcr, tmpreg);
> > +           par_io_config_pin(2, 20, 2, 0, 1, 0);  /* PC20 for CLK21 */
> 
> No, pio config is very board-specific. This should be done by the
> firmware (ideally) or by the board file.

Pio config is board and board configuration specific.  It's better to
make it configurable by device tree.

- Leo

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to