linux/drivers/pinctrl/actions/pinctrl-s700.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Actions Semi Owl S700 Pinctrl driver
 *
 * Copyright (c) 2014 Actions Semi Inc.
 * Author: David Liu <[email protected]>
 *
 * Author: Pathiban Nallathambi <[email protected]>
 * Author: Saravanan Sekar <[email protected]>
 */

#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-owl.h"

/* Pinctrl registers offset */
#define MFCTL0
#define MFCTL1
#define MFCTL2
#define MFCTL3
#define PAD_PULLCTL0
#define PAD_PULLCTL1
#define PAD_PULLCTL2
#define PAD_ST0
#define PAD_ST1
#define PAD_CTL
#define PAD_DRV0
#define PAD_DRV1
#define PAD_DRV2

/*
 * Most pins affected by the pinmux can also be GPIOs. Define these first.
 * These must match how the GPIO driver names/numbers its pins.
 */
#define _GPIOA(offset)
#define _GPIOB(offset)
#define _GPIOC(offset)
#define _GPIOD(offset)
#define _GPIOE(offset)

/* All non-GPIO pins follow */
#define NUM_GPIOS
#define _PIN(offset)

/* Ethernet MAC */
#define ETH_TXD0
#define ETH_TXD1
#define ETH_TXD2
#define ETH_TXD3
#define ETH_TXEN
#define ETH_RXER
#define ETH_CRS_DV
#define ETH_RXD1
#define ETH_RXD0
#define ETH_RXD2
#define ETH_RXD3
#define ETH_REF_CLK
#define ETH_MDC
#define ETH_MDIO

/* SIRQ */
#define SIRQ0
#define SIRQ1
#define SIRQ2

/* I2S */
#define I2S_D0
#define I2S_BCLK0
#define I2S_LRCLK0
#define I2S_MCLK0
#define I2S_D1
#define I2S_BCLK1
#define I2S_LRCLK1
#define I2S_MCLK1

/* PCM1 */
#define PCM1_IN
#define PCM1_CLK
#define PCM1_SYNC
#define PCM1_OUT

/* KEY */
#define KS_IN0
#define KS_IN1
#define KS_IN2
#define KS_IN3
#define KS_OUT0
#define KS_OUT1
#define KS_OUT2

/* LVDS */
#define LVDS_OEP
#define LVDS_OEN
#define LVDS_ODP
#define LVDS_ODN
#define LVDS_OCP
#define LVDS_OCN
#define LVDS_OBP
#define LVDS_OBN
#define LVDS_OAP
#define LVDS_OAN
#define LVDS_EEP
#define LVDS_EEN
#define LVDS_EDP
#define LVDS_EDN
#define LVDS_ECP
#define LVDS_ECN
#define LVDS_EBP
#define LVDS_EBN
#define LVDS_EAP
#define LVDS_EAN
#define LCD0_D18
#define LCD0_D2

/* DSI */
#define DSI_DP3
#define DSI_DN3
#define DSI_DP1
#define DSI_DN1
#define DSI_CP
#define DSI_CN
#define DSI_DP0
#define DSI_DN0
#define DSI_DP2
#define DSI_DN2

/* SD */
#define SD0_D0
#define SD0_D1
#define SD0_D2
#define SD0_D3
#define SD0_D4
#define SD0_D5
#define SD0_D6
#define SD0_D7
#define SD0_CMD
#define SD0_CLK
#define SD1_CMD
#define SD1_CLK
#define SD1_D0
#define SD1_D1
#define SD1_D2
#define SD1_D3

/* SPI */
#define SPI0_SS
#define SPI0_MISO

/* UART for console */
#define UART0_RX
#define UART0_TX

/* UART for Bluetooth */
#define UART2_RX
#define UART2_TX
#define UART2_RTSB
#define UART2_CTSB

/* UART for 3G */
#define UART3_RX
#define UART3_TX
#define UART3_RTSB
#define UART3_CTSB

/* I2C */
#define I2C0_SCLK
#define I2C0_SDATA
#define I2C1_SCLK
#define I2C1_SDATA
#define I2C2_SCLK
#define I2C2_SDATA

