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

// SPDX-License-Identifier: GPL-2.0+
/*
 * Actions Semi S500 SoC Pinctrl driver
 *
 * Copyright (c) 2014 Actions Semi Inc.
 * Copyright (c) 2020 Cristian Ciocaltea <[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

#define _GPIOA(offset)
#define _GPIOB(offset)
#define _GPIOC(offset)
#define _GPIOD(offset)
#define _GPIOE(offset)

#define NUM_GPIOS
#define _PIN(offset)

#define DNAND_DQS
#define DNAND_DQSN
#define ETH_TXD0
#define ETH_TXD1
#define ETH_TXEN
#define ETH_RXER
#define ETH_CRS_DV
#define ETH_RXD1
#define ETH_RXD0
#define ETH_REF_CLK
#define ETH_MDC
#define ETH_MDIO
#define SIRQ0
#define SIRQ1
#define SIRQ2
#define I2S_D0
#define I2S_BCLK0
#define I2S_LRCLK0
#define I2S_MCLK0
#define I2S_D1

#define I2S_BCLK1
#define I2S_LRCLK1
#define I2S_MCLK1
#define KS_IN0
#define KS_IN1
#define KS_IN2
#define KS_IN3
#define KS_OUT0
#define KS_OUT1
#define KS_OUT2
#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_D17

#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
#define SD0_D0
#define SD0_D1
#define SD0_D2
#define SD0_D3
#define SD1_D0
#define SD1_D1
#define SD1_D2
#define SD1_D3
#define SD0_CMD
#define SD0_CLK
#define SD1_CMD
#define SD1_CLK
#define SPI0_SCLK
#define SPI0_SS
#define SPI0_MISO
#define SPI0_MOSI
#define UART0_RX
#define UART0_TX
#define I2C0_SCLK
#define I2C0_SDATA
#define SENSOR0_PCLK

#define SENSOR0_CKOUT
#define DNAND_ALE
#define DNAND_CLE
#define DNAND_CEB0
#define DNAND_CEB1
#define DNAND_CEB2
#define DNAND_CEB3
#define UART2_RX
#define UART2_TX
#define UART2_RTSB
#define UART2_CTSB
#define UART3_RX
#define UART3_TX
#define UART3_RTSB
#define UART3_CTSB
#define PCM1_IN
#define PCM1_CLK
#define PCM1_SYNC
#define PCM1_OUT

#define I2C1_SCLK
#define I2C1_SDATA
#define I2C2_SCLK
#define I2C2_SDATA

#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

#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_RB

#define PORB
#define CLKO_25M
#define BSEL
#define PKG0
#define PKG1
#define PKG2
#define PKG3

#define _FIRSTPAD
#define _LASTPAD
#define NUM_PADS

static const struct pinctrl_pin_desc s500_pads[] =;

enum s500_pinmux_functions {};

/* MFPCTL group data */
/* mfp0_31_26 reserved */
/* mfp0_25_23 */
static unsigned int lcd0_d18_mfp_pads[]		=;
static unsigned int lcd0_d18_mfp_funcs[]	=;
/* mfp0_22_20 */
static unsigned int rmii_crs_dv_mfp_pads[]	=;
static unsigned int rmii_crs_dv_mfp_funcs[]	=;
/* mfp0_18_16_eth_txd0 */
static unsigned int rmii_txd0_mfp_pads[]	=;
static unsigned int rmii_txd0_mfp_funcs[]	=;
/* mfp0_18_16_eth_txd1 */
static unsigned int rmii_txd1_mfp_pads[]	=;
static unsigned int rmii_txd1_mfp_funcs[]	=;
/* mfp0_15_13_rmii_txen */
static unsigned int rmii_txen_mfp_pads[]	=;
static unsigned int rmii_txen_mfp_funcs[]	=;
/* mfp0_15_13_rmii_rxen */
static unsigned int rmii_rxen_mfp_pads[]	=;
static unsigned int rmii_rxen_mfp_funcs[]	=;
/* mfp0_12_11 reserved */

