@@ -43,6 +43,14 @@
.data = id##_funcs, \
}
+#define PINCTRL_PIN_FUNCTION(_name_, id) \
+ { \
+ .name = _name_, \
+ .group_names = id##_groups, \
+ .num_group_names = ARRAY_SIZE(id##_groups), \
+ .data = NULL, \
+ }
+
int mtk_moore_pinctrl_probe(struct platform_device *pdev,
const struct mtk_pin_soc *soc);
@@ -823,22 +823,22 @@ static const char *mt7622_uart_groups[] = { "uart0_0_tx_rx",
static const char *mt7622_wdt_groups[] = { "watchdog", };
static const struct function_desc mt7622_functions[] = {
- {"antsel", mt7622_antsel_groups, ARRAY_SIZE(mt7622_antsel_groups)},
- {"emmc", mt7622_emmc_groups, ARRAY_SIZE(mt7622_emmc_groups)},
- {"eth", mt7622_ethernet_groups, ARRAY_SIZE(mt7622_ethernet_groups)},
- {"i2c", mt7622_i2c_groups, ARRAY_SIZE(mt7622_i2c_groups)},
- {"i2s", mt7622_i2s_groups, ARRAY_SIZE(mt7622_i2s_groups)},
- {"ir", mt7622_ir_groups, ARRAY_SIZE(mt7622_ir_groups)},
- {"led", mt7622_led_groups, ARRAY_SIZE(mt7622_led_groups)},
- {"flash", mt7622_flash_groups, ARRAY_SIZE(mt7622_flash_groups)},
- {"pcie", mt7622_pcie_groups, ARRAY_SIZE(mt7622_pcie_groups)},
- {"pmic", mt7622_pmic_bus_groups, ARRAY_SIZE(mt7622_pmic_bus_groups)},
- {"pwm", mt7622_pwm_groups, ARRAY_SIZE(mt7622_pwm_groups)},
- {"sd", mt7622_sd_groups, ARRAY_SIZE(mt7622_sd_groups)},
- {"spi", mt7622_spic_groups, ARRAY_SIZE(mt7622_spic_groups)},
- {"tdm", mt7622_tdm_groups, ARRAY_SIZE(mt7622_tdm_groups)},
- {"uart", mt7622_uart_groups, ARRAY_SIZE(mt7622_uart_groups)},
- {"watchdog", mt7622_wdt_groups, ARRAY_SIZE(mt7622_wdt_groups)},
+ PINCTRL_PIN_FUNCTION("antsel", mt7622_antsel),
+ PINCTRL_PIN_FUNCTION("emmc", mt7622_emmc),
+ PINCTRL_PIN_FUNCTION("eth", mt7622_ethernet),
+ PINCTRL_PIN_FUNCTION("i2c", mt7622_i2c),
+ PINCTRL_PIN_FUNCTION("i2s", mt7622_i2s),
+ PINCTRL_PIN_FUNCTION("ir", mt7622_ir),
+ PINCTRL_PIN_FUNCTION("led", mt7622_led),
+ PINCTRL_PIN_FUNCTION("flash", mt7622_flash),
+ PINCTRL_PIN_FUNCTION("pcie", mt7622_pcie),
+ PINCTRL_PIN_FUNCTION("pmic", mt7622_pmic_bus),
+ PINCTRL_PIN_FUNCTION("pwm", mt7622_pwm),
+ PINCTRL_PIN_FUNCTION("sd", mt7622_sd),
+ PINCTRL_PIN_FUNCTION("spi", mt7622_spic),
+ PINCTRL_PIN_FUNCTION("tdm", mt7622_tdm),
+ PINCTRL_PIN_FUNCTION("uart", mt7622_uart),
+ PINCTRL_PIN_FUNCTION("watchdog", mt7622_wdt),
};
static const struct mtk_eint_hw mt7622_eint_hw = {
@@ -1341,27 +1341,27 @@ static const char *mt7623_uart_groups[] = { "uart0_0_txd_rxd",
static const char *mt7623_wdt_groups[] = { "watchdog_0", "watchdog_1", };
static const struct function_desc mt7623_functions[] = {
- {"audck", mt7623_aud_clk_groups, ARRAY_SIZE(mt7623_aud_clk_groups)},
- {"disp", mt7623_disp_pwm_groups, ARRAY_SIZE(mt7623_disp_pwm_groups)},
- {"eth", mt7623_ethernet_groups, ARRAY_SIZE(mt7623_ethernet_groups)},
- {"sdio", mt7623_ext_sdio_groups, ARRAY_SIZE(mt7623_ext_sdio_groups)},
- {"hdmi", mt7623_hdmi_groups, ARRAY_SIZE(mt7623_hdmi_groups)},
- {"i2c", mt7623_i2c_groups, ARRAY_SIZE(mt7623_i2c_groups)},
- {"i2s", mt7623_i2s_groups, ARRAY_SIZE(mt7623_i2s_groups)},
- {"ir", mt7623_ir_groups, ARRAY_SIZE(mt7623_ir_groups)},
- {"lcd", mt7623_lcd_groups, ARRAY_SIZE(mt7623_lcd_groups)},
- {"msdc", mt7623_msdc_groups, ARRAY_SIZE(mt7623_msdc_groups)},
- {"nand", mt7623_nandc_groups, ARRAY_SIZE(mt7623_nandc_groups)},
- {"otg", mt7623_otg_groups, ARRAY_SIZE(mt7623_otg_groups)},
- {"pcie", mt7623_pcie_groups, ARRAY_SIZE(mt7623_pcie_groups)},
- {"pcm", mt7623_pcm_groups, ARRAY_SIZE(mt7623_pcm_groups)},
- {"pwm", mt7623_pwm_groups, ARRAY_SIZE(mt7623_pwm_groups)},
- {"pwrap", mt7623_pwrap_groups, ARRAY_SIZE(mt7623_pwrap_groups)},
- {"rtc", mt7623_rtc_groups, ARRAY_SIZE(mt7623_rtc_groups)},
- {"spi", mt7623_spi_groups, ARRAY_SIZE(mt7623_spi_groups)},
- {"spdif", mt7623_spdif_groups, ARRAY_SIZE(mt7623_spdif_groups)},
- {"uart", mt7623_uart_groups, ARRAY_SIZE(mt7623_uart_groups)},
- {"watchdog", mt7623_wdt_groups, ARRAY_SIZE(mt7623_wdt_groups)},
+ PINCTRL_PIN_FUNCTION("audck", mt7623_aud_clk),
+ PINCTRL_PIN_FUNCTION("disp", mt7623_disp_pwm),
+ PINCTRL_PIN_FUNCTION("eth", mt7623_ethernet),
+ PINCTRL_PIN_FUNCTION("sdio", mt7623_ext_sdio),
+ PINCTRL_PIN_FUNCTION("hdmi", mt7623_hdmi),
+ PINCTRL_PIN_FUNCTION("i2c", mt7623_i2c),
+ PINCTRL_PIN_FUNCTION("i2s", mt7623_i2s),
+ PINCTRL_PIN_FUNCTION("ir", mt7623_ir),
+ PINCTRL_PIN_FUNCTION("lcd", mt7623_lcd),
+ PINCTRL_PIN_FUNCTION("msdc", mt7623_msdc),
+ PINCTRL_PIN_FUNCTION("nand", mt7623_nandc),
+ PINCTRL_PIN_FUNCTION("otg", mt7623_otg),
+ PINCTRL_PIN_FUNCTION("pcie", mt7623_pcie),
+ PINCTRL_PIN_FUNCTION("pcm", mt7623_pcm),
+ PINCTRL_PIN_FUNCTION("pwm", mt7623_pwm),
+ PINCTRL_PIN_FUNCTION("pwrap", mt7623_pwrap),
+ PINCTRL_PIN_FUNCTION("rtc", mt7623_rtc),
+ PINCTRL_PIN_FUNCTION("spi", mt7623_spi),
+ PINCTRL_PIN_FUNCTION("spdif", mt7623_spdif),
+ PINCTRL_PIN_FUNCTION("uart", mt7623_uart),
+ PINCTRL_PIN_FUNCTION("watchdog", mt7623_wdt),
};
static const struct mtk_eint_hw mt7623_eint_hw = {
@@ -385,16 +385,16 @@ static const char *mt7629_wifi_groups[] = { "wf0_5g", "wf0_2g", };
static const char *mt7629_flash_groups[] = { "snfi", "spi_nor" };
static const struct function_desc mt7629_functions[] = {
- {"eth", mt7629_ethernet_groups, ARRAY_SIZE(mt7629_ethernet_groups)},
- {"i2c", mt7629_i2c_groups, ARRAY_SIZE(mt7629_i2c_groups)},
- {"led", mt7629_led_groups, ARRAY_SIZE(mt7629_led_groups)},
- {"pcie", mt7629_pcie_groups, ARRAY_SIZE(mt7629_pcie_groups)},
- {"pwm", mt7629_pwm_groups, ARRAY_SIZE(mt7629_pwm_groups)},
- {"spi", mt7629_spi_groups, ARRAY_SIZE(mt7629_spi_groups)},
- {"uart", mt7629_uart_groups, ARRAY_SIZE(mt7629_uart_groups)},
- {"watchdog", mt7629_wdt_groups, ARRAY_SIZE(mt7629_wdt_groups)},
- {"wifi", mt7629_wifi_groups, ARRAY_SIZE(mt7629_wifi_groups)},
- {"flash", mt7629_flash_groups, ARRAY_SIZE(mt7629_flash_groups)},
+ PINCTRL_PIN_FUNCTION("eth", mt7629_ethernet),
+ PINCTRL_PIN_FUNCTION("i2c", mt7629_i2c),
+ PINCTRL_PIN_FUNCTION("led", mt7629_led),
+ PINCTRL_PIN_FUNCTION("pcie", mt7629_pcie),
+ PINCTRL_PIN_FUNCTION("pwm", mt7629_pwm),
+ PINCTRL_PIN_FUNCTION("spi", mt7629_spi),
+ PINCTRL_PIN_FUNCTION("uart", mt7629_uart),
+ PINCTRL_PIN_FUNCTION("watchdog", mt7629_wdt),
+ PINCTRL_PIN_FUNCTION("wifi", mt7629_wifi),
+ PINCTRL_PIN_FUNCTION("flash", mt7629_flash),
};
static const struct mtk_eint_hw mt7629_eint_hw = {
@@ -978,23 +978,23 @@ static const char *mt7981_ethernet_groups[] = { "smi_mdc_mdio", "gbe_ext_mdc_mdi
static const char *mt7981_ant_groups[] = { "ant_sel", };
static const struct function_desc mt7981_functions[] = {
- {"wa_aice", mt7981_wa_aice_groups, ARRAY_SIZE(mt7981_wa_aice_groups)},
- {"dfd", mt7981_dfd_groups, ARRAY_SIZE(mt7981_dfd_groups)},
- {"jtag", mt7981_jtag_groups, ARRAY_SIZE(mt7981_jtag_groups)},
- {"pta", mt7981_pta_groups, ARRAY_SIZE(mt7981_pta_groups)},
- {"pcm", mt7981_pcm_groups, ARRAY_SIZE(mt7981_pcm_groups)},
- {"udi", mt7981_udi_groups, ARRAY_SIZE(mt7981_udi_groups)},
- {"usb", mt7981_usb_groups, ARRAY_SIZE(mt7981_usb_groups)},
- {"ant", mt7981_ant_groups, ARRAY_SIZE(mt7981_ant_groups)},
- {"eth", mt7981_ethernet_groups, ARRAY_SIZE(mt7981_ethernet_groups)},
- {"i2c", mt7981_i2c_groups, ARRAY_SIZE(mt7981_i2c_groups)},
- {"led", mt7981_led_groups, ARRAY_SIZE(mt7981_led_groups)},
- {"pwm", mt7981_pwm_groups, ARRAY_SIZE(mt7981_pwm_groups)},
- {"spi", mt7981_spi_groups, ARRAY_SIZE(mt7981_spi_groups)},
- {"uart", mt7981_uart_groups, ARRAY_SIZE(mt7981_uart_groups)},
- {"watchdog", mt7981_wdt_groups, ARRAY_SIZE(mt7981_wdt_groups)},
- {"flash", mt7981_flash_groups, ARRAY_SIZE(mt7981_flash_groups)},
- {"pcie", mt7981_pcie_groups, ARRAY_SIZE(mt7981_pcie_groups)},
+ PINCTRL_PIN_FUNCTION("wa_aice", mt7981_wa_aice),
+ PINCTRL_PIN_FUNCTION("dfd", mt7981_dfd),
+ PINCTRL_PIN_FUNCTION("jtag", mt7981_jtag),
+ PINCTRL_PIN_FUNCTION("pta", mt7981_pta),
+ PINCTRL_PIN_FUNCTION("pcm", mt7981_pcm),
+ PINCTRL_PIN_FUNCTION("udi", mt7981_udi),
+ PINCTRL_PIN_FUNCTION("usb", mt7981_usb),
+ PINCTRL_PIN_FUNCTION("ant", mt7981_ant),
+ PINCTRL_PIN_FUNCTION("eth", mt7981_ethernet),
+ PINCTRL_PIN_FUNCTION("i2c", mt7981_i2c),
+ PINCTRL_PIN_FUNCTION("led", mt7981_led),
+ PINCTRL_PIN_FUNCTION("pwm", mt7981_pwm),
+ PINCTRL_PIN_FUNCTION("spi", mt7981_spi),
+ PINCTRL_PIN_FUNCTION("uart", mt7981_uart),
+ PINCTRL_PIN_FUNCTION("watchdog", mt7981_wdt),
+ PINCTRL_PIN_FUNCTION("flash", mt7981_flash),
+ PINCTRL_PIN_FUNCTION("pcie", mt7981_pcie),
};
static const struct mtk_eint_hw mt7981_eint_hw = {
@@ -879,18 +879,18 @@ static const char *mt7986_wdt_groups[] = { "watchdog", };
static const char *mt7986_wf_groups[] = { "wf_2g", "wf_5g", "wf_dbdc", };
static const struct function_desc mt7986_functions[] = {
- {"audio", mt7986_audio_groups, ARRAY_SIZE(mt7986_audio_groups)},
- {"emmc", mt7986_emmc_groups, ARRAY_SIZE(mt7986_emmc_groups)},
- {"eth", mt7986_ethernet_groups, ARRAY_SIZE(mt7986_ethernet_groups)},
- {"i2c", mt7986_i2c_groups, ARRAY_SIZE(mt7986_i2c_groups)},
- {"led", mt7986_led_groups, ARRAY_SIZE(mt7986_led_groups)},
- {"flash", mt7986_flash_groups, ARRAY_SIZE(mt7986_flash_groups)},
- {"pcie", mt7986_pcie_groups, ARRAY_SIZE(mt7986_pcie_groups)},
- {"pwm", mt7986_pwm_groups, ARRAY_SIZE(mt7986_pwm_groups)},
- {"spi", mt7986_spi_groups, ARRAY_SIZE(mt7986_spi_groups)},
- {"uart", mt7986_uart_groups, ARRAY_SIZE(mt7986_uart_groups)},
- {"watchdog", mt7986_wdt_groups, ARRAY_SIZE(mt7986_wdt_groups)},
- {"wifi", mt7986_wf_groups, ARRAY_SIZE(mt7986_wf_groups)},
+ PINCTRL_PIN_FUNCTION("audio", mt7986_audio),
+ PINCTRL_PIN_FUNCTION("emmc", mt7986_emmc),
+ PINCTRL_PIN_FUNCTION("eth", mt7986_ethernet),
+ PINCTRL_PIN_FUNCTION("i2c", mt7986_i2c),
+ PINCTRL_PIN_FUNCTION("led", mt7986_led),
+ PINCTRL_PIN_FUNCTION("flash", mt7986_flash),
+ PINCTRL_PIN_FUNCTION("pcie", mt7986_pcie),
+ PINCTRL_PIN_FUNCTION("pwm", mt7986_pwm),
+ PINCTRL_PIN_FUNCTION("spi", mt7986_spi),
+ PINCTRL_PIN_FUNCTION("uart", mt7986_uart),
+ PINCTRL_PIN_FUNCTION("watchdog", mt7986_wdt),
+ PINCTRL_PIN_FUNCTION("wifi", mt7986_wf),
};
static const struct mtk_eint_hw mt7986a_eint_hw = {