diff mbox series

[v2,1/3] gpio: intel_gpio: Pass pinctrl device to pcr_clrsetbits32()

Message ID 20200203103806.29445-2-wolfgang.wallner@br-automation.com
State Accepted
Commit b840c395c64fd2dfadb96717bb6898a3069239a0
Headers show
Series gpio: intel_gpio: Fix Intel gpio driver | expand

Commit Message

Wolfgang Wallner Feb. 3, 2020, 10:38 a.m. UTC
The function pcr_clrsetbits32() expects a device with a P2SB parent
device. In intel_gpio_direction_output() and intel_gpio_set_value()
the device 'dev' is passed to pcr_clrsetbits32(), which is a
gpio-controller with a device 'pinctrl' as parent. This does not match
the expectations of pcr_clrsetbits32(). But the 'pinctrl' device has a
P2SB as parent.

Pass the 'pinctrl' device instead of the 'dev' device to
pcr_clrsetbits32().

Signed-off-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>

---

Changes in v2:
- Fixed typo in the commit description
- Fixed the same error in both intel_gpio_direction_output() and
intel_gpio_set_value() (Thanks to Bin Meng for catching this)
- Reworded commit description

 drivers/gpio/intel_gpio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Bin Meng Feb. 3, 2020, 10:48 a.m. UTC | #1
On Mon, Feb 3, 2020 at 6:38 PM Wolfgang Wallner
<wolfgang.wallner at br-automation.com> wrote:
>
> The function pcr_clrsetbits32() expects a device with a P2SB parent
> device. In intel_gpio_direction_output() and intel_gpio_set_value()
> the device 'dev' is passed to pcr_clrsetbits32(), which is a
> gpio-controller with a device 'pinctrl' as parent. This does not match
> the expectations of pcr_clrsetbits32(). But the 'pinctrl' device has a
> P2SB as parent.
>
> Pass the 'pinctrl' device instead of the 'dev' device to
> pcr_clrsetbits32().
>
> Signed-off-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>
>
> ---
>
> Changes in v2:
> - Fixed typo in the commit description
> - Fixed the same error in both intel_gpio_direction_output() and
> intel_gpio_set_value() (Thanks to Bin Meng for catching this)
> - Reworded commit description
>
>  drivers/gpio/intel_gpio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
Bin Meng Feb. 4, 2020, 2:58 a.m. UTC | #2
On Mon, Feb 3, 2020 at 6:48 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> On Mon, Feb 3, 2020 at 6:38 PM Wolfgang Wallner
> <wolfgang.wallner at br-automation.com> wrote:
> >
> > The function pcr_clrsetbits32() expects a device with a P2SB parent
> > device. In intel_gpio_direction_output() and intel_gpio_set_value()
> > the device 'dev' is passed to pcr_clrsetbits32(), which is a
> > gpio-controller with a device 'pinctrl' as parent. This does not match
> > the expectations of pcr_clrsetbits32(). But the 'pinctrl' device has a
> > P2SB as parent.
> >
> > Pass the 'pinctrl' device instead of the 'dev' device to
> > pcr_clrsetbits32().
> >
> > Signed-off-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>
> >
> > ---
> >
> > Changes in v2:
> > - Fixed typo in the commit description
> > - Fixed the same error in both intel_gpio_direction_output() and
> > intel_gpio_set_value() (Thanks to Bin Meng for catching this)
> > - Reworded commit description
> >
> >  drivers/gpio/intel_gpio.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
>
> Reviewed-by: Bin Meng <bmeng.cn at gmail.com>

applied to u-boot-x86, thanks!
diff mbox series

Patch

diff --git a/drivers/gpio/intel_gpio.c b/drivers/gpio/intel_gpio.c
index 4bf1c9ddc4..b05cfc4aed 100644
--- a/drivers/gpio/intel_gpio.c
+++ b/drivers/gpio/intel_gpio.c
@@ -39,7 +39,7 @@  static int intel_gpio_direction_output(struct udevice *dev, uint offset,
 	struct udevice *pinctrl = dev_get_parent(dev);
 	uint config_offset = intel_pinctrl_get_config_reg_addr(pinctrl, offset);
 
-	pcr_clrsetbits32(dev, config_offset,
+	pcr_clrsetbits32(pinctrl, config_offset,
 			 PAD_CFG0_MODE_MASK | PAD_CFG0_RX_STATE |
 				  PAD_CFG0_TX_DISABLE,
 			 PAD_CFG0_MODE_GPIO | PAD_CFG0_RX_DISABLE |
@@ -72,7 +72,7 @@  static int intel_gpio_set_value(struct udevice *dev, unsigned offset, int value)
 	struct udevice *pinctrl = dev_get_parent(dev);
 	uint config_offset = intel_pinctrl_get_config_reg_addr(pinctrl, offset);
 
-	pcr_clrsetbits32(dev, config_offset, PAD_CFG0_TX_STATE,
+	pcr_clrsetbits32(pinctrl, config_offset, PAD_CFG0_TX_STATE,
 			 value ? PAD_CFG0_TX_STATE : 0);
 
 	return 0;