[PATCH] pinctrl: sunxi: Fix H616 I2S3 pin data

Samuel Holland samuel at sholland.org
Thu Jan 6 18:14:33 PST 2022


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 at mx5.nisiq.net>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>

Reviewed-by: Samuel Holland <samuel at sholland.org>

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"),
> 




More information about the linux-arm-kernel mailing list