linux/drivers/pinctrl/mediatek/pinctrl-mt7622.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2017-2018 MediaTek Inc.
 *
 * Author: Sean Wang <[email protected]>
 *
 */

#include "pinctrl-moore.h"

#define MT7622_PIN(_number, _name)

static const struct mtk_pin_field_calc mt7622_pin_mode_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_dir_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_di_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_do_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_sr_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_smt_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_pu_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_pd_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_e4_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_e8_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_tdsel_range[] =;

static const struct mtk_pin_field_calc mt7622_pin_rdsel_range[] =;

static const struct mtk_pin_reg_calc mt7622_reg_cals[PINCTRL_PIN_REG_MAX] =;

static const struct mtk_pin_desc mt7622_pins[] =;

/* List all groups consisting of these pins dedicated to the enablement of
 * certain hardware block and the corresponding mode for all of the pins. The
 * hardware probably has multiple combinations of these pinouts.
 */

/* ANTSEL */
static int mt7622_antsel0_pins[] =;
static int mt7622_antsel0_funcs[] =;
static int mt7622_antsel1_pins[] =;
static int mt7622_antsel1_funcs[] =;
static int mt7622_antsel2_pins[] =;
static int mt7622_antsel2_funcs[] =;
static int mt7622_antsel3_pins[] =;
static int mt7622_antsel3_funcs[] =;
static int mt7622_antsel4_pins[] =;
static int mt7622_antsel4_funcs[] =;
static int mt7622_antsel5_pins[] =;
static int mt7622_antsel5_funcs[] =;
static int mt7622_antsel6_pins[] =;
static int mt7622_antsel6_funcs[] =;
static int mt7622_antsel7_pins[] =;
static int mt7622_antsel7_funcs[] =;
static int mt7622_antsel8_pins[] =;
static int mt7622_antsel8_funcs[] =;
static int mt7622_antsel9_pins[] =;
static int mt7622_antsel9_funcs[] =;
static int mt7622_antsel10_pins[] =;
static int mt7622_antsel10_funcs[] =;
static int mt7622_antsel11_pins[] =;
static int mt7622_antsel11_funcs[] =;
static int mt7622_antsel12_pins[] =;
static int mt7622_antsel12_funcs[] =;
static int mt7622_antsel13_pins[] =;
static int mt7622_antsel13_funcs[] =;
static int mt7622_antsel14_pins[] =;
static int mt7622_antsel14_funcs[] =;
static int mt7622_antsel15_pins[] =;
static int mt7622_antsel15_funcs[] =;
static int mt7622_antsel16_pins[] =;
static int mt7622_antsel16_funcs[] =;
static int mt7622_antsel17_pins[] =;
static int mt7622_antsel17_funcs[] =;
static int mt7622_antsel18_pins[] =;
static int mt7622_antsel18_funcs[] =;
static int mt7622_antsel19_pins[] =;
static int mt7622_antsel19_funcs[] =;
static int mt7622_antsel20_pins[] =;
static int mt7622_antsel20_funcs[] =;
static int mt7622_antsel21_pins[] =;
static int mt7622_antsel21_funcs[] =;
static int mt7622_antsel22_pins[] =;
static int mt7622_antsel22_funcs[] =;
static int mt7622_antsel23_pins[] =;
static int mt7622_antsel23_funcs[] =;
static int mt7622_antsel24_pins[] =;
static int mt7622_antsel24_funcs[] =;
static int mt7622_antsel25_pins[] =;
static int mt7622_antsel25_funcs[] =;
static int mt7622_antsel26_pins[] =;
static int mt7622_antsel26_funcs[] =;
static int mt7622_antsel27_pins[] =;
static int mt7622_antsel27_funcs[] =;
static int mt7622_antsel28_pins[] =;
static int mt7622_antsel28_funcs[] =;
static int mt7622_antsel29_pins[] =;
static int mt7622_antsel29_funcs[] =;

/* EMMC */
static int mt7622_emmc_pins[] =;
static int mt7622_emmc_funcs[] =;

static int mt7622_emmc_rst_pins[] =;
static int mt7622_emmc_rst_funcs[] =;

/* LED for EPHY */
static int mt7622_ephy_leds_pins[] =;
static int mt7622_ephy_leds_funcs[] =;
static int mt7622_ephy0_led_pins[] =;
static int mt7622_ephy0_led_funcs[] =;
static int mt7622_ephy1_led_pins[] =;
static int mt7622_ephy1_led_funcs[] =;
static int mt7622_ephy2_led_pins[] =;
static int mt7622_ephy2_led_funcs[] =;
static int mt7622_ephy3_led_pins[] =;
static int mt7622_ephy3_led_funcs[] =;
static int mt7622_ephy4_led_pins[] =;
static int mt7622_ephy4_led_funcs[] =;

