On 1/5/22 11:29 AM, Andre Przywara wrote: > Two bugs have sneaked in the H616 pinctrl data: > - PH9 uses the mux value of 0x3 twice (one should be 0x5 instead) > - PH8 and PH9 use the "i2s3" function name twice in each pin > > For the double pin name we use the same trick we pulled for i2s0: append > the pin function to the group name to designate the special function. > > Fixes: 25adc29407fb ("pinctrl: sunxi: Add support for the Allwinner H616 pin controller") > Reported-by: SASANO Takayoshi <uaa@xxxxxxxxxxxxx> > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> Reviewed-by: Samuel Holland <samuel@xxxxxxxxxxxx> Verified against the manual, which ironically also has the function numbers wrong: it lists two function 4's (and no function 5) for each pin in port H. > --- > drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c b/drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c > index ce1917e230f4..152b71226a80 100644 > --- a/drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c > +++ b/drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c > @@ -363,16 +363,16 @@ static const struct sunxi_desc_pin h616_pins[] = { > SUNXI_FUNCTION(0x0, "gpio_in"), > SUNXI_FUNCTION(0x1, "gpio_out"), > SUNXI_FUNCTION(0x2, "uart2"), /* CTS */ > - SUNXI_FUNCTION(0x3, "i2s3"), /* DO0 */ > + SUNXI_FUNCTION(0x3, "i2s3_dout0"), /* DO0 */ > SUNXI_FUNCTION(0x4, "spi1"), /* MISO */ > - SUNXI_FUNCTION(0x5, "i2s3"), /* DI1 */ > + SUNXI_FUNCTION(0x5, "i2s3_din1"), /* DI1 */ > SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 8)), /* PH_EINT8 */ > SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9), > SUNXI_FUNCTION(0x0, "gpio_in"), > SUNXI_FUNCTION(0x1, "gpio_out"), > - SUNXI_FUNCTION(0x3, "i2s3"), /* DI0 */ > + SUNXI_FUNCTION(0x3, "i2s3_din0"), /* DI0 */ > SUNXI_FUNCTION(0x4, "spi1"), /* CS1 */ > - SUNXI_FUNCTION(0x3, "i2s3"), /* DO1 */ > + SUNXI_FUNCTION(0x5, "i2s3_dout1"), /* DO1 */ > SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 9)), /* PH_EINT9 */ > SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10), > SUNXI_FUNCTION(0x0, "gpio_in"), >