/* mfp0_10_8_rmii_rxd1 */
static unsigned int rmii_rxd1_mfp_pads[]	=;
static unsigned int rmii_rxd1_mfp_funcs[]	=;
/* mfp0_10_8_rmii_rxd0 */
static unsigned int rmii_rxd0_mfp_pads[]	=;
static unsigned int rmii_rxd0_mfp_funcs[]	=;
/* mfp0_7_6 */
static unsigned int rmii_ref_clk_mfp_pads[]	=;
static unsigned int rmii_ref_clk_mfp_funcs[]	=;
/* mfp0_5 */
static unsigned int i2s_d0_mfp_pads[]		=;
static unsigned int i2s_d0_mfp_funcs[]		=;
/* mfp0_4_3 */
static unsigned int i2s_pcm1_mfp_pads[]		=;
static unsigned int i2s_pcm1_mfp_funcs[]	=;
/* mfp0_2_1_i2s0 */
static unsigned int i2s0_pcm0_mfp_pads[]	=;
static unsigned int i2s0_pcm0_mfp_funcs[]	=;
/* mfp0_2_1_i2s1 */
static unsigned int i2s1_pcm0_mfp_pads[]	=;
static unsigned int i2s1_pcm0_mfp_funcs[]	=;
/* mfp0_0 */
static unsigned int i2s_d1_mfp_pads[]		=;
static unsigned int i2s_d1_mfp_funcs[]		=;
/* mfp1_31_29_ks_in0 */
static unsigned int ks_in0_mfp_pads[]		=;
static unsigned int ks_in0_mfp_funcs[]		=;
/* mfp1_31_29_ks_in1 */
static unsigned int ks_in1_mfp_pads[]		=;
static unsigned int ks_in1_mfp_funcs[]		=;
/* mfp1_31_29_ks_in2 */
static unsigned int ks_in2_mfp_pads[]		=;
static unsigned int ks_in2_mfp_funcs[]		=;
/* mfp1_28_26_ks_in3 */
static unsigned int ks_in3_mfp_pads[]		=;
static unsigned int ks_in3_mfp_funcs[]		=;
/* mfp1_28_26_ks_out0 */
static unsigned int ks_out0_mfp_pads[]		=;
static unsigned int ks_out0_mfp_funcs[]		=;
/* mfp1_28_26_ks_out1 */
static unsigned int ks_out1_mfp_pads[]		=;
static unsigned int ks_out1_mfp_funcs[]		=;
/* mfp1_25_23 */
static unsigned int ks_out2_mfp_pads[]		=;
static unsigned int ks_out2_mfp_funcs[]		=;
/* mfp1_22_21 */
static unsigned int lvds_o_pn_mfp_pads[]	=;
static unsigned int lvds_o_pn_mfp_funcs[]	=;
/* mfp1_20_19 */
static unsigned int dsi_dn0_mfp_pads[]		=;
static unsigned int dsi_dn0_mfp_funcs[]		=;
/* mfp1_18_17 */
static unsigned int dsi_dp2_mfp_pads[]		=;
static unsigned int dsi_dp2_mfp_funcs[]		=;
/* mfp1_16_14 */
static unsigned int lcd0_d17_mfp_pads[]		=;
static unsigned int lcd0_d17_mfp_funcs[]	=;
/* mfp1_13_12 */
static unsigned int dsi_dp3_mfp_pads[]		=;
static unsigned int dsi_dp3_mfp_funcs[]		=;
/* mfp1_11_10 */
static unsigned int dsi_dn3_mfp_pads[]		=;
static unsigned int dsi_dn3_mfp_funcs[]		=;
/* mfp1_9_7 */
static unsigned int dsi_dp0_mfp_pads[]		=;
static unsigned int dsi_dp0_mfp_funcs[]		=;
/* mfp1_6_5 */
static unsigned int lvds_ee_pn_mfp_pads[]	=;
static unsigned int lvds_ee_pn_mfp_funcs[]	=;
/* mfp1_4_3 */
static unsigned int spi0_i2c_pcm_mfp_pads[]	=;
static unsigned int spi0_i2c_pcm_mfp_funcs[]	=;
/* mfp1_2_0 */
static unsigned int spi0_i2s_pcm_mfp_pads[]	=;
static unsigned int spi0_i2s_pcm_mfp_funcs[]	=;
/* mfp2_31 reserved */
/* mfp2_30_29 */
static unsigned int dsi_dnp1_cp_mfp_pads[]	=;
static unsigned int dsi_dnp1_cp_mfp_funcs[]	=;
/* mfp2_28_27 */
static unsigned int lvds_e_pn_mfp_pads[]	=;
static unsigned int lvds_e_pn_mfp_funcs[]	=;
/* mfp2_26_24 */
static unsigned int dsi_dn2_mfp_pads[]		=;
static unsigned int dsi_dn2_mfp_funcs[]		=;
/* mfp2_23 */
static unsigned int uart2_rtsb_mfp_pads[]	=;
static unsigned int uart2_rtsb_mfp_funcs[]	=;
/* mfp2_22 */
static unsigned int uart2_ctsb_mfp_pads[]	=;
static unsigned int uart2_ctsb_mfp_funcs[]	=;
/* mfp2_21 */
static unsigned int uart3_rtsb_mfp_pads[]	=;
static unsigned int uart3_rtsb_mfp_funcs[]	=;
/* mfp2_20 */
static unsigned int uart3_ctsb_mfp_pads[]	=;
static unsigned int uart3_ctsb_mfp_funcs[]	=;
/* mfp2_19_17 */
static unsigned int sd0_d0_mfp_pads[]		=;
static unsigned int sd0_d0_mfp_funcs[]		=;
/* mfp2_16_14 */
static unsigned int sd0_d1_mfp_pads[]		=;
static unsigned int sd0_d1_mfp_funcs[]		=;
/* mfp2_13_11 */
static unsigned int sd0_d2_d3_mfp_pads[]	=;
static unsigned int sd0_d2_d3_mfp_funcs[]	=;
/* mfp2_10_9 */
static unsigned int sd1_d0_d3_mfp_pads[]	=;
static unsigned int sd1_d0_d3_mfp_funcs[]	=;
/* mfp2_8_7 */
static unsigned int sd0_cmd_mfp_pads[]		=;
static unsigned int sd0_cmd_mfp_funcs[]		=;
/* mfp2_6_5 */
static unsigned int sd0_clk_mfp_pads[]		=;
static unsigned int sd0_clk_mfp_funcs[]		=;
/* mfp2_4_3 */
static unsigned int sd1_cmd_mfp_pads[]		=;
static unsigned int sd1_cmd_mfp_funcs[]		=;
/* mfp2_2_0 */
static unsigned int uart0_rx_mfp_pads[]		=;
static unsigned int uart0_rx_mfp_funcs[]	=;
/* mfp3_31 reserved */
/* mfp3_30 */
static unsigned int clko_25m_mfp_pads[]		=;
static unsigned int clko_25m_mfp_funcs[]	=;
/* mfp3_29_28 */
static unsigned int csi_cn_cp_mfp_pads[]	=;
static unsigned int csi_cn_cp_mfp_funcs[]	=;
/* mfp3_27_24 reserved */
/* mfp3_23_22 */
static unsigned int sens0_ckout_mfp_pads[]	=;
static unsigned int sens0_ckout_mfp_funcs[]	=;
/* mfp3_21_19 */
static unsigned int uart0_tx_mfp_pads[]		=;
static unsigned int uart0_tx_mfp_funcs[]	=;
/* mfp3_18_16 */
static unsigned int i2c0_mfp_pads[]		=;
static unsigned int i2c0_mfp_funcs[]		=;
/* mfp3_15_14 */
static unsigned int csi_dn_dp_mfp_pads[]	=;
static unsigned int csi_dn_dp_mfp_funcs[]	=;
/* mfp3_13_12 */
static unsigned int sen0_pclk_mfp_pads[]	=;
static unsigned int sen0_pclk_mfp_funcs[]	=;
/* mfp3_11_10 */
static unsigned int pcm1_in_mfp_pads[]		=;
static unsigned int pcm1_in_mfp_funcs[]		=;
/* mfp3_9_8 */
static unsigned int pcm1_clk_mfp_pads[]		=;
static unsigned int pcm1_clk_mfp_funcs[]	=;
/* mfp3_7_6 */
static unsigned int pcm1_sync_mfp_pads[]	=;
static unsigned int pcm1_sync_mfp_funcs[]	=;
/* mfp3_5_4 */
static unsigned int pcm1_out_mfp_pads[]		=;
static unsigned int pcm1_out_mfp_funcs[]	=;
/* mfp3_3 */
static unsigned int dnand_data_wr_mfp_pads[]	=;
static unsigned int dnand_data_wr_mfp_funcs[]	=;
/* mfp3_2 */
static unsigned int dnand_acle_ce0_mfp_pads[]	=;
static unsigned int dnand_acle_ce0_mfp_funcs[]	=;
/* mfp3_1_0_nand_ceb2 */
static unsigned int nand_ceb2_mfp_pads[]	=;
static unsigned int nand_ceb2_mfp_funcs[]	=;
/* mfp3_1_0_nand_ceb3 */
static unsigned int nand_ceb3_mfp_pads[]	=;
static unsigned int nand_ceb3_mfp_funcs[]	=;