/* Embedded Switch */
static int mt7622_esw_pins[] =;
static int mt7622_esw_funcs[] =;
static int mt7622_esw_p0_p1_pins[] =;
static int mt7622_esw_p0_p1_funcs[] =;
static int mt7622_esw_p2_p3_p4_pins[] =;
static int mt7622_esw_p2_p3_p4_funcs[] =;
/* RGMII via ESW */
static int mt7622_rgmii_via_esw_pins[] =;
static int mt7622_rgmii_via_esw_funcs[] =;

/* RGMII via GMAC1 */
static int mt7622_rgmii_via_gmac1_pins[] =;
static int mt7622_rgmii_via_gmac1_funcs[] =;

/* RGMII via GMAC2 */
static int mt7622_rgmii_via_gmac2_pins[] =;
static int mt7622_rgmii_via_gmac2_funcs[] =;

/* I2C */
static int mt7622_i2c0_pins[] =;
static int mt7622_i2c0_funcs[] =;
static int mt7622_i2c1_0_pins[] =;
static int mt7622_i2c1_0_funcs[] =;
static int mt7622_i2c1_1_pins[] =;
static int mt7622_i2c1_1_funcs[] =;
static int mt7622_i2c1_2_pins[] =;
static int mt7622_i2c1_2_funcs[] =;
static int mt7622_i2c2_0_pins[] =;
static int mt7622_i2c2_0_funcs[] =;
static int mt7622_i2c2_1_pins[] =;
static int mt7622_i2c2_1_funcs[] =;
static int mt7622_i2c2_2_pins[] =;
static int mt7622_i2c2_2_funcs[] =;

/* I2S */
static int mt7622_i2s_in_mclk_bclk_ws_pins[] =;
static int mt7622_i2s_in_mclk_bclk_ws_funcs[] =;
static int mt7622_i2s1_in_data_pins[] =;
static int mt7622_i2s1_in_data_funcs[] =;
static int mt7622_i2s2_in_data_pins[] =;
static int mt7622_i2s2_in_data_funcs[] =;
static int mt7622_i2s3_in_data_pins[] =;
static int mt7622_i2s3_in_data_funcs[] =;
static int mt7622_i2s4_in_data_pins[] =;
static int mt7622_i2s4_in_data_funcs[] =;
static int mt7622_i2s_out_mclk_bclk_ws_pins[] =;
static int mt7622_i2s_out_mclk_bclk_ws_funcs[] =;
static int mt7622_i2s1_out_data_pins[] =;
static int mt7622_i2s1_out_data_funcs[] =;
static int mt7622_i2s2_out_data_pins[] =;
static int mt7622_i2s2_out_data_funcs[] =;
static int mt7622_i2s3_out_data_pins[] =;
static int mt7622_i2s3_out_data_funcs[] =;
static int mt7622_i2s4_out_data_pins[] =;
static int mt7622_i2s4_out_data_funcs[] =;

/* IR */
static int mt7622_ir_0_tx_pins[] =;
static int mt7622_ir_0_tx_funcs[] =;
static int mt7622_ir_1_tx_pins[] =;
static int mt7622_ir_1_tx_funcs[] =;
static int mt7622_ir_2_tx_pins[] =;
static int mt7622_ir_2_tx_funcs[] =;
static int mt7622_ir_0_rx_pins[] =;
static int mt7622_ir_0_rx_funcs[] =;
static int mt7622_ir_1_rx_pins[] =;
static int mt7622_ir_1_rx_funcs[] =;
static int mt7622_ir_2_rx_pins[] =;
static int mt7622_ir_2_rx_funcs[] =;

/* MDIO */
static int mt7622_mdc_mdio_pins[] =;
static int mt7622_mdc_mdio_funcs[] =;

/* PCIE */
static int mt7622_pcie0_0_waken_pins[] =;
static int mt7622_pcie0_0_waken_funcs[] =;
static int mt7622_pcie0_0_clkreq_pins[] =;
static int mt7622_pcie0_0_clkreq_funcs[] =;
static int mt7622_pcie0_1_waken_pins[] =;
static int mt7622_pcie0_1_waken_funcs[] =;
static int mt7622_pcie0_1_clkreq_pins[] =;
static int mt7622_pcie0_1_clkreq_funcs[] =;
static int mt7622_pcie1_0_waken_pins[] =;
static int mt7622_pcie1_0_waken_funcs[] =;
static int mt7622_pcie1_0_clkreq_pins[] =;
static int mt7622_pcie1_0_clkreq_funcs[] =;

static int mt7622_pcie0_pad_perst_pins[] =;
static int mt7622_pcie0_pad_perst_funcs[] =;
static int mt7622_pcie1_pad_perst_pins[] =;
static int mt7622_pcie1_pad_perst_funcs[] =;

