On Mon, Aug 9, 2010 at 1:05 AM, Li Yang-R58472 <r58...@freescale.com> wrote: >>>><tt>*-clock</tt> is named for the signal name for the ''clock input'' >>>>of the device. it should describe the function of the signal for that >>>>device, rather than the name of the system-wide clock line. For >>>>example, a UART with two clocks - one for baud-rate clocking, and the >>>>other for register clocking - may have clock input properties named >>>>"baud-clock" and "register-clock". The property value is a tuple >>>>containing the phandle to the clock provider and the name of the clock >>output signal. >>>> >>>>For example: >>>> >>>> uart { >>>> baud-clock = <&osc>, "ckil"; >>>> register-clock = <&ref>, "bus"; >>>> }; >>>> >>>> >>>>This represents a device with two clock inputs, named "baud" and >>>>"register". The baud clock is connected to the "ckil" output of the >>"osc" >>>>device, and the register clock is connected to the "bus" output of the >>>>"ref" device. >>> >>> >>> Instead of having two items to identify a clock, I would suggest to have >>a node for each clock. So that clock can be referenced by one >>handle. Also we can have clock specific information defined in the clock >>node. Here is the example I am planning to use on 85xx PMC. >>> >>> >>> po...@e0070{ >>> compatible = "fsl,mpc8548-pmc", >>> "fsl,p2020-pmc"; >>> reg = <0xe0070 0x20>; >>> >>> etsec1_clk: soc-...@24{ >>> fsl,pmcdr-mask = <0x00000080>; >>> }; >>> etsec2_clk: soc-...@25{ >>> fsl,pmcdr-mask = <0x00000040>; >>> }; >>> etsec3_clk: soc-...@26{ >>> fsl,pmcdr-mask = <0x00000020>; >>> }; >>> }; >>> >>> enet0: ether...@24000 { >>> ...... >>> master-clock = <&etsec1_clk>; >>> ...... >>> >>> >>> What do you think? > > Quoting your reply: > >> I've avoided requiring clock nodes to have a separate sub node for >> each output because it is more verbose and it prevents clock providers >> from having child nodes for other purposes. Are you concerned that > > I don't see why there should be child nodes for other purposes under clock > node. > >> having the <phandle>+output name pair will be difficult to manage? > > That's part of my concern.
I was concerned about this too until I found precedence for doing the exact same thing in the pci binding (and ePAPR). Mixing phandle and a string in this way doesn't bother me anymore. > But my main concern is the inability of describing the properties of each > clock in the device tree. The clock stuff is much SoC related, which means > it could be variable among chips even in a same family. Having clock > properties defined in device tree will make it easier to have an abstracted > driver to handle clock operations. That's why device trees are used in the > first place, right? You can do whatever you like for your specific clock source driver. All the clock binding provides is a connection from a clock consumer node to a specific named output from a clock provider node. You can add whatever properties (or subnodes) you need for the hardware you are writing a binding for. This binding doesn't prevent you from doing anything. g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev