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

// SPDX-License-Identifier: GPL-2.0
/*
 * The MT7629 driver based on Linux generic pinctrl binding.
 *
 * Copyright (C) 2018 MediaTek Inc.
 * Author: Ryder Lee <[email protected]>
 */

#include "pinctrl-moore.h"

#define MT7629_PIN(_number, _name, _eint_n)

static const struct mtk_pin_field_calc mt7629_pin_mode_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_dir_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_di_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_do_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_ies_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_smt_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_pullen_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_pullsel_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_drv_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_tdsel_range[] =;

static const struct mtk_pin_field_calc mt7629_pin_rdsel_range[] =;

static const struct mtk_pin_reg_calc mt7629_reg_cals[] =;

static const struct mtk_pin_desc mt7629_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.
 */

/* LED for EPHY */
static int mt7629_ephy_leds_pins[] =;
static int mt7629_ephy_leds_funcs[] =;
static int mt7629_ephy_led0_pins[] =;
static int mt7629_ephy_led0_funcs[] =;
static int mt7629_ephy_led1_pins[] =;
static int mt7629_ephy_led1_funcs[] =;
static int mt7629_ephy_led2_pins[] =;
static int mt7629_ephy_led2_funcs[] =;
static int mt7629_ephy_led3_pins[] =;
static int mt7629_ephy_led3_funcs[] =;
static int mt7629_ephy_led4_pins[] =;
static int mt7629_ephy_led4_funcs[] =;
static int mt7629_wf2g_led_pins[] =;
static int mt7629_wf2g_led_funcs[] =;
static int mt7629_wf5g_led_pins[] =;
static int mt7629_wf5g_led_funcs[] =;

/* Watchdog */
static int mt7629_watchdog_pins[] =;
static int mt7629_watchdog_funcs[] =;

/* LED for GPHY */
static int mt7629_gphy_leds_0_pins[] =;
static int mt7629_gphy_leds_0_funcs[] =;
static int mt7629_gphy_led1_0_pins[] =;
static int mt7629_gphy_led1_0_funcs[] =;
static int mt7629_gphy_led2_0_pins[] =;
static int mt7629_gphy_led2_0_funcs[] =;
static int mt7629_gphy_led3_0_pins[] =;
static int mt7629_gphy_led3_0_funcs[] =;
static int mt7629_gphy_leds_1_pins[] =;
static int mt7629_gphy_leds_1_funcs[] =;
static int mt7629_gphy_led1_1_pins[] =;
static int mt7629_gphy_led1_1_funcs[] =;
static int mt7629_gphy_led2_1_pins[] =;
static int mt7629_gphy_led2_1_funcs[] =;
static int mt7629_gphy_led3_1_pins[] =;
static int mt7629_gphy_led3_1_funcs[] =;

/* I2C */
static int mt7629_i2c_0_pins[] =;
static int mt7629_i2c_0_funcs[] =;
static int mt7629_i2c_1_pins[] =;
static int mt7629_i2c_1_funcs[] =;

/* SPI */
static int mt7629_spi_0_pins[] =;
static int mt7629_spi_0_funcs[] =;
static int mt7629_spi_1_pins[] =;
static int mt7629_spi_1_funcs[] =;
static int mt7629_spi_wp_pins[] =;
static int mt7629_spi_wp_funcs[] =;
static int mt7629_spi_hold_pins[] =;
static int mt7629_spi_hold_funcs[] =;

/* UART */
static int mt7629_uart1_0_txd_rxd_pins[] =;
static int mt7629_uart1_0_txd_rxd_funcs[] =;
static int mt7629_uart1_1_txd_rxd_pins[] =;
static int mt7629_uart1_1_txd_rxd_funcs[] =;
static int mt7629_uart2_0_txd_rxd_pins[] =;
static int mt7629_uart2_0_txd_rxd_funcs[] =;
static int mt7629_uart2_1_txd_rxd_pins[] =;
static int mt7629_uart2_1_txd_rxd_funcs[] =;
static int mt7629_uart1_0_cts_rts_pins[] =;
static int mt7629_uart1_0_cts_rts_funcs[] =;
static int mt7629_uart1_1_cts_rts_pins[] =;
static int mt7629_uart1_1_cts_rts_funcs[] =;
static int mt7629_uart2_0_cts_rts_pins[] =;
static int mt7629_uart2_0_cts_rts_funcs[] =;
static int mt7629_uart2_1_cts_rts_pins[] =;
static int mt7629_uart2_1_cts_rts_funcs[] =;
static int mt7629_uart0_txd_rxd_pins[] =;
static int mt7629_uart0_txd_rxd_funcs[] =;

/* MDC/MDIO */
static int mt7629_mdc_mdio_pins[] =;
static int mt7629_mdc_mdio_funcs[] =;

/* PCIE */
static int mt7629_pcie_pereset_pins[] =;
static int mt7629_pcie_pereset_funcs[] =;
static int mt7629_pcie_wake_pins[] =;
static int mt7629_pcie_wake_funcs[] =;
static int mt7629_pcie_clkreq_pins[] =;
static int mt7629_pcie_clkreq_funcs[] =;

/* PWM */
static int mt7629_pwm_0_pins[] =;
static int mt7629_pwm_0_funcs[] =;
static int mt7629_pwm_1_pins[] =;
static int mt7629_pwm_1_funcs[] =;

/* WF 2G */
static int mt7629_wf0_2g_pins[] =;
static int mt7629_wf0_2g_funcs[] =;

/* WF 5G */
static int mt7629_wf0_5g_pins[] =;
static int mt7629_wf0_5g_funcs[] =;

/* SNFI */
static int mt7629_snfi_pins[] =;
static int mt7629_snfi_funcs[] =;

/* SPI NOR */
static int mt7629_snor_pins[] =;
static int mt7629_snor_funcs[] =;

static const struct group_desc mt7629_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 *mt7629_ethernet_groups[] =;
static const char *mt7629_i2c_groups[] =;
static const char *mt7629_led_groups[] =;
static const char *mt7629_pcie_groups[] =;
static const char *mt7629_pwm_groups[] =;
static const char *mt7629_spi_groups[] =;
static const char *mt7629_uart_groups[] =;
static const char *mt7629_wdt_groups[] =;
static const char *mt7629_wifi_groups[] =;
static const char *mt7629_flash_groups[] =;

static const struct function_desc mt7629_functions[] =;

static const struct mtk_eint_hw mt7629_eint_hw =;

static struct mtk_pin_soc mt7629_data =;

static const struct of_device_id mt7629_pinctrl_of_match[] =;

static int mt7629_pinctrl_probe(struct platform_device *pdev)
{}

static struct platform_driver mt7629_pinctrl_driver =;

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