/* PMIC bus */
static int mt7622_pmic_bus_pins[] =;
static int mt7622_pmic_bus_funcs[] =;

/* Parallel NAND */
static int mt7622_pnand_pins[] =;
static int mt7622_pnand_funcs[] =;

/* PWM */
static int mt7622_pwm_ch1_0_pins[] =;
static int mt7622_pwm_ch1_0_funcs[] =;
static int mt7622_pwm_ch1_1_pins[] =;
static int mt7622_pwm_ch1_1_funcs[] =;
static int mt7622_pwm_ch1_2_pins[] =;
static int mt7622_pwm_ch1_2_funcs[] =;
static int mt7622_pwm_ch2_0_pins[] =;
static int mt7622_pwm_ch2_0_funcs[] =;
static int mt7622_pwm_ch2_1_pins[] =;
static int mt7622_pwm_ch2_1_funcs[] =;
static int mt7622_pwm_ch2_2_pins[] =;
static int mt7622_pwm_ch2_2_funcs[] =;
static int mt7622_pwm_ch3_0_pins[] =;
static int mt7622_pwm_ch3_0_funcs[] =;
static int mt7622_pwm_ch3_1_pins[] =;
static int mt7622_pwm_ch3_1_funcs[] =;
static int mt7622_pwm_ch3_2_pins[] =;
static int mt7622_pwm_ch3_2_funcs[] =;
static int mt7622_pwm_ch4_0_pins[] =;
static int mt7622_pwm_ch4_0_funcs[] =;
static int mt7622_pwm_ch4_1_pins[] =;
static int mt7622_pwm_ch4_1_funcs[] =;
static int mt7622_pwm_ch4_2_pins[] =;
static int mt7622_pwm_ch4_2_funcs[] =;
static int mt7622_pwm_ch4_3_pins[] =;
static int mt7622_pwm_ch4_3_funcs[] =;
static int mt7622_pwm_ch5_0_pins[] =;
static int mt7622_pwm_ch5_0_funcs[] =;
static int mt7622_pwm_ch5_1_pins[] =;
static int mt7622_pwm_ch5_1_funcs[] =;
static int mt7622_pwm_ch5_2_pins[] =;
static int mt7622_pwm_ch5_2_funcs[] =;
static int mt7622_pwm_ch6_0_pins[] =;
static int mt7622_pwm_ch6_0_funcs[] =;
static int mt7622_pwm_ch6_1_pins[] =;
static int mt7622_pwm_ch6_1_funcs[] =;
static int mt7622_pwm_ch6_2_pins[] =;
static int mt7622_pwm_ch6_2_funcs[] =;
static int mt7622_pwm_ch6_3_pins[] =;
static int mt7622_pwm_ch6_3_funcs[] =;

/* SD */
static int mt7622_sd_0_pins[] =;
static int mt7622_sd_0_funcs[] =;
static int mt7622_sd_1_pins[] =;
static int mt7622_sd_1_funcs[] =;

/* Serial NAND */
static int mt7622_snfi_pins[] =;
static int mt7622_snfi_funcs[] =;

/* SPI NOR */
static int mt7622_spi_pins[] =;
static int mt7622_spi_funcs[] =;

/* SPIC */
static int mt7622_spic0_0_pins[] =;
static int mt7622_spic0_0_funcs[] =;
static int mt7622_spic0_1_pins[] =;
static int mt7622_spic0_1_funcs[] =;
static int mt7622_spic1_0_pins[] =;
static int mt7622_spic1_0_funcs[] =;
static int mt7622_spic1_1_pins[] =;
static int mt7622_spic1_1_funcs[] =;
static int mt7622_spic2_0_pins[] =;
static int mt7622_spic2_0_funcs[] =;
static int mt7622_spic2_0_wp_hold_pins[] =;
static int mt7622_spic2_0_wp_hold_funcs[] =;

/* TDM */
static int mt7622_tdm_0_out_mclk_bclk_ws_pins[] =;
static int mt7622_tdm_0_out_mclk_bclk_ws_funcs[] =;
static int mt7622_tdm_0_in_mclk_bclk_ws_pins[] =;
static int mt7622_tdm_0_in_mclk_bclk_ws_funcs[] =;
static int mt7622_tdm_0_out_data_pins[] =;
static int mt7622_tdm_0_out_data_funcs[] =;
static int mt7622_tdm_0_in_data_pins[] =;
static int mt7622_tdm_0_in_data_funcs[] =;
static int mt7622_tdm_1_out_mclk_bclk_ws_pins[] =;
static int mt7622_tdm_1_out_mclk_bclk_ws_funcs[] =;
static int mt7622_tdm_1_in_mclk_bclk_ws_pins[] =;
static int mt7622_tdm_1_in_mclk_bclk_ws_funcs[] =;
static int mt7622_tdm_1_out_data_pins[] =;
static int mt7622_tdm_1_out_data_funcs[] =;
static int mt7622_tdm_1_in_data_pins[] =;
static int mt7622_tdm_1_in_data_funcs[] =;

