On 28/04/14 19:45, Tony Lindgren wrote: > * Tomi Valkeinen <tomi.valkeinen@xxxxxx> [140427 23:53]: >> On 25/04/14 18:31, Tony Lindgren wrote: >> >>> Chances are any mux register in the syscon area already works with >>> pinctrl-single,pins or pinctrl-single,bits option. The ones in the >>> padconf area should be already mapped so the driver just has to >>> request them. >> >> If using the padconf (say omap4_padconf_global for omap4), doesn't that >> mean we need to have platform specific bits in the driver? Isn't that >> something we've been trying to remove all the time? > > No, it's all done in a Linux generic way during driver probe, see > drivers/base/pinctrl.c. You just need to define the default pins > in the .dts files. If you need dynamic remuxing in the driver, > you can define other named states that the driver can then toggle > with pinctrl_select_state(). omap4_padconf_global is a syscon node, not pinctrl. As syscon just gives a raw regmap to its memory area, the driver needs to know about the OMAP control registers to use it. Pinctrl-single cannot be used for CONTROL_DSIPHY register, as the register contents are a bit funny and DSI1 and DSI2 bits are mixed together. And CONTROL_DSIPHY is already in the memory region defined by the omap4_padconf_global, so I guess it wouldn't be good to map parts of the same memory region in a pinctrl node. Tomi
Attachment:
signature.asc
Description: OpenPGP digital signature