/* CSI*/
#define CSI_DN0
#define CSI_DP0
#define CSI_DN1
#define CSI_DP1
#define CSI_CN
#define CSI_CP
#define CSI_DN2
#define CSI_DP2
#define CSI_DN3
#define CSI_DP3

/* Sensor */
#define SENSOR0_PCLK
#define SENSOR0_CKOUT

/* NAND (1.8v / 3.3v) */
#define DNAND_D0
#define DNAND_D1
#define DNAND_D2
#define DNAND_D3
#define DNAND_D4
#define DNAND_D5
#define DNAND_D6
#define DNAND_D7
#define DNAND_WRB
#define DNAND_RDB
#define DNAND_RDBN
#define DNAND_DQS
#define DNAND_DQSN
#define DNAND_RB0
#define DNAND_ALE
#define DNAND_CLE
#define DNAND_CEB0
#define DNAND_CEB1
#define DNAND_CEB2
#define DNAND_CEB3

/* System */
#define PORB
#define CLKO_25M
#define BSEL
#define PKG0
#define PKG1
#define PKG2
#define PKG3

#define _FIRSTPAD
#define _LASTPAD
#define NUM_PADS

/* Pad names for the pinmux subsystem */
static const struct pinctrl_pin_desc s700_pads[] =;

enum s700_pinmux_functions {};

/* mfp0_31_30 reserved */

/* rgmii_txd23 */
static unsigned int  rgmii_txd23_mfp_pads[]		=;
static unsigned int  rgmii_txd23_mfp_funcs[]		=;
/* rgmii_rxd2 */
static unsigned int  rgmii_rxd2_mfp_pads[]		=;
static unsigned int  rgmii_rxd2_mfp_funcs[]		=;
/* rgmii_rxd3 */
static unsigned int  rgmii_rxd3_mfp_pads[]		=;
static unsigned int  rgmii_rxd3_mfp_funcs[]		=;
/* lcd0_d18 */
static unsigned int  lcd0_d18_mfp_pads[]		=;
static unsigned int  lcd0_d18_mfp_funcs[]		=;
/* rgmii_txd01 */
static unsigned int  rgmii_txd01_mfp_pads[]		=;
static unsigned int  rgmii_txd01_mfp_funcs[]		=;
/* rgmii_txd0 */
static unsigned int  rgmii_txd0_mfp_pads[]		=;
static unsigned int  rgmii_txd0_mfp_funcs[]		=;
/* rgmii_txd1 */
static unsigned int  rgmii_txd1_mfp_pads[]		=;
static unsigned int  rgmii_txd1_mfp_funcs[]		=;
/* rgmii_txen */
static unsigned int  rgmii_txen_mfp_pads[]		=;
static unsigned int  rgmii_txen_mfp_funcs[]		=;
/* rgmii_rxen */
static unsigned int  rgmii_rxen_mfp_pads[]		=;
static unsigned int  rgmii_rxen_mfp_funcs[]		=;
/* mfp0_12_11 reserved */
/* rgmii_rxd1*/
static unsigned int  rgmii_rxd1_mfp_pads[]		=;
static unsigned int  rgmii_rxd1_mfp_funcs[]		=;
/* rgmii_rxd0 */
static unsigned int  rgmii_rxd0_mfp_pads[]		=;
static unsigned int  rgmii_rxd0_mfp_funcs[]		=;
/* rgmii_ref_clk */
static unsigned int  rgmii_ref_clk_mfp_pads[]		=;
static unsigned int  rgmii_ref_clk_mfp_funcs[]		=;
/* i2s_d0 */
static unsigned int  i2s_d0_mfp_pads[]			=;
static unsigned int  i2s_d0_mfp_funcs[]			=;
/* i2s_pcm1 */
static unsigned int  i2s_pcm1_mfp_pads[]		=;
static unsigned int  i2s_pcm1_mfp_funcs[]		=;
/* i2s0_pcm0 */
static unsigned int  i2s0_pcm0_mfp_pads[]		=;
static unsigned int  i2s0_pcm0_mfp_funcs[]		=;
/* i2s1_pcm0 */
static unsigned int  i2s1_pcm0_mfp_pads[]		=;

