gpio: intel_gpio: Pass pinctrl device to pcr_clrsetbits32()
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@br-automation.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
03fe85a27b
commit
b840c395c6
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user