On Tue, Feb 04, 2014 at 11:14:44AM +0100, Hans de Goede wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi,
> 
> On 02/04/2014 10:40 AM, Maxime Ripard wrote:
> > Hi Hans,
> > 
> > On Tue, Jan 28, 2014 at 11:00:45AM +0100, Hans de Goede wrote:
> >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
> >> 
> >> Hi,
> >> 
> >> On 01/28/2014 10:44 AM, Maxime Ripard wrote:
> >>> On Mon, Jan 27, 2014 at 03:54:14PM +0100, Hans de Goede wrote:
> >>>>>> "allwinner,sun5i-a13-usb-gates-clk" - for usb gates + resets on A13
> >>>>> 
> >>>>> Maybe we can just remove the gates from there? Even though they are 
> >>>>> gates, they are also (a bit) more than that.
> >>>> 
> >>>> To be clear you mean s/usb-gates-clk/usb-clk/ right ?
> >>> 
> >>> Yep, exactly
> >>> 
> >>>>> I guess that means that we will have the OHCI0 gate declared with 
> >>>>> <&...-gates-clk 6>, while it's actually the first gate for this clock?
> >>>> 
> >>>> Correct.
> >>>> 
> >>>>> Maybe introducing an offset field in the gates_data would be a good 
> >>>>> idea, so that we always start from indexing the gates from 0 in the DT?
> >>>> 
> >>>> Well for the other "gates" type clks we also have holes in the range, 
> >>>> and we always refer to the clk with the bit number in the reg as the 
> >>>> clock-cell value.
> >>> 
> >>> Yes, we have holes, but I see two majors differences here: - the other 
> >>> gates are just gates, while the usb clocks are a bit more than that.
> >> 
> >> The usb-clk registers contain more then that, but the bits we are talking 
> >> about now are gates.
> >> 
> >>> - the other gates' gating bits thus all start at bit 0, while - here, 
> >>> since it's kind of a "mixed" clock, the gating bits start - at bit 6 (on 
> >>> the A20 at least)
> >> 
> >> Right, still I believe that the consistent thing to do is keeping the 
> >> bit-number for the bit in the register controlling the gate as the 
> >> specifier.  When adding new dts entries / reviewing existing ones I'm used 
> >> to matching the specifier to the bit-nr in the data-sheet, I think making 
> >> things different just for this one register is counter productive.
> > 
> > And if you turn it the other way around, it would be inconsistent that all 
> > gates indices start at 0, and we would start at 6 here :)
> 
> I think the problem here is that you see the specifier part of the clk
> phandle as an index, which it is not. All devicetree docs / code talks
> about specifiers or arguments not indexes. Once you stop seeing this as
> an index, you will hopefully also stop insisting this needs to
> start at 0 :)
> 
> Also note that it already is not an index for existing sunxi clks which have
> cells != 0, as there are holes in the bits used in the gates registers and
> calling the specifier an index suggest we're dealing with an array, and
> arrays never have holes.
> 
> The clk specifier as currently used in sunxi clks is a 1:1 mapping of the
> gate register bit numbers, as is clearly documented in ie:
> Documentation/devicetree/bindings/clock/sunxi/sun4i-a10-gates.txt
> Where the datasheet is referenced as the source for (most) of the values
> to put in the specifier.
> 
> My biggest objection is that this would loose 1:1 mapping we currently
> have between the specifier and bit-nr in the register, which really is
> convenient when writing new dts bindings.
> 
> When we add an offset users will need to first lookup which clk they need in
> the datasheet and then look at both the dts bindings doc to find how this is
> mapped to the specifier. In my experience such an extra level of indirection
> in documentation is a PITA, and all that just so that some random number
> (it is not an index!) can start at 0 ?
> 
> To me adding an offset here and making the clk gates different form all
> our other clock gates just feels wrong.

Emilio pretty much share your feeling. I won't get in the way then :)

I only had the compatible name comment left then.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Attachment: signature.asc
Description: Digital signature

Reply via email to