Thread (1 message) 1 message, 1 author, 2015-03-10

[PATCH v5 3/3] ARM: dts: igep00x0: add wl18xx bindings

From: tony@atomide.com (Tony Lindgren)
Date: 2015-03-10 16:18:02
Also in: linux-devicetree, linux-omap, linux-wireless

* Eliad Peller [off-list ref] [150310 09:11]:
On Tue, Mar 10, 2015 at 5:52 PM, Arnd Bergmann [off-list ref] wrote:
quoted
On Tuesday 10 March 2015 16:31:33 Eliad Peller wrote:
quoted
On Tue, Mar 10, 2015 at 4:11 PM, Arnd Bergmann [off-list ref] wrote:
quoted
On Tuesday 10 March 2015 13:00:19 Eliad Peller wrote:
quoted
On Tue, Mar 10, 2015 at 12:49 AM, Tony Lindgren [off-list ref] wrote:
quoted
quoted
quoted
I was expecting you to remove all calls to legacy_init_wl12xx from this file,
including the ones for wl12xx aside from the wl18xx ones you removed, but
if that's enough to clean out the platform_data handling from the wlcore
driver, it's good enough as a start.
not sure i'm following - can you elaborate?

i'll summarize the way i see it. please correct me if i'm wrong.

both wl18xx and wl12xx use the platform data to get the irq number.
wl12xx (only) also needs some additional clock definitions to be
passed. there's currently some issue with specifying some the of clock
sources, so i preferred starting only with (the simpler) wl18xx
bindings.

for platforms with wl18xx, we can remove the pdata-quirk, as all the
data (i.e. irq) can be passed by the new DT bindings.
however, for platforms with wl12xx, we still need to pass the clock
definitions (along with the irq), so we have to keep
legacy_init_wl12xx for the time being (and that's also why we have to
currently keep the platform_data handling in the wlcore driver)

do you have something else in mind?
I think what Arnd is saying is we've now removed all the wl12xx using
legacy platforms, so all of them can boot with just data from dts.
Right, that was my idea.
quoted
I don't think that's the case (unless i'm missing something).
e.g. there's still pdata-quirk for "compulab,omap3-sbc-t3730" which
initializes wl12xx device.
This one is just like the igep0030, as Tony was saying: the board
boots from device tree already, so now that we have a binding for
it, we can remove the wl12xx_set_platform_data() for it.
i think the wl12xx_set_platform_data() name created some confusion -
it is used to pass platform data for both wl12xx and wl18xx devices.
(this confusion is all around the wlcore driver as well, due to the
code evolution)

the binding i added is for wl18xx only (there is no wl12xx binding yet).
the remaining boards, AFAICT, have wl12xx (rather than wl18xx) cards.
so i don't see how we can remove these wl12xx_set_platform_data()
calls before we have wl12xx bindings in-place as well.
What is missing for that binding then? I keep getting confused here,
but I thought that they share the implementation that looks at the
platform data.
they both get the same wl12xx_platform_data struct, but only wl12xx
cares about the clocks-related fields.
the bindings i added parses only the irq.

(Luca tried previously to upstream wl12xx DT support along with the
required clock DT changes, but got some rejections, mainly wrt. clock
stuff.
e.g. http://thread.gmane.org/gmane.linux.kernel/1520752
that's why i preferred starting with "easier" wl18xx bindings only)
I believe we did not have clock bindings back then, now it's simple
to get the clock. If it's some internal clock to the wl12xx, then
that's a different story, it should be just hidden behind a compatible
flag then.

Regards,

Tony
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help