/* PADDRV group data */
/* paddrv0_29_28 */
static unsigned int sirq_drv_pads[]		=;
/* paddrv0_23_22 */
static unsigned int rmii_txd01_txen_drv_pads[]	=;
/* paddrv0_21_20 */
static unsigned int rmii_rxer_drv_pads[]	=;
/* paddrv0_19_18 */
static unsigned int rmii_crs_drv_pads[]		=;
/* paddrv0_17_16 */
static unsigned int rmii_rxd10_drv_pads[]	=;
/* paddrv0_15_14 */
static unsigned int rmii_ref_clk_drv_pads[]	=;
/* paddrv0_13_12 */
static unsigned int smi_mdc_mdio_drv_pads[]	=;
/* paddrv0_11_10 */
static unsigned int i2s_d0_drv_pads[]		=;
/* paddrv0_9_8 */
static unsigned int i2s_bclk0_drv_pads[]	=;
/* paddrv0_7_6 */
static unsigned int i2s3_drv_pads[]		=;
/* paddrv0_5_4 */
static unsigned int i2s13_drv_pads[]		=;
/* paddrv0_3_2 */
static unsigned int pcm1_drv_pads[]		=;
/* paddrv0_1_0 */
static unsigned int ks_in_drv_pads[]		=;
/* paddrv1_31_30 */
static unsigned int ks_out_drv_pads[]		=;
/* paddrv1_29_28 */
static unsigned int lvds_all_drv_pads[]		=;
/* paddrv1_27_26 */
static unsigned int lcd_dsi_drv_pads[]		=;
/* paddrv1_25_24 */
static unsigned int dsi_drv_pads[]		=;
/* paddrv1_23_22 */
static unsigned int sd0_d0_d3_drv_pads[]	=;
/* paddrv1_21_20 */
static unsigned int sd1_d0_d3_drv_pads[]	=;
/* paddrv1_19_18 */
static unsigned int sd0_cmd_drv_pads[]		=;
/* paddrv1_17_16 */
static unsigned int sd0_clk_drv_pads[]		=;
/* paddrv1_15_14 */
static unsigned int sd1_cmd_drv_pads[]		=;
/* paddrv1_13_12 */
static unsigned int sd1_clk_drv_pads[]		=;
/* paddrv1_11_10 */
static unsigned int spi0_all_drv_pads[]		=;
/* paddrv2_31_30 */
static unsigned int uart0_rx_drv_pads[]		=;
/* paddrv2_29_28 */
static unsigned int uart0_tx_drv_pads[]		=;
/* paddrv2_27_26 */
static unsigned int uart2_all_drv_pads[]	=;
/* paddrv2_24_23 */
static unsigned int i2c0_all_drv_pads[]		=;
/* paddrv2_22_21 */
static unsigned int i2c12_all_drv_pads[]	=;
/* paddrv2_19_18 */
static unsigned int sens0_pclk_drv_pads[]	=;
/* paddrv2_13_12 */
static unsigned int sens0_ckout_drv_pads[]	=;
/* paddrv2_3_2 */
static unsigned int uart3_all_drv_pads[]	=;

