mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
Merge tag 'renesas-pinctrl-for-v7.2-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
pinctrl: renesas: Updates for v7.2 (take two) - Add GPIO config support on RZ/G2L, - Miscellaneous fixes and improvements. Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
@@ -361,16 +361,16 @@ struct rzg2l_pinctrl_pin_settings {
|
||||
* @pmc: PMC registers cache
|
||||
* @pfc: PFC registers cache
|
||||
* @iolh: IOLH registers cache
|
||||
* @pupd: PUPD registers cache
|
||||
* @ien: IEN registers cache
|
||||
* @pupd: PUPD registers cache
|
||||
* @smt: SMT registers cache
|
||||
* @sr: SR registers cache
|
||||
* @nod: NOD registers cache
|
||||
* @clone: Clone register cache
|
||||
* @sd_ch: SD_CH registers cache
|
||||
* @eth_poc: ET_POC registers cache
|
||||
* @other_poc: OTHER_POC register cache
|
||||
* @oen: Output Enable register cache
|
||||
* @other_poc: OTHER_POC register cache
|
||||
* @qspi: QSPI registers cache
|
||||
*/
|
||||
struct rzg2l_pinctrl_reg_cache {
|
||||
@@ -388,7 +388,7 @@ struct rzg2l_pinctrl_reg_cache {
|
||||
u8 sd_ch[2];
|
||||
u8 eth_poc[2];
|
||||
u8 oen;
|
||||
u8 other_poc;
|
||||
u8 other_poc;
|
||||
u8 qspi;
|
||||
};
|
||||
|
||||
@@ -1281,7 +1281,7 @@ static int rzg2l_read_oen(struct rzg2l_pinctrl *pctrl, unsigned int _pin)
|
||||
int bit;
|
||||
|
||||
if (!pctrl->data->pin_to_oen_bit)
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
|
||||
bit = pctrl->data->pin_to_oen_bit(pctrl, _pin);
|
||||
if (bit < 0)
|
||||
@@ -1323,7 +1323,7 @@ static int rzg2l_write_oen(struct rzg2l_pinctrl *pctrl, unsigned int _pin, u8 oe
|
||||
u8 val;
|
||||
|
||||
if (!pctrl->data->pin_to_oen_bit)
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
|
||||
bit = pctrl->data->pin_to_oen_bit(pctrl, _pin);
|
||||
if (bit < 0)
|
||||
@@ -1754,7 +1754,7 @@ static int rzg2l_pinctrl_pinconf_set(struct pinctrl_dev *pctldev,
|
||||
break;
|
||||
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1837,7 +1837,7 @@ static int rzg2l_pinctrl_pinconf_group_get(struct pinctrl_dev *pctldev,
|
||||
|
||||
/* Check config matching between to pin */
|
||||
if (i && prev_config != *config)
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
|
||||
prev_config = *config;
|
||||
}
|
||||
@@ -3212,6 +3212,7 @@ static int rzg2l_gpio_register(struct rzg2l_pinctrl *pctrl)
|
||||
chip->direction_output = rzg2l_gpio_direction_output;
|
||||
chip->get = rzg2l_gpio_get;
|
||||
chip->set = rzg2l_gpio_set;
|
||||
chip->set_config = gpiochip_generic_config;
|
||||
chip->label = name;
|
||||
chip->parent = pctrl->dev;
|
||||
chip->owner = THIS_MODULE;
|
||||
|
||||
@@ -191,6 +191,12 @@ static void rzt2h_pinctrl_set_pfc_mode(struct rzt2h_pinctrl *pctrl,
|
||||
|
||||
guard(raw_spinlock_irqsave)(&pctrl->lock);
|
||||
|
||||
reg64 = rzt2h_pinctrl_readq(pctrl, port, PFC(port));
|
||||
/* Check if pin is already configured to the desired function */
|
||||
if ((rzt2h_pinctrl_readb(pctrl, port, PMC(port)) & BIT(pin)) &&
|
||||
field_get(PFC_PIN_MASK(pin), reg64) == func)
|
||||
return;
|
||||
|
||||
/* Set pin to 'Non-use (Hi-Z input protection)' */
|
||||
reg16 = rzt2h_pinctrl_readw(pctrl, port, PM(port));
|
||||
reg16 &= ~PM_PIN_MASK(pin);
|
||||
@@ -200,7 +206,6 @@ static void rzt2h_pinctrl_set_pfc_mode(struct rzt2h_pinctrl *pctrl,
|
||||
rzt2h_pinctrl_set_gpio_en(pctrl, port, pin, true);
|
||||
|
||||
/* Select Pin function mode with PFC register */
|
||||
reg64 = rzt2h_pinctrl_readq(pctrl, port, PFC(port));
|
||||
reg64 &= ~PFC_PIN_MASK(pin);
|
||||
rzt2h_pinctrl_writeq(pctrl, port, reg64 | ((u64)func << (pin * 8)), PFC(port));
|
||||
|
||||
@@ -1140,7 +1145,7 @@ static int rzt2h_pinctrl_register(struct rzt2h_pinctrl *pctrl)
|
||||
struct pinctrl_desc *desc = &pctrl->desc;
|
||||
struct device *dev = pctrl->dev;
|
||||
struct pinctrl_pin_desc *pins;
|
||||
unsigned int i, j;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
desc->name = DRV_NAME;
|
||||
@@ -1157,11 +1162,9 @@ static int rzt2h_pinctrl_register(struct rzt2h_pinctrl *pctrl)
|
||||
pctrl->pins = pins;
|
||||
desc->pins = pins;
|
||||
|
||||
for (i = 0, j = 0; i < pctrl->data->n_port_pins; i++) {
|
||||
for (i = 0; i < pctrl->data->n_port_pins; i++) {
|
||||
pins[i].number = i;
|
||||
pins[i].name = rzt2h_gpio_names[i];
|
||||
if (i && !(i % RZT2H_PINS_PER_PORT))
|
||||
j++;
|
||||
}
|
||||
|
||||
ret = devm_pinctrl_register_and_init(dev, desc, pctrl, &pctrl->pctl);
|
||||
|
||||
@@ -661,7 +661,7 @@ static int rzv2m_pinctrl_pinconf_set(struct pinctrl_dev *pctldev,
|
||||
}
|
||||
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -711,7 +711,7 @@ static int rzv2m_pinctrl_pinconf_group_get(struct pinctrl_dev *pctldev,
|
||||
|
||||
/* Check config matches previous pins */
|
||||
if (i && prev_config != *config)
|
||||
return -EOPNOTSUPP;
|
||||
return -ENOTSUPP;
|
||||
|
||||
prev_config = *config;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user