static unsigned int  i2s1_pcm0_mfp_funcs[]		=;
/* i2s_d1 */
static unsigned int  i2s_d1_mfp_pads[]			=;
static unsigned int  i2s_d1_mfp_funcs[]			=;
/* ks_in2 */
static unsigned int  ks_in2_mfp_pads[]			=;
static unsigned int  ks_in2_mfp_funcs[]			=;
/* ks_in1 */
static unsigned int  ks_in1_mfp_pads[]			=;
static unsigned int  ks_in1_mfp_funcs[]			=;
/* ks_in0 */
static unsigned int  ks_in0_mfp_pads[]			=;
static unsigned int  ks_in0_mfp_funcs[]			=;
/* ks_in3 */
static unsigned int  ks_in3_mfp_pads[]			=;
static unsigned int  ks_in3_mfp_funcs[]			=;
/* ks_out0 */
static unsigned int  ks_out0_mfp_pads[]			=;
static unsigned int  ks_out0_mfp_funcs[]		=;

/* ks_out1 */
static unsigned int  ks_out1_mfp_pads[]			=;
static unsigned int  ks_out1_mfp_funcs[]		=;
/* ks_out2 */
static unsigned int  ks_out2_mfp_pads[]			=;
static unsigned int  ks_out2_mfp_funcs[]		=;
/* lvds_o_pn */
static unsigned int  lvds_o_pn_mfp_pads[]		=;

static unsigned int  lvds_o_pn_mfp_funcs[]		=;

/* dsi_dn0 */
static unsigned int  dsi_dn0_mfp_pads[]			=;
static unsigned int  dsi_dn0_mfp_funcs[]		=;
/* dsi_dp2 */
static unsigned int  dsi_dp2_mfp_pads[]			=;
static unsigned int  dsi_dp2_mfp_funcs[]		=;
/* lcd0_d2 */
static unsigned int  lcd0_d2_mfp_pads[]			=;
static unsigned int  lcd0_d2_mfp_funcs[]		=;
/* dsi_dp3 */
static unsigned int  dsi_dp3_mfp_pads[]			=;
static unsigned int  dsi_dp3_mfp_funcs[]		=;
/* dsi_dn3 */
static unsigned int  dsi_dn3_mfp_pads[]			=;
static unsigned int  dsi_dn3_mfp_funcs[]		=;
/* dsi_dp0 */
static unsigned int  dsi_dp0_mfp_pads[]			=;
static unsigned int  dsi_dp0_mfp_funcs[]		=;
/* lvds_ee_pn */
static unsigned int  lvds_ee_pn_mfp_pads[]		=;
static unsigned int  lvds_ee_pn_mfp_funcs[]		=;
/* uart2_rx_tx */
static unsigned int  uart2_rx_tx_mfp_pads[]		=;
static unsigned int  uart2_rx_tx_mfp_funcs[]		=;
/* spi0_i2c_pcm */
static unsigned int  spi0_i2c_pcm_mfp_pads[]		=;
static unsigned int  spi0_i2c_pcm_mfp_funcs[]		=;
/* mfp2_31 reserved */

/* dsi_dnp1_cp_d2 */
static unsigned int  dsi_dnp1_cp_d2_mfp_pads[]		=;
static unsigned int  dsi_dnp1_cp_d2_mfp_funcs[]		=;
/* dsi_dnp1_cp_d17 */
static unsigned int  dsi_dnp1_cp_d17_mfp_pads[]		=;

static unsigned int  dsi_dnp1_cp_d17_mfp_funcs[]	=;
/* lvds_e_pn */
static unsigned int  lvds_e_pn_mfp_pads[]		=;

static unsigned int  lvds_e_pn_mfp_funcs[]		=;
/* dsi_dn2 */
static unsigned int  dsi_dn2_mfp_pads[]			=;
static unsigned int  dsi_dn2_mfp_funcs[]		=;
/* uart2_rtsb */
static unsigned int  uart2_rtsb_mfp_pads[]		=;
static unsigned int  uart2_rtsb_mfp_funcs[]		=;