/* UART */
static int mt7622_uart0_0_tx_rx_pins[] =;
static int mt7622_uart0_0_tx_rx_funcs[] =;
static int mt7622_uart1_0_tx_rx_pins[] =;
static int mt7622_uart1_0_tx_rx_funcs[] =;
static int mt7622_uart1_0_rts_cts_pins[] =;
static int mt7622_uart1_0_rts_cts_funcs[] =;
static int mt7622_uart1_1_tx_rx_pins[] =;
static int mt7622_uart1_1_tx_rx_funcs[] =;
static int mt7622_uart1_1_rts_cts_pins[] =;
static int mt7622_uart1_1_rts_cts_funcs[] =;
static int mt7622_uart2_0_tx_rx_pins[] =;
static int mt7622_uart2_0_tx_rx_funcs[] =;
static int mt7622_uart2_0_rts_cts_pins[] =;
static int mt7622_uart2_0_rts_cts_funcs[] =;
static int mt7622_uart2_1_tx_rx_pins[] =;
static int mt7622_uart2_1_tx_rx_funcs[] =;
static int mt7622_uart2_1_rts_cts_pins[] =;
static int mt7622_uart2_1_rts_cts_funcs[] =;
static int mt7622_uart2_2_tx_rx_pins[] =;
static int mt7622_uart2_2_tx_rx_funcs[] =;
static int mt7622_uart2_2_rts_cts_pins[] =;
static int mt7622_uart2_2_rts_cts_funcs[] =;
static int mt7622_uart2_3_tx_rx_pins[] =;
static int mt7622_uart2_3_tx_rx_funcs[] =;
static int mt7622_uart3_0_tx_rx_pins[] =;
static int mt7622_uart3_0_tx_rx_funcs[] =;
static int mt7622_uart3_1_tx_rx_pins[] =;
static int mt7622_uart3_1_tx_rx_funcs[] =;
static int mt7622_uart3_1_rts_cts_pins[] =;
static int mt7622_uart3_1_rts_cts_funcs[] =;
static int mt7622_uart4_0_tx_rx_pins[] =;
static int mt7622_uart4_0_tx_rx_funcs[] =;
static int mt7622_uart4_1_tx_rx_pins[] =;
static int mt7622_uart4_1_tx_rx_funcs[] =;
static int mt7622_uart4_1_rts_cts_pins[] =;
static int mt7622_uart4_1_rts_cts_funcs[] =;
static int mt7622_uart4_2_tx_rx_pins[] =;
static int mt7622_uart4_2_tx_rx_funcs[] =;
static int mt7622_uart4_2_rts_cts_pins[] =;
static int mt7622_uart4_2_rts_cts_funcs[] =;

/* Watchdog */
static int mt7622_watchdog_pins[] =;
static int mt7622_watchdog_funcs[] =;

/* WLAN LED */
static int mt7622_wled_pins[] =;
static int mt7622_wled_funcs[] =;

static const struct group_desc mt7622_groups[] =;

/* Joint those groups owning the same capability in user point of view which
 * allows that people tend to use through the device tree.
 */
static const char *mt7622_antsel_groups[] =;
static const char *mt7622_emmc_groups[] =;
static const char *mt7622_ethernet_groups[] =;
static const char *mt7622_i2c_groups[] =;
static const char *mt7622_i2s_groups[] =;
static const char *mt7622_ir_groups[] =;
static const char *mt7622_led_groups[] =;
static const char *mt7622_flash_groups[] =;
static const char *mt7622_pcie_groups[] =;
static const char *mt7622_pmic_bus_groups[] =;
static const char *mt7622_pwm_groups[] =;
static const char *mt7622_sd_groups[] =;
static const char *mt7622_spic_groups[] =;
static const char *mt7622_tdm_groups[] =;

static const char *mt7622_uart_groups[] =;
static const char *mt7622_wdt_groups[] =;

static const struct function_desc mt7622_functions[] =;

static const struct mtk_eint_hw mt7622_eint_hw =;

static const struct mtk_pin_soc mt7622_data =;

static const struct of_device_id mt7622_pinctrl_of_match[] =;

static int mt7622_pinctrl_probe(struct platform_device *pdev)
{}

static struct platform_driver mt7622_pinctrl_driver =;

static int __init mt7622_pinctrl_init(void)
{}
arch_initcall(mt7622_pinctrl_init);