/* Pinctrl groups */
static const struct owl_pingroup s500_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 i2c3_groups[] =;

static const char * const lvds_groups[] =;

static const char * const ts_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 struct owl_pinmux_func s500_functions[] =;

/* PAD_ST0 */
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(SPI0_SCLK, 0, 13, 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);

/* 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_MOSI, 1, 4, 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_D17, 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(DSI_CP, 1, 31, 1);
static PAD_PULLCTL_CONF(DSI_CN, 1, 30, 1);
static PAD_PULLCTL_CONF(DSI_DN2, 1, 28, 1);
static PAD_PULLCTL_CONF(DNAND_RDBN, 1, 25, 1);
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(SD1_CMD, 1, 11, 1);
static PAD_PULLCTL_CONF(SD1_D0, 1, 6, 1);
static PAD_PULLCTL_CONF(SD1_D1, 1, 5, 1);
static PAD_PULLCTL_CONF(SD1_D2, 1, 4, 1);
static PAD_PULLCTL_CONF(SD1_D3, 1, 3, 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(SPI0_SCLK, 2, 12, 1);
static PAD_PULLCTL_CONF(SPI0_MOSI, 2, 11, 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);
static PAD_PULLCTL_CONF(DNAND_DQSN, 2, 5, 2);
static PAD_PULLCTL_CONF(DNAND_DQS, 2, 3, 2);
static PAD_PULLCTL_CONF(DNAND_D0, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D1, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D2, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D3, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D4, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D5, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D6, 2, 2, 1);
static PAD_PULLCTL_CONF(DNAND_D7, 2, 2, 1);

/* Pad info table */
static const struct owl_padinfo s500_padinfo[NUM_PADS] =;

static const struct owl_gpio_port s500_gpio_ports[] =;

enum s500_pinconf_pull {};

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

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

static struct owl_pinctrl_soc_data s500_pinctrl_data =;

static int s500_pinctrl_probe(struct platform_device *pdev)
{}

static const struct of_device_id s500_pinctrl_of_match[] =;

static struct platform_driver s500_pinctrl_driver =;

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

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

MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();