Use of pinctrl-single for external device over I2C

Vaibhav Hiremath vaibhav.hiremath at
Tue Jun 30 00:46:27 PDT 2015

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 at> [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.

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.

   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


More information about the linux-arm-kernel mailing list