/* uart2_ctsb */
static unsigned int  uart2_ctsb_mfp_pads[]		=;
static unsigned int  uart2_ctsb_mfp_funcs[]		=;
/* uart3_rtsb */
static unsigned int  uart3_rtsb_mfp_pads[]		=;
static unsigned int  uart3_rtsb_mfp_funcs[]		=;

/* uart3_ctsb */
static unsigned int  uart3_ctsb_mfp_pads[]		=;
static unsigned int  uart3_ctsb_mfp_funcs[]		=;
/* sd0_d0 */
static unsigned int  sd0_d0_mfp_pads[]			=;
static unsigned int  sd0_d0_mfp_funcs[]			=;
/* sd0_d1 */
static unsigned int  sd0_d1_mfp_pads[]			=;
static unsigned int  sd0_d1_mfp_funcs[]			=;
/* sd0_d2_d3 */
static unsigned int  sd0_d2_d3_mfp_pads[]		=;
static unsigned int  sd0_d2_d3_mfp_funcs[]		=;

/* sd1_d0_d3 */
static unsigned int  sd1_d0_d3_mfp_pads[]		=;
static unsigned int  sd1_d0_d3_mfp_funcs[]		=;

/* sd0_cmd */
static unsigned int  sd0_cmd_mfp_pads[]			=;
static unsigned int  sd0_cmd_mfp_funcs[]		=;
/* sd0_clk */
static unsigned int  sd0_clk_mfp_pads[]			=;
static unsigned int  sd0_clk_mfp_funcs[]		=;
/* sd1_cmd */
static unsigned int  sd1_cmd_mfp_pads[]			=;
static unsigned int  sd1_cmd_mfp_funcs[]		=;
/* uart0_rx */
static unsigned int  uart0_rx_mfp_pads[]		=;
static unsigned int  uart0_rx_mfp_funcs[]		=;
/* dnand_data_wr1 reserved */

/* clko_25m */
static unsigned int  clko_25m_mfp_pads[]		=;
static unsigned int  clko_25m_mfp_funcs[]		=;
/* csi_cn_cp */
static unsigned int  csi_cn_cp_mfp_pads[]		=;
static unsigned int  csi_cn_cp_mfp_funcs[]		=;
/* dnand_acle_ce07_24 reserved */

/* sens0_ckout */
static unsigned int  sens0_ckout_mfp_pads[]		=;
static unsigned int  sens0_ckout_mfp_funcs[]		=;
/* uart0_tx */
static unsigned int  uart0_tx_mfp_pads[]		=;
static unsigned int  uart0_tx_mfp_funcs[]		=;
/* i2c0_mfp */
static unsigned int  i2c0_mfp_pads[]		=;
static unsigned int  i2c0_mfp_funcs[]		=;
/* csi_dn_dp */
static unsigned int  csi_dn_dp_mfp_pads[]		=;
static unsigned int  csi_dn_dp_mfp_funcs[]		=;
/* sen0_pclk */
static unsigned int  sen0_pclk_mfp_pads[]		=;
static unsigned int  sen0_pclk_mfp_funcs[]		=;
/* pcm1_in */
static unsigned int  pcm1_in_mfp_pads[]			=;
static unsigned int  pcm1_in_mfp_funcs[]		=;
/* pcm1_clk */
static unsigned int  pcm1_clk_mfp_pads[]		=;
static unsigned int  pcm1_clk_mfp_funcs[]		=;
/* pcm1_sync */
static unsigned int  pcm1_sync_mfp_pads[]		=;
static unsigned int  pcm1_sync_mfp_funcs[]		=;
/* pcm1_out */
static unsigned int  pcm1_out_mfp_pads[]		=;
static unsigned int  pcm1_out_mfp_funcs[]		=;
/* dnand_data_wr */
static unsigned int  dnand_data_wr_mfp_pads[]		=;
static unsigned int  dnand_data_wr_mfp_funcs[]		=;
/* dnand_acle_ce0 */
static unsigned int  dnand_acle_ce0_mfp_pads[]		=;
static unsigned int  dnand_acle_ce0_mfp_funcs[]		=;

