Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: sunxi: Fix H616 I2S3 pin data

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@mx5.nisiq.net>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Link: https://lore.kernel.org/r/20220105172952.23347-1-andre.przywara@arm.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Andre Przywara and committed by
Linus Walleij
1fd6bb5b aa285145

+4 -4
+4 -4
drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c
··· 363 363 SUNXI_FUNCTION(0x0, "gpio_in"), 364 364 SUNXI_FUNCTION(0x1, "gpio_out"), 365 365 SUNXI_FUNCTION(0x2, "uart2"), /* CTS */ 366 - SUNXI_FUNCTION(0x3, "i2s3"), /* DO0 */ 366 + SUNXI_FUNCTION(0x3, "i2s3_dout0"), /* DO0 */ 367 367 SUNXI_FUNCTION(0x4, "spi1"), /* MISO */ 368 - SUNXI_FUNCTION(0x5, "i2s3"), /* DI1 */ 368 + SUNXI_FUNCTION(0x5, "i2s3_din1"), /* DI1 */ 369 369 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 8)), /* PH_EINT8 */ 370 370 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 9), 371 371 SUNXI_FUNCTION(0x0, "gpio_in"), 372 372 SUNXI_FUNCTION(0x1, "gpio_out"), 373 - SUNXI_FUNCTION(0x3, "i2s3"), /* DI0 */ 373 + SUNXI_FUNCTION(0x3, "i2s3_din0"), /* DI0 */ 374 374 SUNXI_FUNCTION(0x4, "spi1"), /* CS1 */ 375 - SUNXI_FUNCTION(0x3, "i2s3"), /* DO1 */ 375 + SUNXI_FUNCTION(0x5, "i2s3_dout1"), /* DO1 */ 376 376 SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 9)), /* PH_EINT9 */ 377 377 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 10), 378 378 SUNXI_FUNCTION(0x0, "gpio_in"),