All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Sean Wang <sean.wang@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Benjamin Larsson <benjamin.larsson@genexis.eu>,
	linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 3/6] pinctrl: airoha: convert PHY LED GPIO to macro
Date: Wed, 28 May 2025 10:21:03 +0200	[thread overview]
Message-ID: <aDbHb4q44BWwHQpE@lore-desk> (raw)
In-Reply-To: <20250527222040.32000-4-ansuelsmth@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 17172 bytes --]

> PHY LED GPIO pinctrl struct definition is very similar across the
> different 4 PHY and 2 LED and it can be generelized to a macro.
> 
> To reduce code size, convert them to a common macro.

Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>

> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  drivers/pinctrl/mediatek/pinctrl-airoha.c | 570 ++++------------------
>  1 file changed, 82 insertions(+), 488 deletions(-)
> 
> diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
> index 8af9109db992..2b532334d759 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
> @@ -1475,516 +1475,110 @@ static const struct airoha_pinctrl_func_group pwm_func_group[] = {
>  	},
>  };
>  
> +#define AIROHA_PINCTRL_PHY_LED(gpio, mux_val, map_mask, map_val)	\
> +	{								\
> +		.name = (gpio),						\
> +		.regmap[0] = {						\
> +			AIROHA_FUNC_MUX,				\
> +			REG_GPIO_2ND_I2C_MODE,				\
> +			(mux_val),					\
> +			(mux_val),					\
> +		},							\
> +		.regmap[1] = {						\
> +			AIROHA_FUNC_MUX,				\
> +			REG_LAN_LED0_MAPPING,				\
> +			(map_mask),					\
> +			(map_val),					\
> +		},							\
> +		.regmap_size = 2,					\
> +	}
> +
>  static const struct airoha_pinctrl_func_group phy1_led0_func_group[] = {
> -	{
> -		.name = "gpio33",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED0_MODE_MASK,
> -			GPIO_LAN0_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio34",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED0_MODE_MASK,
> -			GPIO_LAN1_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio35",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED0_MODE_MASK,
> -			GPIO_LAN2_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio42",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED0_MODE_MASK,
> -			GPIO_LAN3_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED0_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED0_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED0_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED0_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(0)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy2_led0_func_group[] = {
> -	{
> -		.name = "gpio33",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED0_MODE_MASK,
> -			GPIO_LAN0_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio34",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED0_MODE_MASK,
> -			GPIO_LAN1_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio35",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED0_MODE_MASK,
> -			GPIO_LAN2_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio42",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED0_MODE_MASK,
> -			GPIO_LAN3_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED0_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED0_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED0_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED0_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(1)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy3_led0_func_group[] = {
> -	{
> -		.name = "gpio33",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED0_MODE_MASK,
> -			GPIO_LAN0_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio34",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED0_MODE_MASK,
> -			GPIO_LAN1_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio35",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED0_MODE_MASK,
> -			GPIO_LAN2_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio42",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED0_MODE_MASK,
> -			GPIO_LAN3_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED0_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED0_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED0_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED0_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(2)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy4_led0_func_group[] = {
> -	{
> -		.name = "gpio33",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED0_MODE_MASK,
> -			GPIO_LAN0_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio34",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED0_MODE_MASK,
> -			GPIO_LAN1_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio35",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED0_MODE_MASK,
> -			GPIO_LAN2_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio42",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED0_MODE_MASK,
> -			GPIO_LAN3_LED0_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED0_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED0_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(3)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED0_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(3)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED0_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(3)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED0_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(3)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy1_led1_func_group[] = {
> -	{
> -		.name = "gpio43",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED1_MODE_MASK,
> -			GPIO_LAN0_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio44",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED1_MODE_MASK,
> -			GPIO_LAN1_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio45",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED1_MODE_MASK,
> -			GPIO_LAN2_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio46",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED1_MODE_MASK,
> -			GPIO_LAN3_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(0)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED1_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED1_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED1_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(0)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED1_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(0)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy2_led1_func_group[] = {
> -	{
> -		.name = "gpio43",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED1_MODE_MASK,
> -			GPIO_LAN0_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio44",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED1_MODE_MASK,
> -			GPIO_LAN1_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio45",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED1_MODE_MASK,
> -			GPIO_LAN2_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio46",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED1_MODE_MASK,
> -			GPIO_LAN3_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(1)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED1_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED1_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED1_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(1)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED1_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(1)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy3_led1_func_group[] = {
> -	{
> -		.name = "gpio43",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED1_MODE_MASK,
> -			GPIO_LAN0_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio44",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED1_MODE_MASK,
> -			GPIO_LAN1_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio45",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED1_MODE_MASK,
> -			GPIO_LAN2_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio46",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED1_MODE_MASK,
> -			GPIO_LAN3_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(2)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED1_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED1_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED1_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED1_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(2)),
>  };
>  
>  static const struct airoha_pinctrl_func_group phy4_led1_func_group[] = {
> -	{
> -		.name = "gpio43",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN0_LED1_MODE_MASK,
> -			GPIO_LAN0_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN0_LED_MAPPING_MASK,
> -			LAN0_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio44",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN1_LED1_MODE_MASK,
> -			GPIO_LAN1_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN1_LED_MAPPING_MASK,
> -			LAN1_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio45",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN2_LED1_MODE_MASK,
> -			GPIO_LAN2_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN2_LED_MAPPING_MASK,
> -			LAN2_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	}, {
> -		.name = "gpio46",
> -		.regmap[0] = {
> -			AIROHA_FUNC_MUX,
> -			REG_GPIO_2ND_I2C_MODE,
> -			GPIO_LAN3_LED1_MODE_MASK,
> -			GPIO_LAN3_LED1_MODE_MASK
> -		},
> -		.regmap[1] = {
> -			AIROHA_FUNC_MUX,
> -			REG_LAN_LED1_MAPPING,
> -			LAN3_LED_MAPPING_MASK,
> -			LAN3_PHY_LED_MAP(3)
> -		},
> -		.regmap_size = 2,
> -	},
> +	AIROHA_PINCTRL_PHY_LED("gpio33", GPIO_LAN0_LED1_MODE_MASK,
> +			       LAN0_LED_MAPPING_MASK, LAN0_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio34", GPIO_LAN1_LED1_MODE_MASK,
> +			       LAN1_LED_MAPPING_MASK, LAN1_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio35", GPIO_LAN2_LED1_MODE_MASK,
> +			       LAN2_LED_MAPPING_MASK, LAN2_PHY_LED_MAP(2)),
> +	AIROHA_PINCTRL_PHY_LED("gpio42", GPIO_LAN3_LED1_MODE_MASK,
> +			       LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(2)),
>  };
>  
>  static const struct airoha_pinctrl_func en7581_pinctrl_funcs[] = {
> -- 
> 2.48.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2025-05-28  8:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-27 22:20 [PATCH 0/6] pinctrl: Add Airoha AN7583 support Christian Marangi
2025-05-27 22:20 ` [PATCH 1/6] pinctrl: airoha: fix wrong PHY LED mux value for LED1 GPIO46 Christian Marangi
2025-05-28  7:16   ` Lorenzo Bianconi
2025-05-27 22:20 ` [PATCH 2/6] pinctrl: mediatek: airoha: generalize pins/group/function/confs handling Christian Marangi
2025-05-28  8:07   ` Lorenzo Bianconi
2025-05-31 13:29     ` Christian Marangi
2025-05-27 22:20 ` [PATCH 3/6] pinctrl: airoha: convert PHY LED GPIO to macro Christian Marangi
2025-05-28  8:21   ` Lorenzo Bianconi [this message]
2025-05-27 22:20 ` [PATCH 4/6] pinctrl: airoha: convert PWM " Christian Marangi
2025-05-28  8:22   ` Lorenzo Bianconi
2025-05-27 22:20 ` [PATCH 5/6] dt-bindings: pinctrl: airoha: Document AN7583 Pin Controller Christian Marangi
2025-06-05 19:55   ` Rob Herring
2025-05-27 22:20 ` [PATCH 6/6] pinctrl: airoha: add support for Airoha AN7583 PINs Christian Marangi
2025-05-28  9:20   ` Benjamin Larsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aDbHb4q44BWwHQpE@lore-desk \
    --to=lorenzo@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=ansuelsmth@gmail.com \
    --cc=benjamin.larsson@genexis.eu \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=robh@kernel.org \
    --cc=sean.wang@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.