/* nand_ceb2 */
static unsigned int  nand_ceb2_mfp_pads[]		=;
static unsigned int  nand_ceb2_mfp_funcs[]		=;
/* nand_ceb3 */
static unsigned int  nand_ceb3_mfp_pads[]		=;
static unsigned int  nand_ceb3_mfp_funcs[]		=;
/*****End MFP group data****************************/

/*****PADDRV group data****************************/

/*PAD_DRV0*/
static unsigned int  sirq_drv_pads[]			=;

static unsigned int  rgmii_txd23_drv_pads[]		=;

static unsigned int  rgmii_rxd23_drv_pads[]		=;

static unsigned int  rgmii_txd01_txen_drv_pads[]	=;

static unsigned int  rgmii_rxer_drv_pads[]		=;

static unsigned int  rgmii_crs_drv_pads[]		=;

static unsigned int  rgmii_rxd10_drv_pads[]		=;

static unsigned int  rgmii_ref_clk_drv_pads[]		=;

static unsigned int  smi_mdc_mdio_drv_pads[]		=;

static unsigned int  i2s_d0_drv_pads[]			=;

static unsigned int  i2s_bclk0_drv_pads[]		=;

static unsigned int  i2s3_drv_pads[]			=;

static unsigned int  i2s13_drv_pads[]			=;

static unsigned int  pcm1_drv_pads[]			=;

static unsigned int  ks_in_drv_pads[]			=;

/*PAD_DRV1*/
static unsigned int  ks_out_drv_pads[]			=;

static unsigned int  lvds_all_drv_pads[]		=;

static unsigned int  lcd_d18_d2_drv_pads[]		=;

static unsigned int  dsi_all_drv_pads[]			=;

static unsigned int  sd0_d0_d3_drv_pads[]		=;

static unsigned int  sd0_cmd_drv_pads[]			=;

static unsigned int  sd0_clk_drv_pads[]			=;

static unsigned int  spi0_all_drv_pads[]		=;

/*PAD_DRV2*/
static unsigned int  uart0_rx_drv_pads[]		=;

static unsigned int  uart0_tx_drv_pads[]		=;

static unsigned int  uart2_all_drv_pads[]		=;

static unsigned int  i2c0_all_drv_pads[]		=;

static unsigned int  i2c12_all_drv_pads[]		=;

static unsigned int  sens0_pclk_drv_pads[]		=;

static unsigned int  sens0_ckout_drv_pads[]		=;

static unsigned int  uart3_all_drv_pads[]		=;

/* all pinctrl groups of S700 board */
static const struct owl_pingroup s700_groups[] =;

static const char * const nor_groups[] =;

static const char * const eth_rmii_groups[] =;

static const char * const eth_smii_groups[] =;

static const char * const spi0_groups[] =;

static const char * const spi1_groups[] =;

static const char * const spi2_groups[] =;

static const char * const spi3_groups[] =;

static const char * const sens0_groups[] =;

static const char * const sens1_groups[] =;

static const char * const uart0_groups[] =;

static const char * const uart1_groups[] =;

static const char * const uart2_groups[] =;

static const char * const uart3_groups[] =;

static const char * const uart4_groups[] =;

static const char * const uart5_groups[] =;

static const char * const uart6_groups[] =;

static const char * const i2s0_groups[] =;

static const char * const i2s1_groups[] =;

static const char * const pcm1_groups[] =;

static const char * const pcm0_groups[] =;

static const char * const ks_groups[] =;

static const char * const jtag_groups[] =;

static const char * const pwm0_groups[] =;

static const char * const pwm1_groups[] =;

static const char * const pwm2_groups[] =;

static const char * const pwm3_groups[] =;

static const char * const pwm4_groups[] =;

static const char * const pwm5_groups[] =;

static const char * const p0_groups[] =;

static const char * const sd0_groups[] =;

static const char * const sd1_groups[] =;

static const char * const sd2_groups[] =;

static const char * const i2c0_groups[] =;

static const char * const i2c1_groups[] =;

static const char * const i2c2_groups[] =;

static const char * const i2c3_groups[] =;

static const char * const lvds_groups[] =;

