Re: Use of pinctrl-single for external device over I2C

From: Vaibhav Hiremath
Date: Tue Jun 30 2015 - 03:58:34 EST




On Tuesday 30 June 2015 01:16 PM, Vaibhav Hiremath wrote:


On Thursday 25 June 2015 11:16 AM, Vaibhav Hiremath wrote:


On Thursday 25 June 2015 10:08 AM, Tony Lindgren wrote:
* Vaibhav Hiremath <vaibhav.hiremath@xxxxxxxxxx> [150624 10:12]:

I do not like this, as this is not HW feature, so DT may not be right
approach.

So I will dig more from either runtime or Compile time option to use
regmap_ Vs raw read/writes.

Can't you just check if the pinctrl node has compatible = "syscon"
property?

A compile time option won't work for sure. I don't know what you
would check at runtime as you do not know what the bus is behind
syscon.


Although, I haven't gone through syscon, but not sure whether syscon
would be useful.

As you rightly stated, we need to know the bus behind regmap.


Trying to understand what is the right way of doing pinctrl of external
device on board,

I feel it would not be good idea to pollute pinctrl-single driver, and
also I am still not able to figure out how can I have access to bus
behind regmap.


How about having separate driver (generic for all I2C), say pinctrl-
i2c.c, which is i2c_client driver and would support pinctrl and pinmux
on I2C client device.


I mean, part of mfd here (mfd_cell)


The current usecase which I have is pretty simple in nature,

88PM860 has few GPIO pins which can be configured to different
functionality, based on board design.
In most of the cases they are one/init/boot time settings.

GPIO_0:
=======
000 = GPIO input mode
001 = GPIO output mode
010 = SLEEPOUTN mirror mode
011 = Buck4 FPWM enable
100 = 32 Khz output buffer mode
101 = PMICINTN output mode
110 = HW_RESET1 mode
111 = HW_RESET2 mode


Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/