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 |
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>
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 --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;
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(-)