static const char * const bt_groups[] =;

static const char * const lcd0_groups[] =;


static const char * const usb30_groups[] =;

static const char * const clko_25m_groups[] =;

static const char * const mipi_csi_groups[] =;

static const char * const dsi_groups[] =;

static const char * const nand_groups[] =;

static const char * const spdif_groups[] =;

static const char * const sirq0_groups[] =;

static const char * const sirq1_groups[] =;

static const char * const sirq2_groups[] =;

static const struct owl_pinmux_func s700_functions[] =;

/* PAD_ST0 */
static PAD_ST_CONF(UART2_TX, 0, 31, 1);
static PAD_ST_CONF(I2C0_SDATA, 0, 30, 1);
static PAD_ST_CONF(UART0_RX, 0, 29, 1);
static PAD_ST_CONF(I2S_MCLK1, 0, 23, 1);
static PAD_ST_CONF(ETH_REF_CLK, 0, 22, 1);
static PAD_ST_CONF(ETH_TXEN, 0, 21, 1);
static PAD_ST_CONF(ETH_TXD0, 0, 20, 1);
static PAD_ST_CONF(I2S_LRCLK1, 0, 19, 1);
static PAD_ST_CONF(DSI_DP0, 0, 16, 1);
static PAD_ST_CONF(DSI_DN0, 0, 15, 1);
static PAD_ST_CONF(UART0_TX, 0, 14, 1);
static PAD_ST_CONF(SD0_CLK, 0, 12, 1);
static PAD_ST_CONF(KS_IN0, 0, 11, 1);
static PAD_ST_CONF(SENSOR0_PCLK, 0, 9, 1);
static PAD_ST_CONF(I2C0_SCLK, 0, 7, 1);
static PAD_ST_CONF(KS_OUT0, 0, 6, 1);
static PAD_ST_CONF(KS_OUT1, 0, 5, 1);
static PAD_ST_CONF(KS_OUT2, 0, 4, 1);
static PAD_ST_CONF(ETH_TXD3, 0, 3, 1);
static PAD_ST_CONF(ETH_TXD2, 0, 2, 1);

/* PAD_ST1 */
static PAD_ST_CONF(DSI_DP2, 1, 31, 1);
static PAD_ST_CONF(DSI_DN2, 1, 30, 1);
static PAD_ST_CONF(I2S_LRCLK0, 1, 29, 1);
static PAD_ST_CONF(UART3_CTSB, 1, 27, 1);
static PAD_ST_CONF(UART3_RTSB, 1, 26, 1);
static PAD_ST_CONF(UART3_RX, 1, 25, 1);
static PAD_ST_CONF(UART2_RTSB, 1, 24, 1);
static PAD_ST_CONF(UART2_CTSB, 1, 23, 1);
static PAD_ST_CONF(UART2_RX, 1, 22, 1);
static PAD_ST_CONF(ETH_RXD0, 1, 21, 1);
static PAD_ST_CONF(ETH_RXD1, 1, 20, 1);
static PAD_ST_CONF(ETH_CRS_DV, 1, 19, 1);
static PAD_ST_CONF(ETH_RXER, 1, 18, 1);
static PAD_ST_CONF(ETH_TXD1, 1, 17, 1);
static PAD_ST_CONF(LVDS_OAP, 1, 12, 1);
static PAD_ST_CONF(PCM1_CLK, 1, 11, 1);
static PAD_ST_CONF(PCM1_IN, 1, 10, 1);
static PAD_ST_CONF(PCM1_SYNC, 1, 9, 1);
static PAD_ST_CONF(I2C1_SCLK, 1, 8, 1);
static PAD_ST_CONF(I2C1_SDATA, 1, 7, 1);
static PAD_ST_CONF(I2C2_SCLK, 1, 6, 1);
static PAD_ST_CONF(I2C2_SDATA, 1, 5, 1);

static PAD_ST_CONF(SPI0_MISO, 1, 3, 1);
static PAD_ST_CONF(SPI0_SS, 1, 2, 1);
static PAD_ST_CONF(I2S_BCLK0, 1, 1, 1);
static PAD_ST_CONF(I2S_MCLK0, 1, 0, 1);

