* Simon Glass <s...@chromium.org> [120127 07:12]:
> 
> On Thu, Jan 26, 2012 at 6:21 PM, Tony Lindgren <t...@atomide.com> wrote:
> >
> > Maybe we need two bindings: A minimal subset of what Stephen is suggesting
> > that can handle 95% of the muxes with minimal overhead, then what you're
> > suggesting for the few muxes that need multiple states?
> 
> Perhaps that would work, it certainly deals nicely with making the
> rare cases less ugly if indeed they are rare. Of course a single
> binding that is not too ugly and still reasonably efficient would be
> best.
> 
> I will have a think about this a bit more and see if anything leaps
> out. It's quite an interesting problem...

Just to try to recap what has come up so far:

1. We need to avoid bloating things for basic cases to initialize
   several hundred pins.

2. Some muxes need to define multiple states.

3. We need to pass a flag for each mux to know whether or
   not it can be freed after init.

So how about let's do separate static and dynamic bindings,
something like this:

        /*
         * Static init time only mux where
         * we only specify phandle to driver
         * and, offset of the mux, and the value.
         * These pins are discarded after init.
         *
         * Format:        mux_ctrl      offset value
         */
        pinctrl-static = <&pmx_driver1  0x0020 0x1245
                           &pmx_driver2 0x0022 0x6578>;

        /*
         * Dynamic mux where the mux is kept around after
         * init and multiple states can be defined for
         * a mux as a subnode of the pinmux controller.
         *
         * Format:         mux_phandle   initial state
         */ 
        pinctrl-dynamic = <&pmx_sdhci    PMX_STATE_ENABLED
                           &pmx_ehci_xcv PMX_STATE_ENABLED>;

This would make pinctrl-static binding follow the same
standard as GPIO binding and can be parsed easily with
of_parse_phandle_with_args.

Then for pinctrl-dynamic we can make a custom parser,
and the binding can follow the more readable format as
Simon posted.

Regards,

Tony
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to