/* PAD_PULLCTL0 */
static PAD_PULLCTL_CONF(PCM1_SYNC, 0, 30, 1);
static PAD_PULLCTL_CONF(PCM1_OUT, 0, 29, 1);
static PAD_PULLCTL_CONF(KS_OUT2, 0, 28, 1);
static PAD_PULLCTL_CONF(LCD0_D2, 0, 27, 1);
static PAD_PULLCTL_CONF(DSI_DN3, 0, 26, 1);
static PAD_PULLCTL_CONF(ETH_RXER, 0, 16, 1);
static PAD_PULLCTL_CONF(SIRQ0, 0, 14, 2);
static PAD_PULLCTL_CONF(SIRQ1, 0, 12, 2);
static PAD_PULLCTL_CONF(SIRQ2, 0, 10, 2);
static PAD_PULLCTL_CONF(I2C0_SDATA, 0, 9, 1);
static PAD_PULLCTL_CONF(I2C0_SCLK, 0, 8, 1);
static PAD_PULLCTL_CONF(KS_IN0, 0, 7, 1);
static PAD_PULLCTL_CONF(KS_IN1, 0, 6, 1);
static PAD_PULLCTL_CONF(KS_IN2, 0, 5, 1);
static PAD_PULLCTL_CONF(KS_IN3, 0, 4, 1);
static PAD_PULLCTL_CONF(KS_OUT0, 0, 2, 1);
static PAD_PULLCTL_CONF(KS_OUT1, 0, 1, 1);
static PAD_PULLCTL_CONF(DSI_DP1, 0, 0, 1);

/* PAD_PULLCTL1 */
static PAD_PULLCTL_CONF(SD0_D0, 1, 17, 1);
static PAD_PULLCTL_CONF(SD0_D1, 1, 16, 1);
static PAD_PULLCTL_CONF(SD0_D2, 1, 15, 1);
static PAD_PULLCTL_CONF(SD0_D3, 1, 14, 1);
static PAD_PULLCTL_CONF(SD0_CMD, 1, 13, 1);
static PAD_PULLCTL_CONF(SD0_CLK, 1, 12, 1);
static PAD_PULLCTL_CONF(UART0_RX, 1, 2, 1);
static PAD_PULLCTL_CONF(UART0_TX, 1, 1, 1);
static PAD_PULLCTL_CONF(CLKO_25M, 1, 0, 1);

/* PAD_PULLCTL2 */
static PAD_PULLCTL_CONF(ETH_TXD2, 2, 18, 1);
static PAD_PULLCTL_CONF(ETH_TXD3, 2, 17, 1);
static PAD_PULLCTL_CONF(SPI0_SS, 2, 16, 1);
static PAD_PULLCTL_CONF(SPI0_MISO, 2, 15, 1);
static PAD_PULLCTL_CONF(I2C1_SDATA, 2, 10, 1);
static PAD_PULLCTL_CONF(I2C1_SCLK, 2, 9, 1);
static PAD_PULLCTL_CONF(I2C2_SDATA, 2, 8, 1);
static PAD_PULLCTL_CONF(I2C2_SCLK, 2, 7, 1);

/* Pad info table for the pinmux subsystem */
static const struct owl_padinfo s700_padinfo[NUM_PADS] =;

static const struct owl_gpio_port s700_gpio_ports[] =;

enum s700_pinconf_pull {};

static int s700_pad_pinconf_arg2val(const struct owl_padinfo *info,
				unsigned int param,
				u32 *arg)
{}

static int s700_pad_pinconf_val2arg(const struct owl_padinfo *padinfo,
				unsigned int param,
				u32 *arg)
{}

static struct owl_pinctrl_soc_data s700_pinctrl_data =;

static int s700_pinctrl_probe(struct platform_device *pdev)
{}

static const struct of_device_id s700_pinctrl_of_match[] =;

static struct platform_driver s700_pinctrl_driver =;

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

static void __exit s700_pinctrl_exit(void)
{}
module_exit(s700_pinctrl_exit);

MODULE_AUTHOR();
MODULE_DESCRIPTION();