162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Actions Semi Owl S700 Pinctrl driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2014 Actions Semi Inc.
662306a36Sopenharmony_ci * Author: David Liu <liuwei@actions-semi.com>
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Author: Pathiban Nallathambi <pn@denx.de>
962306a36Sopenharmony_ci * Author: Saravanan Sekar <sravanhome@gmail.com>
1062306a36Sopenharmony_ci */
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <linux/module.h>
1362306a36Sopenharmony_ci#include <linux/of.h>
1462306a36Sopenharmony_ci#include <linux/platform_device.h>
1562306a36Sopenharmony_ci#include <linux/pinctrl/pinconf-generic.h>
1662306a36Sopenharmony_ci#include <linux/pinctrl/pinctrl.h>
1762306a36Sopenharmony_ci#include "pinctrl-owl.h"
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci/* Pinctrl registers offset */
2062306a36Sopenharmony_ci#define MFCTL0			(0x0040)
2162306a36Sopenharmony_ci#define MFCTL1			(0x0044)
2262306a36Sopenharmony_ci#define MFCTL2			(0x0048)
2362306a36Sopenharmony_ci#define MFCTL3			(0x004C)
2462306a36Sopenharmony_ci#define PAD_PULLCTL0		(0x0060)
2562306a36Sopenharmony_ci#define PAD_PULLCTL1		(0x0064)
2662306a36Sopenharmony_ci#define PAD_PULLCTL2		(0x0068)
2762306a36Sopenharmony_ci#define PAD_ST0			(0x006C)
2862306a36Sopenharmony_ci#define PAD_ST1			(0x0070)
2962306a36Sopenharmony_ci#define PAD_CTL			(0x0074)
3062306a36Sopenharmony_ci#define PAD_DRV0		(0x0080)
3162306a36Sopenharmony_ci#define PAD_DRV1		(0x0084)
3262306a36Sopenharmony_ci#define PAD_DRV2		(0x0088)
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci/*
3562306a36Sopenharmony_ci * Most pins affected by the pinmux can also be GPIOs. Define these first.
3662306a36Sopenharmony_ci * These must match how the GPIO driver names/numbers its pins.
3762306a36Sopenharmony_ci */
3862306a36Sopenharmony_ci#define _GPIOA(offset)		(offset)
3962306a36Sopenharmony_ci#define _GPIOB(offset)		(32 + (offset))
4062306a36Sopenharmony_ci#define _GPIOC(offset)		(64 + (offset))
4162306a36Sopenharmony_ci#define _GPIOD(offset)		(96 + (offset))
4262306a36Sopenharmony_ci#define _GPIOE(offset)		(128 + (offset))
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci/* All non-GPIO pins follow */
4562306a36Sopenharmony_ci#define NUM_GPIOS		(_GPIOE(7) + 1)
4662306a36Sopenharmony_ci#define _PIN(offset)		(NUM_GPIOS + (offset))
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci/* Ethernet MAC */
4962306a36Sopenharmony_ci#define ETH_TXD0		_GPIOA(14)
5062306a36Sopenharmony_ci#define ETH_TXD1		_GPIOA(15)
5162306a36Sopenharmony_ci#define ETH_TXD2		_GPIOE(4)
5262306a36Sopenharmony_ci#define ETH_TXD3		_GPIOE(5)
5362306a36Sopenharmony_ci#define ETH_TXEN		_GPIOA(16)
5462306a36Sopenharmony_ci#define ETH_RXER		_GPIOA(17)
5562306a36Sopenharmony_ci#define ETH_CRS_DV		_GPIOA(18)
5662306a36Sopenharmony_ci#define ETH_RXD1		_GPIOA(19)
5762306a36Sopenharmony_ci#define ETH_RXD0		_GPIOA(20)
5862306a36Sopenharmony_ci#define ETH_RXD2		_GPIOE(6)
5962306a36Sopenharmony_ci#define ETH_RXD3		_GPIOE(7)
6062306a36Sopenharmony_ci#define ETH_REF_CLK		_GPIOA(21)
6162306a36Sopenharmony_ci#define ETH_MDC			_GPIOA(22)
6262306a36Sopenharmony_ci#define ETH_MDIO		_GPIOA(23)
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci/* SIRQ */
6562306a36Sopenharmony_ci#define SIRQ0			_GPIOA(24)
6662306a36Sopenharmony_ci#define SIRQ1			_GPIOA(25)
6762306a36Sopenharmony_ci#define SIRQ2			_GPIOA(26)
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci/* I2S */
7062306a36Sopenharmony_ci#define I2S_D0			_GPIOA(27)
7162306a36Sopenharmony_ci#define I2S_BCLK0		_GPIOA(28)
7262306a36Sopenharmony_ci#define I2S_LRCLK0		_GPIOA(29)
7362306a36Sopenharmony_ci#define I2S_MCLK0		_GPIOA(30)
7462306a36Sopenharmony_ci#define I2S_D1			_GPIOA(31)
7562306a36Sopenharmony_ci#define I2S_BCLK1		_GPIOB(0)
7662306a36Sopenharmony_ci#define I2S_LRCLK1		_GPIOB(1)
7762306a36Sopenharmony_ci#define I2S_MCLK1		_GPIOB(2)
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci/* PCM1 */
8062306a36Sopenharmony_ci#define PCM1_IN			_GPIOD(28)
8162306a36Sopenharmony_ci#define PCM1_CLK		_GPIOD(29)
8262306a36Sopenharmony_ci#define PCM1_SYNC		_GPIOD(30)
8362306a36Sopenharmony_ci#define PCM1_OUT		_GPIOD(31)
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci/* KEY */
8662306a36Sopenharmony_ci#define KS_IN0			_GPIOB(3)
8762306a36Sopenharmony_ci#define KS_IN1			_GPIOB(4)
8862306a36Sopenharmony_ci#define KS_IN2			_GPIOB(5)
8962306a36Sopenharmony_ci#define KS_IN3			_GPIOB(6)
9062306a36Sopenharmony_ci#define KS_OUT0			_GPIOB(7)
9162306a36Sopenharmony_ci#define KS_OUT1			_GPIOB(8)
9262306a36Sopenharmony_ci#define KS_OUT2			_GPIOB(9)
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci/* LVDS */
9562306a36Sopenharmony_ci#define LVDS_OEP		_GPIOB(10)
9662306a36Sopenharmony_ci#define LVDS_OEN		_GPIOB(11)
9762306a36Sopenharmony_ci#define LVDS_ODP		_GPIOB(12)
9862306a36Sopenharmony_ci#define LVDS_ODN		_GPIOB(13)
9962306a36Sopenharmony_ci#define LVDS_OCP		_GPIOB(14)
10062306a36Sopenharmony_ci#define LVDS_OCN		_GPIOB(15)
10162306a36Sopenharmony_ci#define LVDS_OBP		_GPIOB(16)
10262306a36Sopenharmony_ci#define LVDS_OBN		_GPIOB(17)
10362306a36Sopenharmony_ci#define LVDS_OAP		_GPIOB(18)
10462306a36Sopenharmony_ci#define LVDS_OAN		_GPIOB(19)
10562306a36Sopenharmony_ci#define LVDS_EEP		_GPIOB(20)
10662306a36Sopenharmony_ci#define LVDS_EEN		_GPIOB(21)
10762306a36Sopenharmony_ci#define LVDS_EDP		_GPIOB(22)
10862306a36Sopenharmony_ci#define LVDS_EDN		_GPIOB(23)
10962306a36Sopenharmony_ci#define LVDS_ECP		_GPIOB(24)
11062306a36Sopenharmony_ci#define LVDS_ECN		_GPIOB(25)
11162306a36Sopenharmony_ci#define LVDS_EBP		_GPIOB(26)
11262306a36Sopenharmony_ci#define LVDS_EBN		_GPIOB(27)
11362306a36Sopenharmony_ci#define LVDS_EAP		_GPIOB(28)
11462306a36Sopenharmony_ci#define LVDS_EAN		_GPIOB(29)
11562306a36Sopenharmony_ci#define LCD0_D18		_GPIOB(30)
11662306a36Sopenharmony_ci#define LCD0_D2			_GPIOB(31)
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci/* DSI */
11962306a36Sopenharmony_ci#define DSI_DP3			_GPIOC(0)
12062306a36Sopenharmony_ci#define DSI_DN3			_GPIOC(1)
12162306a36Sopenharmony_ci#define DSI_DP1			_GPIOC(2)
12262306a36Sopenharmony_ci#define DSI_DN1			_GPIOC(3)
12362306a36Sopenharmony_ci#define DSI_CP			_GPIOC(4)
12462306a36Sopenharmony_ci#define DSI_CN			_GPIOC(5)
12562306a36Sopenharmony_ci#define DSI_DP0			_GPIOC(6)
12662306a36Sopenharmony_ci#define DSI_DN0			_GPIOC(7)
12762306a36Sopenharmony_ci#define DSI_DP2			_GPIOC(8)
12862306a36Sopenharmony_ci#define DSI_DN2			_GPIOC(9)
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci/* SD */
13162306a36Sopenharmony_ci#define SD0_D0			_GPIOC(10)
13262306a36Sopenharmony_ci#define SD0_D1			_GPIOC(11)
13362306a36Sopenharmony_ci#define SD0_D2			_GPIOC(12)
13462306a36Sopenharmony_ci#define SD0_D3			_GPIOC(13)
13562306a36Sopenharmony_ci#define SD0_D4			_GPIOC(14)
13662306a36Sopenharmony_ci#define SD0_D5			_GPIOC(15)
13762306a36Sopenharmony_ci#define SD0_D6			_GPIOC(16)
13862306a36Sopenharmony_ci#define SD0_D7			_GPIOC(17)
13962306a36Sopenharmony_ci#define SD0_CMD			_GPIOC(18)
14062306a36Sopenharmony_ci#define SD0_CLK			_GPIOC(19)
14162306a36Sopenharmony_ci#define SD1_CMD			_GPIOC(20)
14262306a36Sopenharmony_ci#define SD1_CLK			_GPIOC(21)
14362306a36Sopenharmony_ci#define SD1_D0			SD0_D4
14462306a36Sopenharmony_ci#define SD1_D1			SD0_D5
14562306a36Sopenharmony_ci#define SD1_D2			SD0_D6
14662306a36Sopenharmony_ci#define SD1_D3			SD0_D7
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci/* SPI */
14962306a36Sopenharmony_ci#define SPI0_SS			_GPIOC(23)
15062306a36Sopenharmony_ci#define SPI0_MISO		_GPIOC(24)
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci/* UART for console */
15362306a36Sopenharmony_ci#define UART0_RX		_GPIOC(26)
15462306a36Sopenharmony_ci#define UART0_TX		_GPIOC(27)
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci/* UART for Bluetooth */
15762306a36Sopenharmony_ci#define UART2_RX		_GPIOD(18)
15862306a36Sopenharmony_ci#define UART2_TX		_GPIOD(19)
15962306a36Sopenharmony_ci#define UART2_RTSB		_GPIOD(20)
16062306a36Sopenharmony_ci#define UART2_CTSB		_GPIOD(21)
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci/* UART for 3G */
16362306a36Sopenharmony_ci#define UART3_RX		_GPIOD(22)
16462306a36Sopenharmony_ci#define UART3_TX		_GPIOD(23)
16562306a36Sopenharmony_ci#define UART3_RTSB		_GPIOD(24)
16662306a36Sopenharmony_ci#define UART3_CTSB		_GPIOD(25)
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci/* I2C */
16962306a36Sopenharmony_ci#define I2C0_SCLK		_GPIOC(28)
17062306a36Sopenharmony_ci#define I2C0_SDATA		_GPIOC(29)
17162306a36Sopenharmony_ci#define I2C1_SCLK		_GPIOE(0)
17262306a36Sopenharmony_ci#define I2C1_SDATA		_GPIOE(1)
17362306a36Sopenharmony_ci#define I2C2_SCLK		_GPIOE(2)
17462306a36Sopenharmony_ci#define I2C2_SDATA		_GPIOE(3)
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci/* CSI*/
17762306a36Sopenharmony_ci#define CSI_DN0			_PIN(0)
17862306a36Sopenharmony_ci#define CSI_DP0			_PIN(1)
17962306a36Sopenharmony_ci#define CSI_DN1			_PIN(2)
18062306a36Sopenharmony_ci#define CSI_DP1			_PIN(3)
18162306a36Sopenharmony_ci#define CSI_CN			_PIN(4)
18262306a36Sopenharmony_ci#define CSI_CP			_PIN(5)
18362306a36Sopenharmony_ci#define CSI_DN2			_PIN(6)
18462306a36Sopenharmony_ci#define CSI_DP2			_PIN(7)
18562306a36Sopenharmony_ci#define CSI_DN3			_PIN(8)
18662306a36Sopenharmony_ci#define CSI_DP3			_PIN(9)
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci/* Sensor */
18962306a36Sopenharmony_ci#define SENSOR0_PCLK		_GPIOC(31)
19062306a36Sopenharmony_ci#define SENSOR0_CKOUT		_GPIOD(10)
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci/* NAND (1.8v / 3.3v) */
19362306a36Sopenharmony_ci#define DNAND_D0		_PIN(10)
19462306a36Sopenharmony_ci#define DNAND_D1		_PIN(11)
19562306a36Sopenharmony_ci#define DNAND_D2		_PIN(12)
19662306a36Sopenharmony_ci#define DNAND_D3		_PIN(13)
19762306a36Sopenharmony_ci#define DNAND_D4		_PIN(14)
19862306a36Sopenharmony_ci#define DNAND_D5		_PIN(15)
19962306a36Sopenharmony_ci#define DNAND_D6		_PIN(16)
20062306a36Sopenharmony_ci#define DNAND_D7		_PIN(17)
20162306a36Sopenharmony_ci#define DNAND_WRB		_PIN(18)
20262306a36Sopenharmony_ci#define DNAND_RDB		_PIN(19)
20362306a36Sopenharmony_ci#define DNAND_RDBN		_PIN(20)
20462306a36Sopenharmony_ci#define DNAND_DQS		_GPIOA(12)
20562306a36Sopenharmony_ci#define DNAND_DQSN		_GPIOA(13)
20662306a36Sopenharmony_ci#define DNAND_RB0		_PIN(21)
20762306a36Sopenharmony_ci#define DNAND_ALE		_GPIOD(12)
20862306a36Sopenharmony_ci#define DNAND_CLE		_GPIOD(13)
20962306a36Sopenharmony_ci#define DNAND_CEB0		_GPIOD(14)
21062306a36Sopenharmony_ci#define DNAND_CEB1		_GPIOD(15)
21162306a36Sopenharmony_ci#define DNAND_CEB2		_GPIOD(16)
21262306a36Sopenharmony_ci#define DNAND_CEB3		_GPIOD(17)
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci/* System */
21562306a36Sopenharmony_ci#define PORB			_PIN(22)
21662306a36Sopenharmony_ci#define CLKO_25M		_PIN(23)
21762306a36Sopenharmony_ci#define BSEL			_PIN(24)
21862306a36Sopenharmony_ci#define PKG0			_PIN(25)
21962306a36Sopenharmony_ci#define PKG1			_PIN(26)
22062306a36Sopenharmony_ci#define PKG2			_PIN(27)
22162306a36Sopenharmony_ci#define PKG3			_PIN(28)
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci#define _FIRSTPAD		_GPIOA(0)
22462306a36Sopenharmony_ci#define _LASTPAD		PKG3
22562306a36Sopenharmony_ci#define NUM_PADS		(_PIN(28) + 1)
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci/* Pad names for the pinmux subsystem */
22862306a36Sopenharmony_cistatic const struct pinctrl_pin_desc s700_pads[] = {
22962306a36Sopenharmony_ci	PINCTRL_PIN(ETH_TXD0, "eth_txd0"),
23062306a36Sopenharmony_ci	PINCTRL_PIN(ETH_TXD1, "eth_txd1"),
23162306a36Sopenharmony_ci	PINCTRL_PIN(ETH_TXD2, "eth_txd2"),
23262306a36Sopenharmony_ci	PINCTRL_PIN(ETH_TXD3, "eth_txd3"),
23362306a36Sopenharmony_ci	PINCTRL_PIN(ETH_TXEN, "eth_txen"),
23462306a36Sopenharmony_ci	PINCTRL_PIN(ETH_RXER, "eth_rxer"),
23562306a36Sopenharmony_ci	PINCTRL_PIN(ETH_CRS_DV, "eth_crs_dv"),
23662306a36Sopenharmony_ci	PINCTRL_PIN(ETH_RXD1, "eth_rxd1"),
23762306a36Sopenharmony_ci	PINCTRL_PIN(ETH_RXD0, "eth_rxd0"),
23862306a36Sopenharmony_ci	PINCTRL_PIN(ETH_RXD2, "eth_rxd2"),
23962306a36Sopenharmony_ci	PINCTRL_PIN(ETH_RXD3, "eth_rxd3"),
24062306a36Sopenharmony_ci	PINCTRL_PIN(ETH_REF_CLK, "eth_ref_clk"),
24162306a36Sopenharmony_ci	PINCTRL_PIN(ETH_MDC, "eth_mdc"),
24262306a36Sopenharmony_ci	PINCTRL_PIN(ETH_MDIO, "eth_mdio"),
24362306a36Sopenharmony_ci	PINCTRL_PIN(SIRQ0, "sirq0"),
24462306a36Sopenharmony_ci	PINCTRL_PIN(SIRQ1, "sirq1"),
24562306a36Sopenharmony_ci	PINCTRL_PIN(SIRQ2, "sirq2"),
24662306a36Sopenharmony_ci	PINCTRL_PIN(I2S_D0, "i2s_d0"),
24762306a36Sopenharmony_ci	PINCTRL_PIN(I2S_BCLK0, "i2s_bclk0"),
24862306a36Sopenharmony_ci	PINCTRL_PIN(I2S_LRCLK0, "i2s_lrclk0"),
24962306a36Sopenharmony_ci	PINCTRL_PIN(I2S_MCLK0, "i2s_mclk0"),
25062306a36Sopenharmony_ci	PINCTRL_PIN(I2S_D1, "i2s_d1"),
25162306a36Sopenharmony_ci	PINCTRL_PIN(I2S_BCLK1, "i2s_bclk1"),
25262306a36Sopenharmony_ci	PINCTRL_PIN(I2S_LRCLK1, "i2s_lrclk1"),
25362306a36Sopenharmony_ci	PINCTRL_PIN(I2S_MCLK1, "i2s_mclk1"),
25462306a36Sopenharmony_ci	PINCTRL_PIN(PCM1_IN, "pcm1_in"),
25562306a36Sopenharmony_ci	PINCTRL_PIN(PCM1_CLK, "pcm1_clk"),
25662306a36Sopenharmony_ci	PINCTRL_PIN(PCM1_SYNC, "pcm1_sync"),
25762306a36Sopenharmony_ci	PINCTRL_PIN(PCM1_OUT, "pcm1_out"),
25862306a36Sopenharmony_ci	PINCTRL_PIN(KS_IN0, "ks_in0"),
25962306a36Sopenharmony_ci	PINCTRL_PIN(KS_IN1, "ks_in1"),
26062306a36Sopenharmony_ci	PINCTRL_PIN(KS_IN2, "ks_in2"),
26162306a36Sopenharmony_ci	PINCTRL_PIN(KS_IN3, "ks_in3"),
26262306a36Sopenharmony_ci	PINCTRL_PIN(KS_OUT0, "ks_out0"),
26362306a36Sopenharmony_ci	PINCTRL_PIN(KS_OUT1, "ks_out1"),
26462306a36Sopenharmony_ci	PINCTRL_PIN(KS_OUT2, "ks_out2"),
26562306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OEP, "lvds_oep"),
26662306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OEN, "lvds_oen"),
26762306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_ODP, "lvds_odp"),
26862306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_ODN, "lvds_odn"),
26962306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OCP, "lvds_ocp"),
27062306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OCN, "lvds_ocn"),
27162306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OBP, "lvds_obp"),
27262306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OBN, "lvds_obn"),
27362306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OAP, "lvds_oap"),
27462306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_OAN, "lvds_oan"),
27562306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EEP, "lvds_eep"),
27662306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EEN, "lvds_een"),
27762306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EDP, "lvds_edp"),
27862306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EDN, "lvds_edn"),
27962306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_ECP, "lvds_ecp"),
28062306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_ECN, "lvds_ecn"),
28162306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EBP, "lvds_ebp"),
28262306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EBN, "lvds_ebn"),
28362306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EAP, "lvds_eap"),
28462306a36Sopenharmony_ci	PINCTRL_PIN(LVDS_EAN, "lvds_ean"),
28562306a36Sopenharmony_ci	PINCTRL_PIN(LCD0_D18, "lcd0_d18"),
28662306a36Sopenharmony_ci	PINCTRL_PIN(LCD0_D2, "lcd0_d2"),
28762306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DP3, "dsi_dp3"),
28862306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DN3, "dsi_dn3"),
28962306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DP1, "dsi_dp1"),
29062306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DN1, "dsi_dn1"),
29162306a36Sopenharmony_ci	PINCTRL_PIN(DSI_CP, "dsi_cp"),
29262306a36Sopenharmony_ci	PINCTRL_PIN(DSI_CN, "dsi_cn"),
29362306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DP0, "dsi_dp0"),
29462306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DN0, "dsi_dn0"),
29562306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DP2, "dsi_dp2"),
29662306a36Sopenharmony_ci	PINCTRL_PIN(DSI_DN2, "dsi_dn2"),
29762306a36Sopenharmony_ci	PINCTRL_PIN(SD0_D0, "sd0_d0"),
29862306a36Sopenharmony_ci	PINCTRL_PIN(SD0_D1, "sd0_d1"),
29962306a36Sopenharmony_ci	PINCTRL_PIN(SD0_D2, "sd0_d2"),
30062306a36Sopenharmony_ci	PINCTRL_PIN(SD0_D3, "sd0_d3"),
30162306a36Sopenharmony_ci	PINCTRL_PIN(SD1_D0, "sd1_d0"),
30262306a36Sopenharmony_ci	PINCTRL_PIN(SD1_D1, "sd1_d1"),
30362306a36Sopenharmony_ci	PINCTRL_PIN(SD1_D2, "sd1_d2"),
30462306a36Sopenharmony_ci	PINCTRL_PIN(SD1_D3, "sd1_d3"),
30562306a36Sopenharmony_ci	PINCTRL_PIN(SD0_CMD, "sd0_cmd"),
30662306a36Sopenharmony_ci	PINCTRL_PIN(SD0_CLK, "sd0_clk"),
30762306a36Sopenharmony_ci	PINCTRL_PIN(SD1_CMD, "sd1_cmd"),
30862306a36Sopenharmony_ci	PINCTRL_PIN(SD1_CLK, "sd1_clk"),
30962306a36Sopenharmony_ci	PINCTRL_PIN(SPI0_SS, "spi0_ss"),
31062306a36Sopenharmony_ci	PINCTRL_PIN(SPI0_MISO, "spi0_miso"),
31162306a36Sopenharmony_ci	PINCTRL_PIN(UART0_RX, "uart0_rx"),
31262306a36Sopenharmony_ci	PINCTRL_PIN(UART0_TX, "uart0_tx"),
31362306a36Sopenharmony_ci	PINCTRL_PIN(UART2_RX, "uart2_rx"),
31462306a36Sopenharmony_ci	PINCTRL_PIN(UART2_TX, "uart2_tx"),
31562306a36Sopenharmony_ci	PINCTRL_PIN(UART2_RTSB, "uart2_rtsb"),
31662306a36Sopenharmony_ci	PINCTRL_PIN(UART2_CTSB, "uart2_ctsb"),
31762306a36Sopenharmony_ci	PINCTRL_PIN(UART3_RX, "uart3_rx"),
31862306a36Sopenharmony_ci	PINCTRL_PIN(UART3_TX, "uart3_tx"),
31962306a36Sopenharmony_ci	PINCTRL_PIN(UART3_RTSB, "uart3_rtsb"),
32062306a36Sopenharmony_ci	PINCTRL_PIN(UART3_CTSB, "uart3_ctsb"),
32162306a36Sopenharmony_ci	PINCTRL_PIN(I2C0_SCLK, "i2c0_sclk"),
32262306a36Sopenharmony_ci	PINCTRL_PIN(I2C0_SDATA, "i2c0_sdata"),
32362306a36Sopenharmony_ci	PINCTRL_PIN(I2C1_SCLK, "i2c1_sclk"),
32462306a36Sopenharmony_ci	PINCTRL_PIN(I2C1_SDATA, "i2c1_sdata"),
32562306a36Sopenharmony_ci	PINCTRL_PIN(I2C2_SCLK, "i2c2_sclk"),
32662306a36Sopenharmony_ci	PINCTRL_PIN(I2C2_SDATA, "i2c2_sdata"),
32762306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DN0, "csi_dn0"),
32862306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DP0, "csi_dp0"),
32962306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DN1, "csi_dn1"),
33062306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DP1, "csi_dp1"),
33162306a36Sopenharmony_ci	PINCTRL_PIN(CSI_CN, "csi_cn"),
33262306a36Sopenharmony_ci	PINCTRL_PIN(CSI_CP, "csi_cp"),
33362306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DN2, "csi_dn2"),
33462306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DP2, "csi_dp2"),
33562306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DN3, "csi_dn3"),
33662306a36Sopenharmony_ci	PINCTRL_PIN(CSI_DP3, "csi_dp3"),
33762306a36Sopenharmony_ci	PINCTRL_PIN(SENSOR0_PCLK, "sensor0_pclk"),
33862306a36Sopenharmony_ci	PINCTRL_PIN(SENSOR0_CKOUT, "sensor0_ckout"),
33962306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D0, "dnand_d0"),
34062306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D1, "dnand_d1"),
34162306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D2, "dnand_d2"),
34262306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D3, "dnand_d3"),
34362306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D4, "dnand_d4"),
34462306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D5, "dnand_d5"),
34562306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D6, "dnand_d6"),
34662306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_D7, "dnand_d7"),
34762306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_WRB, "dnand_wrb"),
34862306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_RDB, "dnand_rdb"),
34962306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_RDBN, "dnand_rdbn"),
35062306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_DQS, "dnand_dqs"),
35162306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_DQSN, "dnand_dqsn"),
35262306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_RB0, "dnand_rb0"),
35362306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_ALE, "dnand_ale"),
35462306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_CLE, "dnand_cle"),
35562306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_CEB0, "dnand_ceb0"),
35662306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_CEB1, "dnand_ceb1"),
35762306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_CEB2, "dnand_ceb2"),
35862306a36Sopenharmony_ci	PINCTRL_PIN(DNAND_CEB3, "dnand_ceb3"),
35962306a36Sopenharmony_ci	PINCTRL_PIN(PORB, "porb"),
36062306a36Sopenharmony_ci	PINCTRL_PIN(CLKO_25M, "clko_25m"),
36162306a36Sopenharmony_ci	PINCTRL_PIN(BSEL, "bsel"),
36262306a36Sopenharmony_ci	PINCTRL_PIN(PKG0, "pkg0"),
36362306a36Sopenharmony_ci	PINCTRL_PIN(PKG1, "pkg1"),
36462306a36Sopenharmony_ci	PINCTRL_PIN(PKG2, "pkg2"),
36562306a36Sopenharmony_ci	PINCTRL_PIN(PKG3, "pkg3"),
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_cienum s700_pinmux_functions {
36962306a36Sopenharmony_ci	S700_MUX_NOR,
37062306a36Sopenharmony_ci	S700_MUX_ETH_RGMII,
37162306a36Sopenharmony_ci	S700_MUX_ETH_SGMII,
37262306a36Sopenharmony_ci	S700_MUX_SPI0,
37362306a36Sopenharmony_ci	S700_MUX_SPI1,
37462306a36Sopenharmony_ci	S700_MUX_SPI2,
37562306a36Sopenharmony_ci	S700_MUX_SPI3,
37662306a36Sopenharmony_ci	S700_MUX_SENS0,
37762306a36Sopenharmony_ci	S700_MUX_SENS1,
37862306a36Sopenharmony_ci	S700_MUX_UART0,
37962306a36Sopenharmony_ci	S700_MUX_UART1,
38062306a36Sopenharmony_ci	S700_MUX_UART2,
38162306a36Sopenharmony_ci	S700_MUX_UART3,
38262306a36Sopenharmony_ci	S700_MUX_UART4,
38362306a36Sopenharmony_ci	S700_MUX_UART5,
38462306a36Sopenharmony_ci	S700_MUX_UART6,
38562306a36Sopenharmony_ci	S700_MUX_I2S0,
38662306a36Sopenharmony_ci	S700_MUX_I2S1,
38762306a36Sopenharmony_ci	S700_MUX_PCM1,
38862306a36Sopenharmony_ci	S700_MUX_PCM0,
38962306a36Sopenharmony_ci	S700_MUX_KS,
39062306a36Sopenharmony_ci	S700_MUX_JTAG,
39162306a36Sopenharmony_ci	S700_MUX_PWM0,
39262306a36Sopenharmony_ci	S700_MUX_PWM1,
39362306a36Sopenharmony_ci	S700_MUX_PWM2,
39462306a36Sopenharmony_ci	S700_MUX_PWM3,
39562306a36Sopenharmony_ci	S700_MUX_PWM4,
39662306a36Sopenharmony_ci	S700_MUX_PWM5,
39762306a36Sopenharmony_ci	S700_MUX_P0,
39862306a36Sopenharmony_ci	S700_MUX_SD0,
39962306a36Sopenharmony_ci	S700_MUX_SD1,
40062306a36Sopenharmony_ci	S700_MUX_SD2,
40162306a36Sopenharmony_ci	S700_MUX_I2C0,
40262306a36Sopenharmony_ci	S700_MUX_I2C1,
40362306a36Sopenharmony_ci	S700_MUX_I2C2,
40462306a36Sopenharmony_ci	S700_MUX_I2C3,
40562306a36Sopenharmony_ci	S700_MUX_DSI,
40662306a36Sopenharmony_ci	S700_MUX_LVDS,
40762306a36Sopenharmony_ci	S700_MUX_USB30,
40862306a36Sopenharmony_ci	S700_MUX_CLKO_25M,
40962306a36Sopenharmony_ci	S700_MUX_MIPI_CSI,
41062306a36Sopenharmony_ci	S700_MUX_NAND,
41162306a36Sopenharmony_ci	S700_MUX_SPDIF,
41262306a36Sopenharmony_ci	S700_MUX_SIRQ0,
41362306a36Sopenharmony_ci	S700_MUX_SIRQ1,
41462306a36Sopenharmony_ci	S700_MUX_SIRQ2,
41562306a36Sopenharmony_ci	S700_MUX_BT,
41662306a36Sopenharmony_ci	S700_MUX_LCD0,
41762306a36Sopenharmony_ci	S700_MUX_RESERVED,
41862306a36Sopenharmony_ci};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ci/* mfp0_31_30 reserved */
42162306a36Sopenharmony_ci
42262306a36Sopenharmony_ci/* rgmii_txd23 */
42362306a36Sopenharmony_cistatic unsigned int  rgmii_txd23_mfp_pads[]		= { ETH_TXD2, ETH_TXD3};
42462306a36Sopenharmony_cistatic unsigned int  rgmii_txd23_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
42562306a36Sopenharmony_ci							    S700_MUX_I2C1,
42662306a36Sopenharmony_ci							    S700_MUX_UART3 };
42762306a36Sopenharmony_ci/* rgmii_rxd2 */
42862306a36Sopenharmony_cistatic unsigned int  rgmii_rxd2_mfp_pads[]		= { ETH_RXD2 };
42962306a36Sopenharmony_cistatic unsigned int  rgmii_rxd2_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
43062306a36Sopenharmony_ci							    S700_MUX_PWM0,
43162306a36Sopenharmony_ci							    S700_MUX_UART3 };
43262306a36Sopenharmony_ci/* rgmii_rxd3 */
43362306a36Sopenharmony_cistatic unsigned int  rgmii_rxd3_mfp_pads[]		= { ETH_RXD3};
43462306a36Sopenharmony_cistatic unsigned int  rgmii_rxd3_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
43562306a36Sopenharmony_ci							    S700_MUX_PWM2,
43662306a36Sopenharmony_ci							    S700_MUX_UART3 };
43762306a36Sopenharmony_ci/* lcd0_d18 */
43862306a36Sopenharmony_cistatic unsigned int  lcd0_d18_mfp_pads[]		= { LCD0_D18 };
43962306a36Sopenharmony_cistatic unsigned int  lcd0_d18_mfp_funcs[]		= { S700_MUX_NOR,
44062306a36Sopenharmony_ci							    S700_MUX_SENS1,
44162306a36Sopenharmony_ci							    S700_MUX_PWM2,
44262306a36Sopenharmony_ci							    S700_MUX_PWM4,
44362306a36Sopenharmony_ci							    S700_MUX_LCD0 };
44462306a36Sopenharmony_ci/* rgmii_txd01 */
44562306a36Sopenharmony_cistatic unsigned int  rgmii_txd01_mfp_pads[]		= { ETH_CRS_DV };
44662306a36Sopenharmony_cistatic unsigned int  rgmii_txd01_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
44762306a36Sopenharmony_ci							    S700_MUX_RESERVED,
44862306a36Sopenharmony_ci							    S700_MUX_SPI2,
44962306a36Sopenharmony_ci							    S700_MUX_UART4,
45062306a36Sopenharmony_ci							    S700_MUX_PWM4 };
45162306a36Sopenharmony_ci/* rgmii_txd0 */
45262306a36Sopenharmony_cistatic unsigned int  rgmii_txd0_mfp_pads[]		= { ETH_TXD0 };
45362306a36Sopenharmony_cistatic unsigned int  rgmii_txd0_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
45462306a36Sopenharmony_ci							    S700_MUX_ETH_SGMII,
45562306a36Sopenharmony_ci							    S700_MUX_SPI2,
45662306a36Sopenharmony_ci							    S700_MUX_UART6,
45762306a36Sopenharmony_ci							    S700_MUX_PWM4 };
45862306a36Sopenharmony_ci/* rgmii_txd1 */
45962306a36Sopenharmony_cistatic unsigned int  rgmii_txd1_mfp_pads[]		= { ETH_TXD1 };
46062306a36Sopenharmony_cistatic unsigned int  rgmii_txd1_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
46162306a36Sopenharmony_ci							    S700_MUX_ETH_SGMII,
46262306a36Sopenharmony_ci							    S700_MUX_SPI2,
46362306a36Sopenharmony_ci							    S700_MUX_UART6,
46462306a36Sopenharmony_ci							    S700_MUX_PWM5 };
46562306a36Sopenharmony_ci/* rgmii_txen */
46662306a36Sopenharmony_cistatic unsigned int  rgmii_txen_mfp_pads[]		= { ETH_TXEN };
46762306a36Sopenharmony_cistatic unsigned int  rgmii_txen_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
46862306a36Sopenharmony_ci							    S700_MUX_UART2,
46962306a36Sopenharmony_ci							    S700_MUX_SPI3,
47062306a36Sopenharmony_ci							    S700_MUX_PWM0 };
47162306a36Sopenharmony_ci/* rgmii_rxen */
47262306a36Sopenharmony_cistatic unsigned int  rgmii_rxen_mfp_pads[]		= { ETH_RXER };
47362306a36Sopenharmony_cistatic unsigned int  rgmii_rxen_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
47462306a36Sopenharmony_ci							    S700_MUX_UART2,
47562306a36Sopenharmony_ci							    S700_MUX_SPI3,
47662306a36Sopenharmony_ci							    S700_MUX_PWM1 };
47762306a36Sopenharmony_ci/* mfp0_12_11 reserved */
47862306a36Sopenharmony_ci/* rgmii_rxd1*/
47962306a36Sopenharmony_cistatic unsigned int  rgmii_rxd1_mfp_pads[]		= { ETH_RXD1 };
48062306a36Sopenharmony_cistatic unsigned int  rgmii_rxd1_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
48162306a36Sopenharmony_ci							    S700_MUX_UART2,
48262306a36Sopenharmony_ci							    S700_MUX_SPI3,
48362306a36Sopenharmony_ci							    S700_MUX_PWM2,
48462306a36Sopenharmony_ci							    S700_MUX_UART5,
48562306a36Sopenharmony_ci							    S700_MUX_ETH_SGMII };
48662306a36Sopenharmony_ci/* rgmii_rxd0 */
48762306a36Sopenharmony_cistatic unsigned int  rgmii_rxd0_mfp_pads[]		= { ETH_RXD0 };
48862306a36Sopenharmony_cistatic unsigned int  rgmii_rxd0_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
48962306a36Sopenharmony_ci							    S700_MUX_UART2,
49062306a36Sopenharmony_ci							    S700_MUX_SPI3,
49162306a36Sopenharmony_ci							    S700_MUX_PWM3,
49262306a36Sopenharmony_ci							    S700_MUX_UART5,
49362306a36Sopenharmony_ci							    S700_MUX_ETH_SGMII };
49462306a36Sopenharmony_ci/* rgmii_ref_clk */
49562306a36Sopenharmony_cistatic unsigned int  rgmii_ref_clk_mfp_pads[]		= { ETH_REF_CLK };
49662306a36Sopenharmony_cistatic unsigned int  rgmii_ref_clk_mfp_funcs[]		= { S700_MUX_ETH_RGMII,
49762306a36Sopenharmony_ci							    S700_MUX_UART4,
49862306a36Sopenharmony_ci							    S700_MUX_SPI2,
49962306a36Sopenharmony_ci							    S700_MUX_RESERVED,
50062306a36Sopenharmony_ci							    S700_MUX_ETH_SGMII };
50162306a36Sopenharmony_ci/* i2s_d0 */
50262306a36Sopenharmony_cistatic unsigned int  i2s_d0_mfp_pads[]			= { I2S_D0 };
50362306a36Sopenharmony_cistatic unsigned int  i2s_d0_mfp_funcs[]			= { S700_MUX_I2S0,
50462306a36Sopenharmony_ci							    S700_MUX_NOR };
50562306a36Sopenharmony_ci/* i2s_pcm1 */
50662306a36Sopenharmony_cistatic unsigned int  i2s_pcm1_mfp_pads[]		= { I2S_LRCLK0,
50762306a36Sopenharmony_ci							    I2S_MCLK0 };
50862306a36Sopenharmony_cistatic unsigned int  i2s_pcm1_mfp_funcs[]		= { S700_MUX_I2S0,
50962306a36Sopenharmony_ci							    S700_MUX_NOR,
51062306a36Sopenharmony_ci							    S700_MUX_PCM1,
51162306a36Sopenharmony_ci							    S700_MUX_BT };
51262306a36Sopenharmony_ci/* i2s0_pcm0 */
51362306a36Sopenharmony_cistatic unsigned int  i2s0_pcm0_mfp_pads[]		= { I2S_BCLK0 };
51462306a36Sopenharmony_cistatic unsigned int  i2s0_pcm0_mfp_funcs[]		= { S700_MUX_I2S0,
51562306a36Sopenharmony_ci							    S700_MUX_NOR,
51662306a36Sopenharmony_ci							    S700_MUX_PCM0,
51762306a36Sopenharmony_ci							    S700_MUX_BT };
51862306a36Sopenharmony_ci/* i2s1_pcm0 */
51962306a36Sopenharmony_cistatic unsigned int  i2s1_pcm0_mfp_pads[]		= { I2S_BCLK1,
52062306a36Sopenharmony_ci							    I2S_LRCLK1,
52162306a36Sopenharmony_ci							    I2S_MCLK1 };
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_cistatic unsigned int  i2s1_pcm0_mfp_funcs[]		= { S700_MUX_I2S1,
52462306a36Sopenharmony_ci							    S700_MUX_NOR,
52562306a36Sopenharmony_ci							    S700_MUX_PCM0,
52662306a36Sopenharmony_ci							    S700_MUX_BT };
52762306a36Sopenharmony_ci/* i2s_d1 */
52862306a36Sopenharmony_cistatic unsigned int  i2s_d1_mfp_pads[]			= { I2S_D1 };
52962306a36Sopenharmony_cistatic unsigned int  i2s_d1_mfp_funcs[]			= { S700_MUX_I2S1,
53062306a36Sopenharmony_ci							    S700_MUX_NOR };
53162306a36Sopenharmony_ci/* ks_in2 */
53262306a36Sopenharmony_cistatic unsigned int  ks_in2_mfp_pads[]			= { KS_IN2 };
53362306a36Sopenharmony_cistatic unsigned int  ks_in2_mfp_funcs[]			= { S700_MUX_KS,
53462306a36Sopenharmony_ci							    S700_MUX_JTAG,
53562306a36Sopenharmony_ci							    S700_MUX_NOR,
53662306a36Sopenharmony_ci							    S700_MUX_BT,
53762306a36Sopenharmony_ci							    S700_MUX_PWM0,
53862306a36Sopenharmony_ci							    S700_MUX_SENS1,
53962306a36Sopenharmony_ci							    S700_MUX_PWM0,
54062306a36Sopenharmony_ci							    S700_MUX_P0 };
54162306a36Sopenharmony_ci/* ks_in1 */
54262306a36Sopenharmony_cistatic unsigned int  ks_in1_mfp_pads[]			= { KS_IN1 };
54362306a36Sopenharmony_cistatic unsigned int  ks_in1_mfp_funcs[]			= { S700_MUX_KS,
54462306a36Sopenharmony_ci							    S700_MUX_JTAG,
54562306a36Sopenharmony_ci							    S700_MUX_NOR,
54662306a36Sopenharmony_ci							    S700_MUX_BT,
54762306a36Sopenharmony_ci							    S700_MUX_PWM5,
54862306a36Sopenharmony_ci							    S700_MUX_SENS1,
54962306a36Sopenharmony_ci							    S700_MUX_PWM1,
55062306a36Sopenharmony_ci							    S700_MUX_USB30 };
55162306a36Sopenharmony_ci/* ks_in0 */
55262306a36Sopenharmony_cistatic unsigned int  ks_in0_mfp_pads[]			= { KS_IN0 };
55362306a36Sopenharmony_cistatic unsigned int  ks_in0_mfp_funcs[]			= { S700_MUX_KS,
55462306a36Sopenharmony_ci							    S700_MUX_JTAG,
55562306a36Sopenharmony_ci							    S700_MUX_NOR,
55662306a36Sopenharmony_ci							    S700_MUX_BT,
55762306a36Sopenharmony_ci							    S700_MUX_PWM4,
55862306a36Sopenharmony_ci							    S700_MUX_SENS1,
55962306a36Sopenharmony_ci							    S700_MUX_PWM4,
56062306a36Sopenharmony_ci							    S700_MUX_P0 };
56162306a36Sopenharmony_ci/* ks_in3 */
56262306a36Sopenharmony_cistatic unsigned int  ks_in3_mfp_pads[]			= { KS_IN3 };
56362306a36Sopenharmony_cistatic unsigned int  ks_in3_mfp_funcs[]			= { S700_MUX_KS,
56462306a36Sopenharmony_ci							    S700_MUX_JTAG,
56562306a36Sopenharmony_ci							    S700_MUX_NOR,
56662306a36Sopenharmony_ci							    S700_MUX_PWM1,
56762306a36Sopenharmony_ci							    S700_MUX_BT,
56862306a36Sopenharmony_ci							    S700_MUX_SENS1 };
56962306a36Sopenharmony_ci/* ks_out0 */
57062306a36Sopenharmony_cistatic unsigned int  ks_out0_mfp_pads[]			= { KS_OUT0 };
57162306a36Sopenharmony_cistatic unsigned int  ks_out0_mfp_funcs[]		= { S700_MUX_KS,
57262306a36Sopenharmony_ci							    S700_MUX_UART5,
57362306a36Sopenharmony_ci							    S700_MUX_NOR,
57462306a36Sopenharmony_ci							    S700_MUX_PWM2,
57562306a36Sopenharmony_ci							    S700_MUX_BT,
57662306a36Sopenharmony_ci							    S700_MUX_SENS1,
57762306a36Sopenharmony_ci							    S700_MUX_SD0,
57862306a36Sopenharmony_ci							    S700_MUX_UART4 };
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_ci/* ks_out1 */
58162306a36Sopenharmony_cistatic unsigned int  ks_out1_mfp_pads[]			= { KS_OUT1 };
58262306a36Sopenharmony_cistatic unsigned int  ks_out1_mfp_funcs[]		= { S700_MUX_KS,
58362306a36Sopenharmony_ci							    S700_MUX_JTAG,
58462306a36Sopenharmony_ci							    S700_MUX_NOR,
58562306a36Sopenharmony_ci							    S700_MUX_PWM3,
58662306a36Sopenharmony_ci							    S700_MUX_BT,
58762306a36Sopenharmony_ci							    S700_MUX_SENS1,
58862306a36Sopenharmony_ci							    S700_MUX_SD0,
58962306a36Sopenharmony_ci							    S700_MUX_UART4 };
59062306a36Sopenharmony_ci/* ks_out2 */
59162306a36Sopenharmony_cistatic unsigned int  ks_out2_mfp_pads[]			= { KS_OUT2 };
59262306a36Sopenharmony_cistatic unsigned int  ks_out2_mfp_funcs[]		= { S700_MUX_SD0,
59362306a36Sopenharmony_ci							    S700_MUX_KS,
59462306a36Sopenharmony_ci							    S700_MUX_NOR,
59562306a36Sopenharmony_ci							    S700_MUX_PWM2,
59662306a36Sopenharmony_ci							    S700_MUX_UART5,
59762306a36Sopenharmony_ci							    S700_MUX_SENS1,
59862306a36Sopenharmony_ci							    S700_MUX_BT };
59962306a36Sopenharmony_ci/* lvds_o_pn */
60062306a36Sopenharmony_cistatic unsigned int  lvds_o_pn_mfp_pads[]		= { LVDS_OEP,
60162306a36Sopenharmony_ci							    LVDS_OEN,
60262306a36Sopenharmony_ci							    LVDS_ODP,
60362306a36Sopenharmony_ci							    LVDS_ODN,
60462306a36Sopenharmony_ci							    LVDS_OCP,
60562306a36Sopenharmony_ci							    LVDS_OCN,
60662306a36Sopenharmony_ci							    LVDS_OBP,
60762306a36Sopenharmony_ci							    LVDS_OBN,
60862306a36Sopenharmony_ci							    LVDS_OAP,
60962306a36Sopenharmony_ci							    LVDS_OAN };
61062306a36Sopenharmony_ci
61162306a36Sopenharmony_cistatic unsigned int  lvds_o_pn_mfp_funcs[]		= { S700_MUX_LVDS,
61262306a36Sopenharmony_ci							    S700_MUX_BT,
61362306a36Sopenharmony_ci							    S700_MUX_LCD0 };
61462306a36Sopenharmony_ci
61562306a36Sopenharmony_ci/* dsi_dn0 */
61662306a36Sopenharmony_cistatic unsigned int  dsi_dn0_mfp_pads[]			= { DSI_DN0 };
61762306a36Sopenharmony_cistatic unsigned int  dsi_dn0_mfp_funcs[]		= { S700_MUX_DSI,
61862306a36Sopenharmony_ci							    S700_MUX_UART2,
61962306a36Sopenharmony_ci							    S700_MUX_SPI0 };
62062306a36Sopenharmony_ci/* dsi_dp2 */
62162306a36Sopenharmony_cistatic unsigned int  dsi_dp2_mfp_pads[]			= { DSI_DP2 };
62262306a36Sopenharmony_cistatic unsigned int  dsi_dp2_mfp_funcs[]		= { S700_MUX_DSI,
62362306a36Sopenharmony_ci							    S700_MUX_UART2,
62462306a36Sopenharmony_ci							    S700_MUX_SPI0,
62562306a36Sopenharmony_ci							    S700_MUX_SD1 };
62662306a36Sopenharmony_ci/* lcd0_d2 */
62762306a36Sopenharmony_cistatic unsigned int  lcd0_d2_mfp_pads[]			= { LCD0_D2 };
62862306a36Sopenharmony_cistatic unsigned int  lcd0_d2_mfp_funcs[]		= { S700_MUX_NOR,
62962306a36Sopenharmony_ci							    S700_MUX_SD0,
63062306a36Sopenharmony_ci							    S700_MUX_RESERVED,
63162306a36Sopenharmony_ci							    S700_MUX_PWM3,
63262306a36Sopenharmony_ci							    S700_MUX_LCD0 };
63362306a36Sopenharmony_ci/* dsi_dp3 */
63462306a36Sopenharmony_cistatic unsigned int  dsi_dp3_mfp_pads[]			= { DSI_DP3 };
63562306a36Sopenharmony_cistatic unsigned int  dsi_dp3_mfp_funcs[]		= { S700_MUX_DSI,
63662306a36Sopenharmony_ci							    S700_MUX_SD0,
63762306a36Sopenharmony_ci							    S700_MUX_SD1,
63862306a36Sopenharmony_ci							    S700_MUX_LCD0 };
63962306a36Sopenharmony_ci/* dsi_dn3 */
64062306a36Sopenharmony_cistatic unsigned int  dsi_dn3_mfp_pads[]			= { DSI_DN3 };
64162306a36Sopenharmony_cistatic unsigned int  dsi_dn3_mfp_funcs[]		= { S700_MUX_DSI,
64262306a36Sopenharmony_ci							    S700_MUX_SD0,
64362306a36Sopenharmony_ci							    S700_MUX_SD1,
64462306a36Sopenharmony_ci							    S700_MUX_LCD0 };
64562306a36Sopenharmony_ci/* dsi_dp0 */
64662306a36Sopenharmony_cistatic unsigned int  dsi_dp0_mfp_pads[]			= { DSI_DP0 };
64762306a36Sopenharmony_cistatic unsigned int  dsi_dp0_mfp_funcs[]		= { S700_MUX_DSI,
64862306a36Sopenharmony_ci							    S700_MUX_RESERVED,
64962306a36Sopenharmony_ci							    S700_MUX_SD0,
65062306a36Sopenharmony_ci							    S700_MUX_UART2,
65162306a36Sopenharmony_ci							    S700_MUX_SPI0 };
65262306a36Sopenharmony_ci/* lvds_ee_pn */
65362306a36Sopenharmony_cistatic unsigned int  lvds_ee_pn_mfp_pads[]		= { LVDS_EEP,
65462306a36Sopenharmony_ci							    LVDS_EEN };
65562306a36Sopenharmony_cistatic unsigned int  lvds_ee_pn_mfp_funcs[]		= { S700_MUX_LVDS,
65662306a36Sopenharmony_ci							    S700_MUX_NOR,
65762306a36Sopenharmony_ci							    S700_MUX_BT,
65862306a36Sopenharmony_ci							    S700_MUX_LCD0 };
65962306a36Sopenharmony_ci/* uart2_rx_tx */
66062306a36Sopenharmony_cistatic unsigned int  uart2_rx_tx_mfp_pads[]		= { UART2_RX,
66162306a36Sopenharmony_ci							    UART2_TX };
66262306a36Sopenharmony_cistatic unsigned int  uart2_rx_tx_mfp_funcs[]		= { S700_MUX_UART2,
66362306a36Sopenharmony_ci							    S700_MUX_NOR,
66462306a36Sopenharmony_ci							    S700_MUX_SPI0,
66562306a36Sopenharmony_ci							    S700_MUX_PCM0 };
66662306a36Sopenharmony_ci/* spi0_i2c_pcm */
66762306a36Sopenharmony_cistatic unsigned int  spi0_i2c_pcm_mfp_pads[]		= { SPI0_SS,
66862306a36Sopenharmony_ci							    SPI0_MISO };
66962306a36Sopenharmony_cistatic unsigned int  spi0_i2c_pcm_mfp_funcs[]		= { S700_MUX_SPI0,
67062306a36Sopenharmony_ci							    S700_MUX_NOR,
67162306a36Sopenharmony_ci							    S700_MUX_I2S1,
67262306a36Sopenharmony_ci							    S700_MUX_PCM1,
67362306a36Sopenharmony_ci							    S700_MUX_PCM0,
67462306a36Sopenharmony_ci							    S700_MUX_I2C2 };
67562306a36Sopenharmony_ci/* mfp2_31 reserved */
67662306a36Sopenharmony_ci
67762306a36Sopenharmony_ci/* dsi_dnp1_cp_d2 */
67862306a36Sopenharmony_cistatic unsigned int  dsi_dnp1_cp_d2_mfp_pads[]		= { DSI_DP1,
67962306a36Sopenharmony_ci							    DSI_CP,
68062306a36Sopenharmony_ci							    DSI_CN };
68162306a36Sopenharmony_cistatic unsigned int  dsi_dnp1_cp_d2_mfp_funcs[]		= { S700_MUX_DSI,
68262306a36Sopenharmony_ci							    S700_MUX_LCD0,
68362306a36Sopenharmony_ci							    S700_MUX_RESERVED };
68462306a36Sopenharmony_ci/* dsi_dnp1_cp_d17 */
68562306a36Sopenharmony_cistatic unsigned int  dsi_dnp1_cp_d17_mfp_pads[]		= { DSI_DP1,
68662306a36Sopenharmony_ci							    DSI_CP,
68762306a36Sopenharmony_ci							    DSI_CN };
68862306a36Sopenharmony_ci
68962306a36Sopenharmony_cistatic unsigned int  dsi_dnp1_cp_d17_mfp_funcs[]	= { S700_MUX_DSI,
69062306a36Sopenharmony_ci							    S700_MUX_RESERVED,
69162306a36Sopenharmony_ci							    S700_MUX_LCD0 };
69262306a36Sopenharmony_ci/* lvds_e_pn */
69362306a36Sopenharmony_cistatic unsigned int  lvds_e_pn_mfp_pads[]		= { LVDS_EDP,
69462306a36Sopenharmony_ci							    LVDS_EDN,
69562306a36Sopenharmony_ci							    LVDS_ECP,
69662306a36Sopenharmony_ci							    LVDS_ECN,
69762306a36Sopenharmony_ci							    LVDS_EBP,
69862306a36Sopenharmony_ci							    LVDS_EBN,
69962306a36Sopenharmony_ci							    LVDS_EAP,
70062306a36Sopenharmony_ci							    LVDS_EAN };
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_cistatic unsigned int  lvds_e_pn_mfp_funcs[]		= { S700_MUX_LVDS,
70362306a36Sopenharmony_ci							    S700_MUX_NOR,
70462306a36Sopenharmony_ci							    S700_MUX_LCD0 };
70562306a36Sopenharmony_ci/* dsi_dn2 */
70662306a36Sopenharmony_cistatic unsigned int  dsi_dn2_mfp_pads[]			= { DSI_DN2 };
70762306a36Sopenharmony_cistatic unsigned int  dsi_dn2_mfp_funcs[]		= { S700_MUX_DSI,
70862306a36Sopenharmony_ci							    S700_MUX_RESERVED,
70962306a36Sopenharmony_ci							    S700_MUX_SD1,
71062306a36Sopenharmony_ci							    S700_MUX_UART2,
71162306a36Sopenharmony_ci							    S700_MUX_SPI0 };
71262306a36Sopenharmony_ci/* uart2_rtsb */
71362306a36Sopenharmony_cistatic unsigned int  uart2_rtsb_mfp_pads[]		= { UART2_RTSB };
71462306a36Sopenharmony_cistatic unsigned int  uart2_rtsb_mfp_funcs[]		= { S700_MUX_UART2,
71562306a36Sopenharmony_ci							    S700_MUX_UART0 };
71662306a36Sopenharmony_ci
71762306a36Sopenharmony_ci/* uart2_ctsb */
71862306a36Sopenharmony_cistatic unsigned int  uart2_ctsb_mfp_pads[]		= { UART2_CTSB };
71962306a36Sopenharmony_cistatic unsigned int  uart2_ctsb_mfp_funcs[]		= { S700_MUX_UART2,
72062306a36Sopenharmony_ci							    S700_MUX_UART0 };
72162306a36Sopenharmony_ci/* uart3_rtsb */
72262306a36Sopenharmony_cistatic unsigned int  uart3_rtsb_mfp_pads[]		= { UART3_RTSB };
72362306a36Sopenharmony_cistatic unsigned int  uart3_rtsb_mfp_funcs[]		= { S700_MUX_UART3,
72462306a36Sopenharmony_ci							    S700_MUX_UART5 };
72562306a36Sopenharmony_ci
72662306a36Sopenharmony_ci/* uart3_ctsb */
72762306a36Sopenharmony_cistatic unsigned int  uart3_ctsb_mfp_pads[]		= { UART3_CTSB };
72862306a36Sopenharmony_cistatic unsigned int  uart3_ctsb_mfp_funcs[]		= { S700_MUX_UART3,
72962306a36Sopenharmony_ci							    S700_MUX_UART5 };
73062306a36Sopenharmony_ci/* sd0_d0 */
73162306a36Sopenharmony_cistatic unsigned int  sd0_d0_mfp_pads[]			= { SD0_D0 };
73262306a36Sopenharmony_cistatic unsigned int  sd0_d0_mfp_funcs[]			= { S700_MUX_SD0,
73362306a36Sopenharmony_ci							    S700_MUX_NOR,
73462306a36Sopenharmony_ci							    S700_MUX_RESERVED,
73562306a36Sopenharmony_ci							    S700_MUX_JTAG,
73662306a36Sopenharmony_ci							    S700_MUX_UART2,
73762306a36Sopenharmony_ci							    S700_MUX_UART5 };
73862306a36Sopenharmony_ci/* sd0_d1 */
73962306a36Sopenharmony_cistatic unsigned int  sd0_d1_mfp_pads[]			= { SD0_D1 };
74062306a36Sopenharmony_cistatic unsigned int  sd0_d1_mfp_funcs[]			= { S700_MUX_SD0,
74162306a36Sopenharmony_ci							    S700_MUX_NOR,
74262306a36Sopenharmony_ci							    S700_MUX_RESERVED,
74362306a36Sopenharmony_ci							    S700_MUX_RESERVED,
74462306a36Sopenharmony_ci							    S700_MUX_UART2,
74562306a36Sopenharmony_ci							    S700_MUX_UART5 };
74662306a36Sopenharmony_ci/* sd0_d2_d3 */
74762306a36Sopenharmony_cistatic unsigned int  sd0_d2_d3_mfp_pads[]		= { SD0_D2,
74862306a36Sopenharmony_ci							    SD0_D3 };
74962306a36Sopenharmony_cistatic unsigned int  sd0_d2_d3_mfp_funcs[]		= { S700_MUX_SD0,
75062306a36Sopenharmony_ci							    S700_MUX_NOR,
75162306a36Sopenharmony_ci							    S700_MUX_RESERVED,
75262306a36Sopenharmony_ci							    S700_MUX_JTAG,
75362306a36Sopenharmony_ci							    S700_MUX_UART2,
75462306a36Sopenharmony_ci							    S700_MUX_UART1 };
75562306a36Sopenharmony_ci
75662306a36Sopenharmony_ci/* sd1_d0_d3 */
75762306a36Sopenharmony_cistatic unsigned int  sd1_d0_d3_mfp_pads[]		= { SD1_D0,
75862306a36Sopenharmony_ci							    SD1_D1,
75962306a36Sopenharmony_ci							    SD1_D2,
76062306a36Sopenharmony_ci							    SD1_D3 };
76162306a36Sopenharmony_cistatic unsigned int  sd1_d0_d3_mfp_funcs[]		= { S700_MUX_SD0,
76262306a36Sopenharmony_ci							    S700_MUX_NOR,
76362306a36Sopenharmony_ci							    S700_MUX_RESERVED,
76462306a36Sopenharmony_ci							    S700_MUX_SD1 };
76562306a36Sopenharmony_ci
76662306a36Sopenharmony_ci/* sd0_cmd */
76762306a36Sopenharmony_cistatic unsigned int  sd0_cmd_mfp_pads[]			= { SD0_CMD };
76862306a36Sopenharmony_cistatic unsigned int  sd0_cmd_mfp_funcs[]		= { S700_MUX_SD0,
76962306a36Sopenharmony_ci							    S700_MUX_NOR,
77062306a36Sopenharmony_ci							    S700_MUX_RESERVED,
77162306a36Sopenharmony_ci							    S700_MUX_JTAG };
77262306a36Sopenharmony_ci/* sd0_clk */
77362306a36Sopenharmony_cistatic unsigned int  sd0_clk_mfp_pads[]			= { SD0_CLK };
77462306a36Sopenharmony_cistatic unsigned int  sd0_clk_mfp_funcs[]		= { S700_MUX_SD0,
77562306a36Sopenharmony_ci							    S700_MUX_RESERVED,
77662306a36Sopenharmony_ci							    S700_MUX_JTAG };
77762306a36Sopenharmony_ci/* sd1_cmd */
77862306a36Sopenharmony_cistatic unsigned int  sd1_cmd_mfp_pads[]			= { SD1_CMD };
77962306a36Sopenharmony_cistatic unsigned int  sd1_cmd_mfp_funcs[]		= { S700_MUX_SD1,
78062306a36Sopenharmony_ci							    S700_MUX_NOR };
78162306a36Sopenharmony_ci/* uart0_rx */
78262306a36Sopenharmony_cistatic unsigned int  uart0_rx_mfp_pads[]		= { UART0_RX };
78362306a36Sopenharmony_cistatic unsigned int  uart0_rx_mfp_funcs[]		= { S700_MUX_UART0,
78462306a36Sopenharmony_ci							    S700_MUX_UART2,
78562306a36Sopenharmony_ci							    S700_MUX_SPI1,
78662306a36Sopenharmony_ci							    S700_MUX_I2C0,
78762306a36Sopenharmony_ci							    S700_MUX_PCM1,
78862306a36Sopenharmony_ci							    S700_MUX_I2S1 };
78962306a36Sopenharmony_ci/* dnand_data_wr1 reserved */
79062306a36Sopenharmony_ci
79162306a36Sopenharmony_ci/* clko_25m */
79262306a36Sopenharmony_cistatic unsigned int  clko_25m_mfp_pads[]		= { CLKO_25M };
79362306a36Sopenharmony_cistatic unsigned int  clko_25m_mfp_funcs[]		= { S700_MUX_RESERVED,
79462306a36Sopenharmony_ci							    S700_MUX_CLKO_25M };
79562306a36Sopenharmony_ci/* csi_cn_cp */
79662306a36Sopenharmony_cistatic unsigned int  csi_cn_cp_mfp_pads[]		= { CSI_CN,
79762306a36Sopenharmony_ci							    CSI_CP };
79862306a36Sopenharmony_cistatic unsigned int  csi_cn_cp_mfp_funcs[]		= { S700_MUX_MIPI_CSI,
79962306a36Sopenharmony_ci							    S700_MUX_SENS0 };
80062306a36Sopenharmony_ci/* dnand_acle_ce07_24 reserved */
80162306a36Sopenharmony_ci
80262306a36Sopenharmony_ci/* sens0_ckout */
80362306a36Sopenharmony_cistatic unsigned int  sens0_ckout_mfp_pads[]		= { SENSOR0_CKOUT };
80462306a36Sopenharmony_cistatic unsigned int  sens0_ckout_mfp_funcs[]		= { S700_MUX_SENS0,
80562306a36Sopenharmony_ci							    S700_MUX_NOR,
80662306a36Sopenharmony_ci							    S700_MUX_SENS1,
80762306a36Sopenharmony_ci							    S700_MUX_PWM1 };
80862306a36Sopenharmony_ci/* uart0_tx */
80962306a36Sopenharmony_cistatic unsigned int  uart0_tx_mfp_pads[]		= { UART0_TX };
81062306a36Sopenharmony_cistatic unsigned int  uart0_tx_mfp_funcs[]		= { S700_MUX_UART0,
81162306a36Sopenharmony_ci							    S700_MUX_UART2,
81262306a36Sopenharmony_ci							    S700_MUX_SPI1,
81362306a36Sopenharmony_ci							    S700_MUX_I2C0,
81462306a36Sopenharmony_ci							    S700_MUX_SPDIF,
81562306a36Sopenharmony_ci							    S700_MUX_PCM1,
81662306a36Sopenharmony_ci							    S700_MUX_I2S1 };
81762306a36Sopenharmony_ci/* i2c0_mfp */
81862306a36Sopenharmony_cistatic unsigned int  i2c0_mfp_pads[]		= { I2C0_SCLK,
81962306a36Sopenharmony_ci							    I2C0_SDATA };
82062306a36Sopenharmony_cistatic unsigned int  i2c0_mfp_funcs[]		= { S700_MUX_I2C0,
82162306a36Sopenharmony_ci							    S700_MUX_UART2,
82262306a36Sopenharmony_ci							    S700_MUX_I2C1,
82362306a36Sopenharmony_ci							    S700_MUX_UART1,
82462306a36Sopenharmony_ci							    S700_MUX_SPI1 };
82562306a36Sopenharmony_ci/* csi_dn_dp */
82662306a36Sopenharmony_cistatic unsigned int  csi_dn_dp_mfp_pads[]		= { CSI_DN0,
82762306a36Sopenharmony_ci							    CSI_DN1,
82862306a36Sopenharmony_ci							    CSI_DN2,
82962306a36Sopenharmony_ci							    CSI_DN3,
83062306a36Sopenharmony_ci							    CSI_DP0,
83162306a36Sopenharmony_ci							    CSI_DP1,
83262306a36Sopenharmony_ci							    CSI_DP2,
83362306a36Sopenharmony_ci							    CSI_DP3 };
83462306a36Sopenharmony_cistatic unsigned int  csi_dn_dp_mfp_funcs[]		= { S700_MUX_MIPI_CSI,
83562306a36Sopenharmony_ci							    S700_MUX_SENS0 };
83662306a36Sopenharmony_ci/* sen0_pclk */
83762306a36Sopenharmony_cistatic unsigned int  sen0_pclk_mfp_pads[]		= { SENSOR0_PCLK };
83862306a36Sopenharmony_cistatic unsigned int  sen0_pclk_mfp_funcs[]		= { S700_MUX_SENS0,
83962306a36Sopenharmony_ci							    S700_MUX_NOR,
84062306a36Sopenharmony_ci							    S700_MUX_PWM0 };
84162306a36Sopenharmony_ci/* pcm1_in */
84262306a36Sopenharmony_cistatic unsigned int  pcm1_in_mfp_pads[]			= { PCM1_IN };
84362306a36Sopenharmony_cistatic unsigned int  pcm1_in_mfp_funcs[]		= { S700_MUX_PCM1,
84462306a36Sopenharmony_ci							    S700_MUX_SENS1,
84562306a36Sopenharmony_ci							    S700_MUX_BT,
84662306a36Sopenharmony_ci							    S700_MUX_PWM4 };
84762306a36Sopenharmony_ci/* pcm1_clk */
84862306a36Sopenharmony_cistatic unsigned int  pcm1_clk_mfp_pads[]		= { PCM1_CLK };
84962306a36Sopenharmony_cistatic unsigned int  pcm1_clk_mfp_funcs[]		= { S700_MUX_PCM1,
85062306a36Sopenharmony_ci							    S700_MUX_SENS1,
85162306a36Sopenharmony_ci							    S700_MUX_BT,
85262306a36Sopenharmony_ci							    S700_MUX_PWM5 };
85362306a36Sopenharmony_ci/* pcm1_sync */
85462306a36Sopenharmony_cistatic unsigned int  pcm1_sync_mfp_pads[]		= { PCM1_SYNC };
85562306a36Sopenharmony_cistatic unsigned int  pcm1_sync_mfp_funcs[]		= { S700_MUX_PCM1,
85662306a36Sopenharmony_ci							    S700_MUX_SENS1,
85762306a36Sopenharmony_ci							    S700_MUX_BT,
85862306a36Sopenharmony_ci							    S700_MUX_I2C3 };
85962306a36Sopenharmony_ci/* pcm1_out */
86062306a36Sopenharmony_cistatic unsigned int  pcm1_out_mfp_pads[]		= { PCM1_OUT };
86162306a36Sopenharmony_cistatic unsigned int  pcm1_out_mfp_funcs[]		= { S700_MUX_PCM1,
86262306a36Sopenharmony_ci							    S700_MUX_SENS1,
86362306a36Sopenharmony_ci							    S700_MUX_BT,
86462306a36Sopenharmony_ci							    S700_MUX_I2C3 };
86562306a36Sopenharmony_ci/* dnand_data_wr */
86662306a36Sopenharmony_cistatic unsigned int  dnand_data_wr_mfp_pads[]		= { DNAND_D0,
86762306a36Sopenharmony_ci							    DNAND_D1,
86862306a36Sopenharmony_ci							    DNAND_D2,
86962306a36Sopenharmony_ci							    DNAND_D3,
87062306a36Sopenharmony_ci							    DNAND_D4,
87162306a36Sopenharmony_ci							    DNAND_D5,
87262306a36Sopenharmony_ci							    DNAND_D6,
87362306a36Sopenharmony_ci							    DNAND_D7,
87462306a36Sopenharmony_ci							    DNAND_RDB,
87562306a36Sopenharmony_ci							    DNAND_RDBN };
87662306a36Sopenharmony_cistatic unsigned int  dnand_data_wr_mfp_funcs[]		= { S700_MUX_NAND,
87762306a36Sopenharmony_ci							    S700_MUX_SD2 };
87862306a36Sopenharmony_ci/* dnand_acle_ce0 */
87962306a36Sopenharmony_cistatic unsigned int  dnand_acle_ce0_mfp_pads[]		= { DNAND_ALE,
88062306a36Sopenharmony_ci							    DNAND_CLE,
88162306a36Sopenharmony_ci							    DNAND_CEB0,
88262306a36Sopenharmony_ci							    DNAND_CEB1 };
88362306a36Sopenharmony_cistatic unsigned int  dnand_acle_ce0_mfp_funcs[]		= { S700_MUX_NAND,
88462306a36Sopenharmony_ci							    S700_MUX_SPI2 };
88562306a36Sopenharmony_ci
88662306a36Sopenharmony_ci/* nand_ceb2 */
88762306a36Sopenharmony_cistatic unsigned int  nand_ceb2_mfp_pads[]		= { DNAND_CEB2 };
88862306a36Sopenharmony_cistatic unsigned int  nand_ceb2_mfp_funcs[]		= { S700_MUX_NAND,
88962306a36Sopenharmony_ci							    S700_MUX_PWM5 };
89062306a36Sopenharmony_ci/* nand_ceb3 */
89162306a36Sopenharmony_cistatic unsigned int  nand_ceb3_mfp_pads[]		= { DNAND_CEB3 };
89262306a36Sopenharmony_cistatic unsigned int  nand_ceb3_mfp_funcs[]		= { S700_MUX_NAND,
89362306a36Sopenharmony_ci							    S700_MUX_PWM4 };
89462306a36Sopenharmony_ci/*****End MFP group data****************************/
89562306a36Sopenharmony_ci
89662306a36Sopenharmony_ci/*****PADDRV group data****************************/
89762306a36Sopenharmony_ci
89862306a36Sopenharmony_ci/*PAD_DRV0*/
89962306a36Sopenharmony_cistatic unsigned int  sirq_drv_pads[]			= { SIRQ0,
90062306a36Sopenharmony_ci							    SIRQ1,
90162306a36Sopenharmony_ci							    SIRQ2 };
90262306a36Sopenharmony_ci
90362306a36Sopenharmony_cistatic unsigned int  rgmii_txd23_drv_pads[]		= { ETH_TXD2,
90462306a36Sopenharmony_ci							    ETH_TXD3 };
90562306a36Sopenharmony_ci
90662306a36Sopenharmony_cistatic unsigned int  rgmii_rxd23_drv_pads[]		= { ETH_RXD2,
90762306a36Sopenharmony_ci							    ETH_RXD3 };
90862306a36Sopenharmony_ci
90962306a36Sopenharmony_cistatic unsigned int  rgmii_txd01_txen_drv_pads[]	= { ETH_TXD0,
91062306a36Sopenharmony_ci							    ETH_TXD1,
91162306a36Sopenharmony_ci							    ETH_TXEN };
91262306a36Sopenharmony_ci
91362306a36Sopenharmony_cistatic unsigned int  rgmii_rxer_drv_pads[]		= { ETH_RXER };
91462306a36Sopenharmony_ci
91562306a36Sopenharmony_cistatic unsigned int  rgmii_crs_drv_pads[]		= { ETH_CRS_DV };
91662306a36Sopenharmony_ci
91762306a36Sopenharmony_cistatic unsigned int  rgmii_rxd10_drv_pads[]		= { ETH_RXD0,
91862306a36Sopenharmony_ci							    ETH_RXD1 };
91962306a36Sopenharmony_ci
92062306a36Sopenharmony_cistatic unsigned int  rgmii_ref_clk_drv_pads[]		= { ETH_REF_CLK };
92162306a36Sopenharmony_ci
92262306a36Sopenharmony_cistatic unsigned int  smi_mdc_mdio_drv_pads[]		= { ETH_MDC,
92362306a36Sopenharmony_ci							    ETH_MDIO };
92462306a36Sopenharmony_ci
92562306a36Sopenharmony_cistatic unsigned int  i2s_d0_drv_pads[]			= { I2S_D0 };
92662306a36Sopenharmony_ci
92762306a36Sopenharmony_cistatic unsigned int  i2s_bclk0_drv_pads[]		= { I2S_BCLK0 };
92862306a36Sopenharmony_ci
92962306a36Sopenharmony_cistatic unsigned int  i2s3_drv_pads[]			= { I2S_LRCLK0,
93062306a36Sopenharmony_ci							    I2S_MCLK0,
93162306a36Sopenharmony_ci							    I2S_D1 };
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_cistatic unsigned int  i2s13_drv_pads[]			= { I2S_BCLK1,
93462306a36Sopenharmony_ci							    I2S_LRCLK1,
93562306a36Sopenharmony_ci							    I2S_MCLK1 };
93662306a36Sopenharmony_ci
93762306a36Sopenharmony_cistatic unsigned int  pcm1_drv_pads[]			= { PCM1_IN,
93862306a36Sopenharmony_ci							    PCM1_CLK,
93962306a36Sopenharmony_ci							    PCM1_SYNC,
94062306a36Sopenharmony_ci							    PCM1_OUT };
94162306a36Sopenharmony_ci
94262306a36Sopenharmony_cistatic unsigned int  ks_in_drv_pads[]			= { KS_IN0,
94362306a36Sopenharmony_ci							    KS_IN1,
94462306a36Sopenharmony_ci							    KS_IN2,
94562306a36Sopenharmony_ci							    KS_IN3 };
94662306a36Sopenharmony_ci
94762306a36Sopenharmony_ci/*PAD_DRV1*/
94862306a36Sopenharmony_cistatic unsigned int  ks_out_drv_pads[]			= { KS_OUT0,
94962306a36Sopenharmony_ci							    KS_OUT1,
95062306a36Sopenharmony_ci							    KS_OUT2 };
95162306a36Sopenharmony_ci
95262306a36Sopenharmony_cistatic unsigned int  lvds_all_drv_pads[]		= { LVDS_OEP,
95362306a36Sopenharmony_ci							    LVDS_OEN,
95462306a36Sopenharmony_ci							    LVDS_ODP,
95562306a36Sopenharmony_ci							    LVDS_ODN,
95662306a36Sopenharmony_ci							    LVDS_OCP,
95762306a36Sopenharmony_ci							    LVDS_OCN,
95862306a36Sopenharmony_ci							    LVDS_OBP,
95962306a36Sopenharmony_ci							    LVDS_OBN,
96062306a36Sopenharmony_ci							    LVDS_OAP,
96162306a36Sopenharmony_ci							    LVDS_OAN,
96262306a36Sopenharmony_ci							    LVDS_EEP,
96362306a36Sopenharmony_ci							    LVDS_EEN,
96462306a36Sopenharmony_ci							    LVDS_EDP,
96562306a36Sopenharmony_ci							    LVDS_EDN,
96662306a36Sopenharmony_ci							    LVDS_ECP,
96762306a36Sopenharmony_ci							    LVDS_ECN,
96862306a36Sopenharmony_ci							    LVDS_EBP,
96962306a36Sopenharmony_ci							    LVDS_EBN,
97062306a36Sopenharmony_ci							    LVDS_EAP,
97162306a36Sopenharmony_ci							    LVDS_EAN };
97262306a36Sopenharmony_ci
97362306a36Sopenharmony_cistatic unsigned int  lcd_d18_d2_drv_pads[]		= { LCD0_D18,
97462306a36Sopenharmony_ci							    LCD0_D2 };
97562306a36Sopenharmony_ci
97662306a36Sopenharmony_cistatic unsigned int  dsi_all_drv_pads[]			= { DSI_DP0,
97762306a36Sopenharmony_ci							    DSI_DN0,
97862306a36Sopenharmony_ci							    DSI_DP2,
97962306a36Sopenharmony_ci							    DSI_DN2,
98062306a36Sopenharmony_ci							    DSI_DP3,
98162306a36Sopenharmony_ci							    DSI_DN3,
98262306a36Sopenharmony_ci							    DSI_DP1,
98362306a36Sopenharmony_ci							    DSI_DN1,
98462306a36Sopenharmony_ci							    DSI_CP,
98562306a36Sopenharmony_ci							    DSI_CN };
98662306a36Sopenharmony_ci
98762306a36Sopenharmony_cistatic unsigned int  sd0_d0_d3_drv_pads[]		= { SD0_D0,
98862306a36Sopenharmony_ci							    SD0_D1,
98962306a36Sopenharmony_ci							    SD0_D2,
99062306a36Sopenharmony_ci							    SD0_D3 };
99162306a36Sopenharmony_ci
99262306a36Sopenharmony_cistatic unsigned int  sd0_cmd_drv_pads[]			= { SD0_CMD };
99362306a36Sopenharmony_ci
99462306a36Sopenharmony_cistatic unsigned int  sd0_clk_drv_pads[]			= { SD0_CLK };
99562306a36Sopenharmony_ci
99662306a36Sopenharmony_cistatic unsigned int  spi0_all_drv_pads[]		= { SPI0_SS,
99762306a36Sopenharmony_ci							    SPI0_MISO };
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_ci/*PAD_DRV2*/
100062306a36Sopenharmony_cistatic unsigned int  uart0_rx_drv_pads[]		= { UART0_RX };
100162306a36Sopenharmony_ci
100262306a36Sopenharmony_cistatic unsigned int  uart0_tx_drv_pads[]		= { UART0_TX };
100362306a36Sopenharmony_ci
100462306a36Sopenharmony_cistatic unsigned int  uart2_all_drv_pads[]		= { UART2_RX,
100562306a36Sopenharmony_ci							    UART2_TX,
100662306a36Sopenharmony_ci							    UART2_RTSB,
100762306a36Sopenharmony_ci							    UART2_CTSB };
100862306a36Sopenharmony_ci
100962306a36Sopenharmony_cistatic unsigned int  i2c0_all_drv_pads[]		= { I2C0_SCLK,
101062306a36Sopenharmony_ci							    I2C0_SDATA };
101162306a36Sopenharmony_ci
101262306a36Sopenharmony_cistatic unsigned int  i2c12_all_drv_pads[]		= { I2C1_SCLK,
101362306a36Sopenharmony_ci							    I2C1_SDATA,
101462306a36Sopenharmony_ci							    I2C2_SCLK,
101562306a36Sopenharmony_ci							    I2C2_SDATA };
101662306a36Sopenharmony_ci
101762306a36Sopenharmony_cistatic unsigned int  sens0_pclk_drv_pads[]		= { SENSOR0_PCLK };
101862306a36Sopenharmony_ci
101962306a36Sopenharmony_cistatic unsigned int  sens0_ckout_drv_pads[]		= { SENSOR0_CKOUT };
102062306a36Sopenharmony_ci
102162306a36Sopenharmony_cistatic unsigned int  uart3_all_drv_pads[]		= { UART3_RX,
102262306a36Sopenharmony_ci							    UART3_TX,
102362306a36Sopenharmony_ci							    UART3_RTSB,
102462306a36Sopenharmony_ci							    UART3_CTSB };
102562306a36Sopenharmony_ci
102662306a36Sopenharmony_ci/* all pinctrl groups of S700 board */
102762306a36Sopenharmony_cistatic const struct owl_pingroup s700_groups[] = {
102862306a36Sopenharmony_ci	MUX_PG(rgmii_txd23_mfp, 0, 28, 2),
102962306a36Sopenharmony_ci	MUX_PG(rgmii_rxd2_mfp, 0, 26, 2),
103062306a36Sopenharmony_ci	MUX_PG(rgmii_rxd3_mfp, 0, 26, 2),
103162306a36Sopenharmony_ci	MUX_PG(lcd0_d18_mfp, 0, 23, 3),
103262306a36Sopenharmony_ci	MUX_PG(rgmii_txd01_mfp, 0, 20, 3),
103362306a36Sopenharmony_ci	MUX_PG(rgmii_txd0_mfp, 0, 16, 3),
103462306a36Sopenharmony_ci	MUX_PG(rgmii_txd1_mfp, 0, 16, 3),
103562306a36Sopenharmony_ci	MUX_PG(rgmii_txen_mfp, 0, 13, 3),
103662306a36Sopenharmony_ci	MUX_PG(rgmii_rxen_mfp, 0, 13, 3),
103762306a36Sopenharmony_ci	MUX_PG(rgmii_rxd1_mfp, 0, 8, 3),
103862306a36Sopenharmony_ci	MUX_PG(rgmii_rxd0_mfp, 0, 8, 3),
103962306a36Sopenharmony_ci	MUX_PG(rgmii_ref_clk_mfp, 0, 6, 2),
104062306a36Sopenharmony_ci	MUX_PG(i2s_d0_mfp, 0, 5, 1),
104162306a36Sopenharmony_ci	MUX_PG(i2s_pcm1_mfp, 0, 3, 2),
104262306a36Sopenharmony_ci	MUX_PG(i2s0_pcm0_mfp, 0, 1, 2),
104362306a36Sopenharmony_ci	MUX_PG(i2s1_pcm0_mfp, 0, 1, 2),
104462306a36Sopenharmony_ci	MUX_PG(i2s_d1_mfp, 0, 0, 1),
104562306a36Sopenharmony_ci	MUX_PG(ks_in2_mfp, 1, 29, 3),
104662306a36Sopenharmony_ci	MUX_PG(ks_in1_mfp, 1, 29, 3),
104762306a36Sopenharmony_ci	MUX_PG(ks_in0_mfp, 1, 29, 3),
104862306a36Sopenharmony_ci	MUX_PG(ks_in3_mfp, 1, 26, 3),
104962306a36Sopenharmony_ci	MUX_PG(ks_out0_mfp, 1, 26, 3),
105062306a36Sopenharmony_ci	MUX_PG(ks_out1_mfp, 1, 26, 3),
105162306a36Sopenharmony_ci	MUX_PG(ks_out2_mfp, 1, 23, 3),
105262306a36Sopenharmony_ci	MUX_PG(lvds_o_pn_mfp, 1, 21, 2),
105362306a36Sopenharmony_ci	MUX_PG(dsi_dn0_mfp, 1, 19, 2),
105462306a36Sopenharmony_ci	MUX_PG(dsi_dp2_mfp, 1, 17, 2),
105562306a36Sopenharmony_ci	MUX_PG(lcd0_d2_mfp, 1, 14, 3),
105662306a36Sopenharmony_ci	MUX_PG(dsi_dp3_mfp, 1, 12, 2),
105762306a36Sopenharmony_ci	MUX_PG(dsi_dn3_mfp, 1, 10, 2),
105862306a36Sopenharmony_ci	MUX_PG(dsi_dp0_mfp, 1, 7, 3),
105962306a36Sopenharmony_ci	MUX_PG(lvds_ee_pn_mfp, 1, 5, 2),
106062306a36Sopenharmony_ci	MUX_PG(uart2_rx_tx_mfp, 1, 3, 2),
106162306a36Sopenharmony_ci	MUX_PG(spi0_i2c_pcm_mfp, 1, 0, 3),
106262306a36Sopenharmony_ci	MUX_PG(dsi_dnp1_cp_d2_mfp, 2, 29, 2),
106362306a36Sopenharmony_ci	MUX_PG(dsi_dnp1_cp_d17_mfp, 2, 29, 2),
106462306a36Sopenharmony_ci	MUX_PG(lvds_e_pn_mfp, 2, 27, 2),
106562306a36Sopenharmony_ci	MUX_PG(dsi_dn2_mfp, 2, 24, 3),
106662306a36Sopenharmony_ci	MUX_PG(uart2_rtsb_mfp, 2, 23, 1),
106762306a36Sopenharmony_ci	MUX_PG(uart2_ctsb_mfp, 2, 22, 1),
106862306a36Sopenharmony_ci	MUX_PG(uart3_rtsb_mfp, 2, 21, 1),
106962306a36Sopenharmony_ci	MUX_PG(uart3_ctsb_mfp, 2, 20, 1),
107062306a36Sopenharmony_ci	MUX_PG(sd0_d0_mfp, 2, 17, 3),
107162306a36Sopenharmony_ci	MUX_PG(sd0_d1_mfp, 2, 14, 3),
107262306a36Sopenharmony_ci	MUX_PG(sd0_d2_d3_mfp, 2, 11, 3),
107362306a36Sopenharmony_ci	MUX_PG(sd1_d0_d3_mfp, 2, 9, 2),
107462306a36Sopenharmony_ci	MUX_PG(sd0_cmd_mfp, 2, 7, 2),
107562306a36Sopenharmony_ci	MUX_PG(sd0_clk_mfp, 2, 5, 2),
107662306a36Sopenharmony_ci	MUX_PG(sd1_cmd_mfp, 2, 3, 2),
107762306a36Sopenharmony_ci	MUX_PG(uart0_rx_mfp, 2, 0, 3),
107862306a36Sopenharmony_ci	MUX_PG(clko_25m_mfp, 3, 30, 1),
107962306a36Sopenharmony_ci	MUX_PG(csi_cn_cp_mfp, 3, 28, 2),
108062306a36Sopenharmony_ci	MUX_PG(sens0_ckout_mfp, 3, 22, 2),
108162306a36Sopenharmony_ci	MUX_PG(uart0_tx_mfp, 3, 19, 3),
108262306a36Sopenharmony_ci	MUX_PG(i2c0_mfp, 3, 16, 3),
108362306a36Sopenharmony_ci	MUX_PG(csi_dn_dp_mfp, 3, 14, 2),
108462306a36Sopenharmony_ci	MUX_PG(sen0_pclk_mfp, 3, 12, 2),
108562306a36Sopenharmony_ci	MUX_PG(pcm1_in_mfp, 3, 10, 2),
108662306a36Sopenharmony_ci	MUX_PG(pcm1_clk_mfp, 3, 8, 2),
108762306a36Sopenharmony_ci	MUX_PG(pcm1_sync_mfp, 3, 6, 2),
108862306a36Sopenharmony_ci	MUX_PG(pcm1_out_mfp, 3, 4, 2),
108962306a36Sopenharmony_ci	MUX_PG(dnand_data_wr_mfp, 3, 3, 1),
109062306a36Sopenharmony_ci	MUX_PG(dnand_acle_ce0_mfp, 3, 2, 1),
109162306a36Sopenharmony_ci	MUX_PG(nand_ceb2_mfp, 3, 0, 2),
109262306a36Sopenharmony_ci	MUX_PG(nand_ceb3_mfp, 3, 0, 2),
109362306a36Sopenharmony_ci
109462306a36Sopenharmony_ci	DRV_PG(sirq_drv, 0, 28, 2),
109562306a36Sopenharmony_ci	DRV_PG(rgmii_txd23_drv, 0, 26, 2),
109662306a36Sopenharmony_ci	DRV_PG(rgmii_rxd23_drv, 0, 24, 2),
109762306a36Sopenharmony_ci	DRV_PG(rgmii_txd01_txen_drv, 0, 22, 2),
109862306a36Sopenharmony_ci	DRV_PG(rgmii_rxer_drv, 0, 20, 2),
109962306a36Sopenharmony_ci	DRV_PG(rgmii_crs_drv, 0, 18, 2),
110062306a36Sopenharmony_ci	DRV_PG(rgmii_rxd10_drv, 0, 16, 2),
110162306a36Sopenharmony_ci	DRV_PG(rgmii_ref_clk_drv, 0, 14, 2),
110262306a36Sopenharmony_ci	DRV_PG(smi_mdc_mdio_drv, 0, 12, 2),
110362306a36Sopenharmony_ci	DRV_PG(i2s_d0_drv, 0, 10, 2),
110462306a36Sopenharmony_ci	DRV_PG(i2s_bclk0_drv, 0, 8, 2),
110562306a36Sopenharmony_ci	DRV_PG(i2s3_drv, 0, 6, 2),
110662306a36Sopenharmony_ci	DRV_PG(i2s13_drv, 0, 4, 2),
110762306a36Sopenharmony_ci	DRV_PG(pcm1_drv, 0, 2, 2),
110862306a36Sopenharmony_ci	DRV_PG(ks_in_drv, 0, 0, 2),
110962306a36Sopenharmony_ci	DRV_PG(ks_out_drv, 1, 30, 2),
111062306a36Sopenharmony_ci	DRV_PG(lvds_all_drv, 1, 28, 2),
111162306a36Sopenharmony_ci	DRV_PG(lcd_d18_d2_drv, 1, 26, 2),
111262306a36Sopenharmony_ci	DRV_PG(dsi_all_drv, 1, 24, 2),
111362306a36Sopenharmony_ci	DRV_PG(sd0_d0_d3_drv, 1, 22, 2),
111462306a36Sopenharmony_ci	DRV_PG(sd0_cmd_drv, 1, 18, 2),
111562306a36Sopenharmony_ci	DRV_PG(sd0_clk_drv, 1, 16, 2),
111662306a36Sopenharmony_ci	DRV_PG(spi0_all_drv, 1, 10, 2),
111762306a36Sopenharmony_ci	DRV_PG(uart0_rx_drv, 2, 30, 2),
111862306a36Sopenharmony_ci	DRV_PG(uart0_tx_drv, 2, 28, 2),
111962306a36Sopenharmony_ci	DRV_PG(uart2_all_drv, 2, 26, 2),
112062306a36Sopenharmony_ci	DRV_PG(i2c0_all_drv, 2, 23, 2),
112162306a36Sopenharmony_ci	DRV_PG(i2c12_all_drv, 2, 21, 2),
112262306a36Sopenharmony_ci	DRV_PG(sens0_pclk_drv, 2, 18, 2),
112362306a36Sopenharmony_ci	DRV_PG(sens0_ckout_drv, 2, 12, 2),
112462306a36Sopenharmony_ci	DRV_PG(uart3_all_drv, 2, 2, 2),
112562306a36Sopenharmony_ci};
112662306a36Sopenharmony_ci
112762306a36Sopenharmony_cistatic const char * const nor_groups[] = {
112862306a36Sopenharmony_ci	"lcd0_d18_mfp",
112962306a36Sopenharmony_ci	"i2s_d0_mfp",
113062306a36Sopenharmony_ci	"i2s0_pcm0_mfp",
113162306a36Sopenharmony_ci	"i2s1_pcm0_mfp",
113262306a36Sopenharmony_ci	"i2s_d1_mfp",
113362306a36Sopenharmony_ci	"ks_in2_mfp",
113462306a36Sopenharmony_ci	"ks_in1_mfp",
113562306a36Sopenharmony_ci	"ks_in0_mfp",
113662306a36Sopenharmony_ci	"ks_in3_mfp",
113762306a36Sopenharmony_ci	"ks_out0_mfp",
113862306a36Sopenharmony_ci	"ks_out1_mfp",
113962306a36Sopenharmony_ci	"ks_out2_mfp",
114062306a36Sopenharmony_ci	"lcd0_d2_mfp",
114162306a36Sopenharmony_ci	"lvds_ee_pn_mfp",
114262306a36Sopenharmony_ci	"uart2_rx_tx_mfp",
114362306a36Sopenharmony_ci	"spi0_i2c_pcm_mfp",
114462306a36Sopenharmony_ci	"lvds_e_pn_mfp",
114562306a36Sopenharmony_ci	"sd0_d0_mfp",
114662306a36Sopenharmony_ci	"sd0_d1_mfp",
114762306a36Sopenharmony_ci	"sd0_d2_d3_mfp",
114862306a36Sopenharmony_ci	"sd1_d0_d3_mfp",
114962306a36Sopenharmony_ci	"sd0_cmd_mfp",
115062306a36Sopenharmony_ci	"sd1_cmd_mfp",
115162306a36Sopenharmony_ci	"sens0_ckout_mfp",
115262306a36Sopenharmony_ci	"sen0_pclk_mfp",
115362306a36Sopenharmony_ci};
115462306a36Sopenharmony_ci
115562306a36Sopenharmony_cistatic const char * const eth_rmii_groups[] = {
115662306a36Sopenharmony_ci	"rgmii_txd23_mfp",
115762306a36Sopenharmony_ci	"rgmii_rxd2_mfp",
115862306a36Sopenharmony_ci	"rgmii_rxd3_mfp",
115962306a36Sopenharmony_ci	"rgmii_txd01_mfp",
116062306a36Sopenharmony_ci	"rgmii_txd0_mfp",
116162306a36Sopenharmony_ci	"rgmii_txd1_mfp",
116262306a36Sopenharmony_ci	"rgmii_txen_mfp",
116362306a36Sopenharmony_ci	"rgmii_rxen_mfp",
116462306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
116562306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
116662306a36Sopenharmony_ci	"rgmii_ref_clk_mfp",
116762306a36Sopenharmony_ci	"eth_smi_dummy",
116862306a36Sopenharmony_ci};
116962306a36Sopenharmony_ci
117062306a36Sopenharmony_cistatic const char * const eth_smii_groups[] = {
117162306a36Sopenharmony_ci	"rgmii_txd0_mfp",
117262306a36Sopenharmony_ci	"rgmii_txd1_mfp",
117362306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
117462306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
117562306a36Sopenharmony_ci	"rgmii_ref_clk_mfp",
117662306a36Sopenharmony_ci	"eth_smi_dummy",
117762306a36Sopenharmony_ci};
117862306a36Sopenharmony_ci
117962306a36Sopenharmony_cistatic const char * const spi0_groups[] = {
118062306a36Sopenharmony_ci	"dsi_dn0_mfp",
118162306a36Sopenharmony_ci	"dsi_dp2_mfp",
118262306a36Sopenharmony_ci	"dsi_dp0_mfp",
118362306a36Sopenharmony_ci	"uart2_rx_tx_mfp",
118462306a36Sopenharmony_ci	"spi0_i2c_pcm_mfp",
118562306a36Sopenharmony_ci	"dsi_dn2_mfp",
118662306a36Sopenharmony_ci};
118762306a36Sopenharmony_ci
118862306a36Sopenharmony_cistatic const char * const spi1_groups[] = {
118962306a36Sopenharmony_ci	"uart0_rx_mfp",
119062306a36Sopenharmony_ci	"uart0_tx_mfp",
119162306a36Sopenharmony_ci	"i2c0_mfp",
119262306a36Sopenharmony_ci};
119362306a36Sopenharmony_ci
119462306a36Sopenharmony_cistatic const char * const spi2_groups[] = {
119562306a36Sopenharmony_ci	"rgmii_txd01_mfp",
119662306a36Sopenharmony_ci	"rgmii_txd0_mfp",
119762306a36Sopenharmony_ci	"rgmii_txd1_mfp",
119862306a36Sopenharmony_ci	"rgmii_ref_clk_mfp",
119962306a36Sopenharmony_ci	"dnand_acle_ce0_mfp",
120062306a36Sopenharmony_ci};
120162306a36Sopenharmony_ci
120262306a36Sopenharmony_cistatic const char * const spi3_groups[] = {
120362306a36Sopenharmony_ci	"rgmii_txen_mfp",
120462306a36Sopenharmony_ci	"rgmii_rxen_mfp",
120562306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
120662306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
120762306a36Sopenharmony_ci};
120862306a36Sopenharmony_ci
120962306a36Sopenharmony_cistatic const char * const sens0_groups[] = {
121062306a36Sopenharmony_ci	"csi_cn_cp_mfp",
121162306a36Sopenharmony_ci	"sens0_ckout_mfp",
121262306a36Sopenharmony_ci	"csi_dn_dp_mfp",
121362306a36Sopenharmony_ci	"sen0_pclk_mfp",
121462306a36Sopenharmony_ci};
121562306a36Sopenharmony_ci
121662306a36Sopenharmony_cistatic const char * const sens1_groups[] = {
121762306a36Sopenharmony_ci	"lcd0_d18_mfp",
121862306a36Sopenharmony_ci	"ks_in2_mfp",
121962306a36Sopenharmony_ci	"ks_in1_mfp",
122062306a36Sopenharmony_ci	"ks_in0_mfp",
122162306a36Sopenharmony_ci	"ks_in3_mfp",
122262306a36Sopenharmony_ci	"ks_out0_mfp",
122362306a36Sopenharmony_ci	"ks_out1_mfp",
122462306a36Sopenharmony_ci	"ks_out2_mfp",
122562306a36Sopenharmony_ci	"sens0_ckout_mfp",
122662306a36Sopenharmony_ci	"pcm1_in_mfp",
122762306a36Sopenharmony_ci	"pcm1_clk_mfp",
122862306a36Sopenharmony_ci	"pcm1_sync_mfp",
122962306a36Sopenharmony_ci	"pcm1_out_mfp",
123062306a36Sopenharmony_ci};
123162306a36Sopenharmony_ci
123262306a36Sopenharmony_cistatic const char * const uart0_groups[] = {
123362306a36Sopenharmony_ci	"uart2_rtsb_mfp",
123462306a36Sopenharmony_ci	"uart2_ctsb_mfp",
123562306a36Sopenharmony_ci	"uart0_rx_mfp",
123662306a36Sopenharmony_ci	"uart0_tx_mfp",
123762306a36Sopenharmony_ci};
123862306a36Sopenharmony_ci
123962306a36Sopenharmony_cistatic const char * const uart1_groups[] = {
124062306a36Sopenharmony_ci	"sd0_d2_d3_mfp",
124162306a36Sopenharmony_ci	"i2c0_mfp",
124262306a36Sopenharmony_ci};
124362306a36Sopenharmony_ci
124462306a36Sopenharmony_cistatic const char * const uart2_groups[] = {
124562306a36Sopenharmony_ci	"rgmii_txen_mfp",
124662306a36Sopenharmony_ci	"rgmii_rxen_mfp",
124762306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
124862306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
124962306a36Sopenharmony_ci	"dsi_dn0_mfp",
125062306a36Sopenharmony_ci	"dsi_dp2_mfp",
125162306a36Sopenharmony_ci	"dsi_dp0_mfp",
125262306a36Sopenharmony_ci	"uart2_rx_tx_mfp",
125362306a36Sopenharmony_ci	"dsi_dn2_mfp",
125462306a36Sopenharmony_ci	"uart2_rtsb_mfp",
125562306a36Sopenharmony_ci	"uart2_ctsb_mfp",
125662306a36Sopenharmony_ci	"sd0_d0_mfp",
125762306a36Sopenharmony_ci	"sd0_d1_mfp",
125862306a36Sopenharmony_ci	"sd0_d2_d3_mfp",
125962306a36Sopenharmony_ci	"uart0_rx_mfp",
126062306a36Sopenharmony_ci	"uart0_tx_mfp",
126162306a36Sopenharmony_ci	"i2c0_mfp",
126262306a36Sopenharmony_ci	"uart2_dummy"
126362306a36Sopenharmony_ci};
126462306a36Sopenharmony_ci
126562306a36Sopenharmony_cistatic const char * const uart3_groups[] = {
126662306a36Sopenharmony_ci	"rgmii_txd23_mfp",
126762306a36Sopenharmony_ci	"rgmii_rxd2_mfp",
126862306a36Sopenharmony_ci	"rgmii_rxd3_mfp",
126962306a36Sopenharmony_ci	"uart3_rtsb_mfp",
127062306a36Sopenharmony_ci	"uart3_ctsb_mfp",
127162306a36Sopenharmony_ci	"uart3_dummy"
127262306a36Sopenharmony_ci};
127362306a36Sopenharmony_ci
127462306a36Sopenharmony_cistatic const char * const uart4_groups[] = {
127562306a36Sopenharmony_ci	"rgmii_txd01_mfp",
127662306a36Sopenharmony_ci	"rgmii_ref_clk_mfp",
127762306a36Sopenharmony_ci	"ks_out0_mfp",
127862306a36Sopenharmony_ci	"ks_out1_mfp",
127962306a36Sopenharmony_ci};
128062306a36Sopenharmony_ci
128162306a36Sopenharmony_cistatic const char * const uart5_groups[] = {
128262306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
128362306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
128462306a36Sopenharmony_ci	"ks_out0_mfp",
128562306a36Sopenharmony_ci	"ks_out2_mfp",
128662306a36Sopenharmony_ci	"uart3_rtsb_mfp",
128762306a36Sopenharmony_ci	"uart3_ctsb_mfp",
128862306a36Sopenharmony_ci	"sd0_d0_mfp",
128962306a36Sopenharmony_ci	"sd0_d1_mfp",
129062306a36Sopenharmony_ci};
129162306a36Sopenharmony_ci
129262306a36Sopenharmony_cistatic const char * const uart6_groups[] = {
129362306a36Sopenharmony_ci	"rgmii_txd0_mfp",
129462306a36Sopenharmony_ci	"rgmii_txd1_mfp",
129562306a36Sopenharmony_ci};
129662306a36Sopenharmony_ci
129762306a36Sopenharmony_cistatic const char * const i2s0_groups[] = {
129862306a36Sopenharmony_ci	"i2s_d0_mfp",
129962306a36Sopenharmony_ci	"i2s_pcm1_mfp",
130062306a36Sopenharmony_ci	"i2s0_pcm0_mfp",
130162306a36Sopenharmony_ci};
130262306a36Sopenharmony_ci
130362306a36Sopenharmony_cistatic const char * const i2s1_groups[] = {
130462306a36Sopenharmony_ci	"i2s1_pcm0_mfp",
130562306a36Sopenharmony_ci	"i2s_d1_mfp",
130662306a36Sopenharmony_ci	"i2s1_dummy",
130762306a36Sopenharmony_ci	"spi0_i2c_pcm_mfp",
130862306a36Sopenharmony_ci	"uart0_rx_mfp",
130962306a36Sopenharmony_ci	"uart0_tx_mfp",
131062306a36Sopenharmony_ci};
131162306a36Sopenharmony_ci
131262306a36Sopenharmony_cistatic const char * const pcm1_groups[] = {
131362306a36Sopenharmony_ci	"i2s_pcm1_mfp",
131462306a36Sopenharmony_ci	"spi0_i2c_pcm_mfp",
131562306a36Sopenharmony_ci	"uart0_rx_mfp",
131662306a36Sopenharmony_ci	"uart0_tx_mfp",
131762306a36Sopenharmony_ci	"pcm1_in_mfp",
131862306a36Sopenharmony_ci	"pcm1_clk_mfp",
131962306a36Sopenharmony_ci	"pcm1_sync_mfp",
132062306a36Sopenharmony_ci	"pcm1_out_mfp",
132162306a36Sopenharmony_ci};
132262306a36Sopenharmony_ci
132362306a36Sopenharmony_cistatic const char * const pcm0_groups[] = {
132462306a36Sopenharmony_ci	"i2s0_pcm0_mfp",
132562306a36Sopenharmony_ci	"i2s1_pcm0_mfp",
132662306a36Sopenharmony_ci	"uart2_rx_tx_mfp",
132762306a36Sopenharmony_ci	"spi0_i2c_pcm_mfp",
132862306a36Sopenharmony_ci};
132962306a36Sopenharmony_ci
133062306a36Sopenharmony_cistatic const char * const ks_groups[] = {
133162306a36Sopenharmony_ci	"ks_in2_mfp",
133262306a36Sopenharmony_ci	"ks_in1_mfp",
133362306a36Sopenharmony_ci	"ks_in0_mfp",
133462306a36Sopenharmony_ci	"ks_in3_mfp",
133562306a36Sopenharmony_ci	"ks_out0_mfp",
133662306a36Sopenharmony_ci	"ks_out1_mfp",
133762306a36Sopenharmony_ci	"ks_out2_mfp",
133862306a36Sopenharmony_ci};
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_cistatic const char * const jtag_groups[] = {
134162306a36Sopenharmony_ci	"ks_in2_mfp",
134262306a36Sopenharmony_ci	"ks_in1_mfp",
134362306a36Sopenharmony_ci	"ks_in0_mfp",
134462306a36Sopenharmony_ci	"ks_in3_mfp",
134562306a36Sopenharmony_ci	"ks_out1_mfp",
134662306a36Sopenharmony_ci	"sd0_d0_mfp",
134762306a36Sopenharmony_ci	"sd0_d2_d3_mfp",
134862306a36Sopenharmony_ci	"sd0_cmd_mfp",
134962306a36Sopenharmony_ci	"sd0_clk_mfp",
135062306a36Sopenharmony_ci};
135162306a36Sopenharmony_ci
135262306a36Sopenharmony_cistatic const char * const pwm0_groups[] = {
135362306a36Sopenharmony_ci	"rgmii_rxd2_mfp",
135462306a36Sopenharmony_ci	"rgmii_txen_mfp",
135562306a36Sopenharmony_ci	"ks_in2_mfp",
135662306a36Sopenharmony_ci	"sen0_pclk_mfp",
135762306a36Sopenharmony_ci};
135862306a36Sopenharmony_ci
135962306a36Sopenharmony_cistatic const char * const pwm1_groups[] = {
136062306a36Sopenharmony_ci	"rgmii_rxen_mfp",
136162306a36Sopenharmony_ci	"ks_in1_mfp",
136262306a36Sopenharmony_ci	"ks_in3_mfp",
136362306a36Sopenharmony_ci	"sens0_ckout_mfp",
136462306a36Sopenharmony_ci};
136562306a36Sopenharmony_ci
136662306a36Sopenharmony_cistatic const char * const pwm2_groups[] = {
136762306a36Sopenharmony_ci	"lcd0_d18_mfp",
136862306a36Sopenharmony_ci	"rgmii_rxd3_mfp",
136962306a36Sopenharmony_ci	"rgmii_rxd1_mfp",
137062306a36Sopenharmony_ci	"ks_out0_mfp",
137162306a36Sopenharmony_ci	"ks_out2_mfp",
137262306a36Sopenharmony_ci};
137362306a36Sopenharmony_ci
137462306a36Sopenharmony_cistatic const char * const pwm3_groups[] = {
137562306a36Sopenharmony_ci	"rgmii_rxd0_mfp",
137662306a36Sopenharmony_ci	"ks_out1_mfp",
137762306a36Sopenharmony_ci	"lcd0_d2_mfp",
137862306a36Sopenharmony_ci};
137962306a36Sopenharmony_ci
138062306a36Sopenharmony_cistatic const char * const pwm4_groups[] = {
138162306a36Sopenharmony_ci	"lcd0_d18_mfp",
138262306a36Sopenharmony_ci	"rgmii_txd01_mfp",
138362306a36Sopenharmony_ci	"rgmii_txd0_mfp",
138462306a36Sopenharmony_ci	"ks_in0_mfp",
138562306a36Sopenharmony_ci	"pcm1_in_mfp",
138662306a36Sopenharmony_ci	"nand_ceb3_mfp",
138762306a36Sopenharmony_ci};
138862306a36Sopenharmony_ci
138962306a36Sopenharmony_cistatic const char * const pwm5_groups[] = {
139062306a36Sopenharmony_ci	"rgmii_txd1_mfp",
139162306a36Sopenharmony_ci	"ks_in1_mfp",
139262306a36Sopenharmony_ci	"pcm1_clk_mfp",
139362306a36Sopenharmony_ci	"nand_ceb2_mfp",
139462306a36Sopenharmony_ci};
139562306a36Sopenharmony_ci
139662306a36Sopenharmony_cistatic const char * const p0_groups[] = {
139762306a36Sopenharmony_ci	"ks_in2_mfp",
139862306a36Sopenharmony_ci	"ks_in0_mfp",
139962306a36Sopenharmony_ci};
140062306a36Sopenharmony_ci
140162306a36Sopenharmony_cistatic const char * const sd0_groups[] = {
140262306a36Sopenharmony_ci	"ks_out0_mfp",
140362306a36Sopenharmony_ci	"ks_out1_mfp",
140462306a36Sopenharmony_ci	"ks_out2_mfp",
140562306a36Sopenharmony_ci	"lcd0_d2_mfp",
140662306a36Sopenharmony_ci	"dsi_dp3_mfp",
140762306a36Sopenharmony_ci	"dsi_dp0_mfp",
140862306a36Sopenharmony_ci	"sd0_d0_mfp",
140962306a36Sopenharmony_ci	"sd0_d1_mfp",
141062306a36Sopenharmony_ci	"sd0_d2_d3_mfp",
141162306a36Sopenharmony_ci	"sd1_d0_d3_mfp",
141262306a36Sopenharmony_ci	"sd0_cmd_mfp",
141362306a36Sopenharmony_ci	"sd0_clk_mfp",
141462306a36Sopenharmony_ci};
141562306a36Sopenharmony_ci
141662306a36Sopenharmony_cistatic const char * const sd1_groups[] = {
141762306a36Sopenharmony_ci	"dsi_dp2_mfp",
141862306a36Sopenharmony_ci	"mfp1_16_14_mfp",
141962306a36Sopenharmony_ci	"lcd0_d2_mfp",
142062306a36Sopenharmony_ci	"mfp1_16_14_d17_mfp",
142162306a36Sopenharmony_ci	"dsi_dp3_mfp",
142262306a36Sopenharmony_ci	"dsi_dn3_mfp",
142362306a36Sopenharmony_ci	"dsi_dnp1_cp_d2_mfp",
142462306a36Sopenharmony_ci	"dsi_dnp1_cp_d17_mfp",
142562306a36Sopenharmony_ci	"dsi_dn2_mfp",
142662306a36Sopenharmony_ci	"sd1_d0_d3_mfp",
142762306a36Sopenharmony_ci	"sd1_cmd_mfp",
142862306a36Sopenharmony_ci	"sd1_dummy",
142962306a36Sopenharmony_ci};
143062306a36Sopenharmony_ci
143162306a36Sopenharmony_cistatic const char * const sd2_groups[] = {
143262306a36Sopenharmony_ci	"dnand_data_wr_mfp",
143362306a36Sopenharmony_ci};
143462306a36Sopenharmony_ci
143562306a36Sopenharmony_cistatic const char * const i2c0_groups[] = {
143662306a36Sopenharmony_ci	"uart0_rx_mfp",
143762306a36Sopenharmony_ci	"uart0_tx_mfp",
143862306a36Sopenharmony_ci	"i2c0_mfp",
143962306a36Sopenharmony_ci};
144062306a36Sopenharmony_ci
144162306a36Sopenharmony_cistatic const char * const i2c1_groups[] = {
144262306a36Sopenharmony_ci	"i2c0_mfp",
144362306a36Sopenharmony_ci	"i2c1_dummy"
144462306a36Sopenharmony_ci};
144562306a36Sopenharmony_ci
144662306a36Sopenharmony_cistatic const char * const i2c2_groups[] = {
144762306a36Sopenharmony_ci	"i2c2_dummy"
144862306a36Sopenharmony_ci};
144962306a36Sopenharmony_ci
145062306a36Sopenharmony_cistatic const char * const i2c3_groups[] = {
145162306a36Sopenharmony_ci	"uart2_rx_tx_mfp",
145262306a36Sopenharmony_ci	"pcm1_sync_mfp",
145362306a36Sopenharmony_ci	"pcm1_out_mfp",
145462306a36Sopenharmony_ci};
145562306a36Sopenharmony_ci
145662306a36Sopenharmony_cistatic const char * const lvds_groups[] = {
145762306a36Sopenharmony_ci	"lvds_o_pn_mfp",
145862306a36Sopenharmony_ci	"lvds_ee_pn_mfp",
145962306a36Sopenharmony_ci	"lvds_e_pn_mfp",
146062306a36Sopenharmony_ci};
146162306a36Sopenharmony_ci
146262306a36Sopenharmony_cistatic const char * const bt_groups[] = {
146362306a36Sopenharmony_ci	"i2s_pcm1_mfp",
146462306a36Sopenharmony_ci	"i2s0_pcm0_mfp",
146562306a36Sopenharmony_ci	"i2s1_pcm0_mfp",
146662306a36Sopenharmony_ci	"ks_in2_mfp",
146762306a36Sopenharmony_ci	"ks_in1_mfp",
146862306a36Sopenharmony_ci	"ks_in0_mfp",
146962306a36Sopenharmony_ci	"ks_in3_mfp",
147062306a36Sopenharmony_ci	"ks_out0_mfp",
147162306a36Sopenharmony_ci	"ks_out1_mfp",
147262306a36Sopenharmony_ci	"ks_out2_mfp",
147362306a36Sopenharmony_ci	"lvds_o_pn_mfp",
147462306a36Sopenharmony_ci	"lvds_ee_pn_mfp",
147562306a36Sopenharmony_ci	"pcm1_in_mfp",
147662306a36Sopenharmony_ci	"pcm1_clk_mfp",
147762306a36Sopenharmony_ci	"pcm1_sync_mfp",
147862306a36Sopenharmony_ci	"pcm1_out_mfp",
147962306a36Sopenharmony_ci};
148062306a36Sopenharmony_ci
148162306a36Sopenharmony_cistatic const char * const lcd0_groups[] = {
148262306a36Sopenharmony_ci	"lcd0_d18_mfp",
148362306a36Sopenharmony_ci	"lcd0_d2_mfp",
148462306a36Sopenharmony_ci	"mfp1_16_14_d17_mfp",
148562306a36Sopenharmony_ci	"lvds_o_pn_mfp",
148662306a36Sopenharmony_ci	"dsi_dp3_mfp",
148762306a36Sopenharmony_ci	"dsi_dn3_mfp",
148862306a36Sopenharmony_ci	"lvds_ee_pn_mfp",
148962306a36Sopenharmony_ci	"dsi_dnp1_cp_d2_mfp",
149062306a36Sopenharmony_ci	"dsi_dnp1_cp_d17_mfp",
149162306a36Sopenharmony_ci	"lvds_e_pn_mfp",
149262306a36Sopenharmony_ci};
149362306a36Sopenharmony_ci
149462306a36Sopenharmony_ci
149562306a36Sopenharmony_cistatic const char * const usb30_groups[] = {
149662306a36Sopenharmony_ci	"ks_in1_mfp",
149762306a36Sopenharmony_ci};
149862306a36Sopenharmony_ci
149962306a36Sopenharmony_cistatic const char * const clko_25m_groups[] = {
150062306a36Sopenharmony_ci	"clko_25m_mfp",
150162306a36Sopenharmony_ci};
150262306a36Sopenharmony_ci
150362306a36Sopenharmony_cistatic const char * const mipi_csi_groups[] = {
150462306a36Sopenharmony_ci	"csi_cn_cp_mfp",
150562306a36Sopenharmony_ci	"csi_dn_dp_mfp",
150662306a36Sopenharmony_ci};
150762306a36Sopenharmony_ci
150862306a36Sopenharmony_cistatic const char * const dsi_groups[] = {
150962306a36Sopenharmony_ci	"dsi_dn0_mfp",
151062306a36Sopenharmony_ci	"dsi_dp2_mfp",
151162306a36Sopenharmony_ci	"dsi_dp3_mfp",
151262306a36Sopenharmony_ci	"dsi_dn3_mfp",
151362306a36Sopenharmony_ci	"dsi_dp0_mfp",
151462306a36Sopenharmony_ci	"dsi_dnp1_cp_d2_mfp",
151562306a36Sopenharmony_ci	"dsi_dnp1_cp_d17_mfp",
151662306a36Sopenharmony_ci	"dsi_dn2_mfp",
151762306a36Sopenharmony_ci	"dsi_dummy",
151862306a36Sopenharmony_ci};
151962306a36Sopenharmony_ci
152062306a36Sopenharmony_cistatic const char * const nand_groups[] = {
152162306a36Sopenharmony_ci	"dnand_data_wr_mfp",
152262306a36Sopenharmony_ci	"dnand_acle_ce0_mfp",
152362306a36Sopenharmony_ci	"nand_ceb2_mfp",
152462306a36Sopenharmony_ci	"nand_ceb3_mfp",
152562306a36Sopenharmony_ci	"nand_dummy",
152662306a36Sopenharmony_ci};
152762306a36Sopenharmony_ci
152862306a36Sopenharmony_cistatic const char * const spdif_groups[] = {
152962306a36Sopenharmony_ci	"uart0_tx_mfp",
153062306a36Sopenharmony_ci};
153162306a36Sopenharmony_ci
153262306a36Sopenharmony_cistatic const char * const sirq0_groups[] = {
153362306a36Sopenharmony_ci	"sirq0_dummy",
153462306a36Sopenharmony_ci};
153562306a36Sopenharmony_ci
153662306a36Sopenharmony_cistatic const char * const sirq1_groups[] = {
153762306a36Sopenharmony_ci	"sirq1_dummy",
153862306a36Sopenharmony_ci};
153962306a36Sopenharmony_ci
154062306a36Sopenharmony_cistatic const char * const sirq2_groups[] = {
154162306a36Sopenharmony_ci	"sirq2_dummy",
154262306a36Sopenharmony_ci};
154362306a36Sopenharmony_ci
154462306a36Sopenharmony_cistatic const struct owl_pinmux_func s700_functions[] = {
154562306a36Sopenharmony_ci	[S700_MUX_NOR] = FUNCTION(nor),
154662306a36Sopenharmony_ci	[S700_MUX_ETH_RGMII] = FUNCTION(eth_rmii),
154762306a36Sopenharmony_ci	[S700_MUX_ETH_SGMII] = FUNCTION(eth_smii),
154862306a36Sopenharmony_ci	[S700_MUX_SPI0] = FUNCTION(spi0),
154962306a36Sopenharmony_ci	[S700_MUX_SPI1] = FUNCTION(spi1),
155062306a36Sopenharmony_ci	[S700_MUX_SPI2] = FUNCTION(spi2),
155162306a36Sopenharmony_ci	[S700_MUX_SPI3] = FUNCTION(spi3),
155262306a36Sopenharmony_ci	[S700_MUX_SENS0] = FUNCTION(sens0),
155362306a36Sopenharmony_ci	[S700_MUX_SENS1] = FUNCTION(sens1),
155462306a36Sopenharmony_ci	[S700_MUX_UART0] = FUNCTION(uart0),
155562306a36Sopenharmony_ci	[S700_MUX_UART1] = FUNCTION(uart1),
155662306a36Sopenharmony_ci	[S700_MUX_UART2] = FUNCTION(uart2),
155762306a36Sopenharmony_ci	[S700_MUX_UART3] = FUNCTION(uart3),
155862306a36Sopenharmony_ci	[S700_MUX_UART4] = FUNCTION(uart4),
155962306a36Sopenharmony_ci	[S700_MUX_UART5] = FUNCTION(uart5),
156062306a36Sopenharmony_ci	[S700_MUX_UART6] = FUNCTION(uart6),
156162306a36Sopenharmony_ci	[S700_MUX_I2S0] = FUNCTION(i2s0),
156262306a36Sopenharmony_ci	[S700_MUX_I2S1] = FUNCTION(i2s1),
156362306a36Sopenharmony_ci	[S700_MUX_PCM1] = FUNCTION(pcm1),
156462306a36Sopenharmony_ci	[S700_MUX_PCM0] = FUNCTION(pcm0),
156562306a36Sopenharmony_ci	[S700_MUX_KS] = FUNCTION(ks),
156662306a36Sopenharmony_ci	[S700_MUX_JTAG] = FUNCTION(jtag),
156762306a36Sopenharmony_ci	[S700_MUX_PWM0] = FUNCTION(pwm0),
156862306a36Sopenharmony_ci	[S700_MUX_PWM1] = FUNCTION(pwm1),
156962306a36Sopenharmony_ci	[S700_MUX_PWM2] = FUNCTION(pwm2),
157062306a36Sopenharmony_ci	[S700_MUX_PWM3] = FUNCTION(pwm3),
157162306a36Sopenharmony_ci	[S700_MUX_PWM4] = FUNCTION(pwm4),
157262306a36Sopenharmony_ci	[S700_MUX_PWM5] = FUNCTION(pwm5),
157362306a36Sopenharmony_ci	[S700_MUX_P0] = FUNCTION(p0),
157462306a36Sopenharmony_ci	[S700_MUX_SD0] = FUNCTION(sd0),
157562306a36Sopenharmony_ci	[S700_MUX_SD1] = FUNCTION(sd1),
157662306a36Sopenharmony_ci	[S700_MUX_SD2] = FUNCTION(sd2),
157762306a36Sopenharmony_ci	[S700_MUX_I2C0] = FUNCTION(i2c0),
157862306a36Sopenharmony_ci	[S700_MUX_I2C1] = FUNCTION(i2c1),
157962306a36Sopenharmony_ci	[S700_MUX_I2C2] = FUNCTION(i2c2),
158062306a36Sopenharmony_ci	[S700_MUX_I2C3] = FUNCTION(i2c3),
158162306a36Sopenharmony_ci	[S700_MUX_DSI] = FUNCTION(dsi),
158262306a36Sopenharmony_ci	[S700_MUX_LVDS] = FUNCTION(lvds),
158362306a36Sopenharmony_ci	[S700_MUX_USB30] = FUNCTION(usb30),
158462306a36Sopenharmony_ci	[S700_MUX_CLKO_25M] = FUNCTION(clko_25m),
158562306a36Sopenharmony_ci	[S700_MUX_MIPI_CSI] = FUNCTION(mipi_csi),
158662306a36Sopenharmony_ci	[S700_MUX_NAND] = FUNCTION(nand),
158762306a36Sopenharmony_ci	[S700_MUX_SPDIF] = FUNCTION(spdif),
158862306a36Sopenharmony_ci	[S700_MUX_SIRQ0] = FUNCTION(sirq0),
158962306a36Sopenharmony_ci	[S700_MUX_SIRQ1] = FUNCTION(sirq1),
159062306a36Sopenharmony_ci	[S700_MUX_SIRQ2] = FUNCTION(sirq2),
159162306a36Sopenharmony_ci	[S700_MUX_BT] = FUNCTION(bt),
159262306a36Sopenharmony_ci	[S700_MUX_LCD0] = FUNCTION(lcd0),
159362306a36Sopenharmony_ci};
159462306a36Sopenharmony_ci
159562306a36Sopenharmony_ci/* PAD_ST0 */
159662306a36Sopenharmony_cistatic PAD_ST_CONF(UART2_TX, 0, 31, 1);
159762306a36Sopenharmony_cistatic PAD_ST_CONF(I2C0_SDATA, 0, 30, 1);
159862306a36Sopenharmony_cistatic PAD_ST_CONF(UART0_RX, 0, 29, 1);
159962306a36Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK1, 0, 23, 1);
160062306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_REF_CLK, 0, 22, 1);
160162306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_TXEN, 0, 21, 1);
160262306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD0, 0, 20, 1);
160362306a36Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK1, 0, 19, 1);
160462306a36Sopenharmony_cistatic PAD_ST_CONF(DSI_DP0, 0, 16, 1);
160562306a36Sopenharmony_cistatic PAD_ST_CONF(DSI_DN0, 0, 15, 1);
160662306a36Sopenharmony_cistatic PAD_ST_CONF(UART0_TX, 0, 14, 1);
160762306a36Sopenharmony_cistatic PAD_ST_CONF(SD0_CLK, 0, 12, 1);
160862306a36Sopenharmony_cistatic PAD_ST_CONF(KS_IN0, 0, 11, 1);
160962306a36Sopenharmony_cistatic PAD_ST_CONF(SENSOR0_PCLK, 0, 9, 1);
161062306a36Sopenharmony_cistatic PAD_ST_CONF(I2C0_SCLK, 0, 7, 1);
161162306a36Sopenharmony_cistatic PAD_ST_CONF(KS_OUT0, 0, 6, 1);
161262306a36Sopenharmony_cistatic PAD_ST_CONF(KS_OUT1, 0, 5, 1);
161362306a36Sopenharmony_cistatic PAD_ST_CONF(KS_OUT2, 0, 4, 1);
161462306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD3, 0, 3, 1);
161562306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD2, 0, 2, 1);
161662306a36Sopenharmony_ci
161762306a36Sopenharmony_ci/* PAD_ST1 */
161862306a36Sopenharmony_cistatic PAD_ST_CONF(DSI_DP2, 1, 31, 1);
161962306a36Sopenharmony_cistatic PAD_ST_CONF(DSI_DN2, 1, 30, 1);
162062306a36Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK0, 1, 29, 1);
162162306a36Sopenharmony_cistatic PAD_ST_CONF(UART3_CTSB, 1, 27, 1);
162262306a36Sopenharmony_cistatic PAD_ST_CONF(UART3_RTSB, 1, 26, 1);
162362306a36Sopenharmony_cistatic PAD_ST_CONF(UART3_RX, 1, 25, 1);
162462306a36Sopenharmony_cistatic PAD_ST_CONF(UART2_RTSB, 1, 24, 1);
162562306a36Sopenharmony_cistatic PAD_ST_CONF(UART2_CTSB, 1, 23, 1);
162662306a36Sopenharmony_cistatic PAD_ST_CONF(UART2_RX, 1, 22, 1);
162762306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD0, 1, 21, 1);
162862306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD1, 1, 20, 1);
162962306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_CRS_DV, 1, 19, 1);
163062306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_RXER, 1, 18, 1);
163162306a36Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD1, 1, 17, 1);
163262306a36Sopenharmony_cistatic PAD_ST_CONF(LVDS_OAP, 1, 12, 1);
163362306a36Sopenharmony_cistatic PAD_ST_CONF(PCM1_CLK, 1, 11, 1);
163462306a36Sopenharmony_cistatic PAD_ST_CONF(PCM1_IN, 1, 10, 1);
163562306a36Sopenharmony_cistatic PAD_ST_CONF(PCM1_SYNC, 1, 9, 1);
163662306a36Sopenharmony_cistatic PAD_ST_CONF(I2C1_SCLK, 1, 8, 1);
163762306a36Sopenharmony_cistatic PAD_ST_CONF(I2C1_SDATA, 1, 7, 1);
163862306a36Sopenharmony_cistatic PAD_ST_CONF(I2C2_SCLK, 1, 6, 1);
163962306a36Sopenharmony_cistatic PAD_ST_CONF(I2C2_SDATA, 1, 5, 1);
164062306a36Sopenharmony_ci
164162306a36Sopenharmony_cistatic PAD_ST_CONF(SPI0_MISO, 1, 3, 1);
164262306a36Sopenharmony_cistatic PAD_ST_CONF(SPI0_SS, 1, 2, 1);
164362306a36Sopenharmony_cistatic PAD_ST_CONF(I2S_BCLK0, 1, 1, 1);
164462306a36Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK0, 1, 0, 1);
164562306a36Sopenharmony_ci
164662306a36Sopenharmony_ci/* PAD_PULLCTL0 */
164762306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_SYNC, 0, 30, 1);
164862306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_OUT, 0, 29, 1);
164962306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT2, 0, 28, 1);
165062306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(LCD0_D2, 0, 27, 1);
165162306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(DSI_DN3, 0, 26, 1);
165262306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_RXER, 0, 16, 1);
165362306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ0, 0, 14, 2);
165462306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ1, 0, 12, 2);
165562306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ2, 0, 10, 2);
165662306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SDATA, 0, 9, 1);
165762306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SCLK, 0, 8, 1);
165862306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN0, 0, 7, 1);
165962306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN1, 0, 6, 1);
166062306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN2, 0, 5, 1);
166162306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN3, 0, 4, 1);
166262306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT0, 0, 2, 1);
166362306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT1, 0, 1, 1);
166462306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(DSI_DP1, 0, 0, 1);
166562306a36Sopenharmony_ci
166662306a36Sopenharmony_ci/* PAD_PULLCTL1 */
166762306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D0, 1, 17, 1);
166862306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D1, 1, 16, 1);
166962306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D2, 1, 15, 1);
167062306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D3, 1, 14, 1);
167162306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CMD, 1, 13, 1);
167262306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CLK, 1, 12, 1);
167362306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_RX, 1, 2, 1);
167462306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_TX, 1, 1, 1);
167562306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(CLKO_25M, 1, 0, 1);
167662306a36Sopenharmony_ci
167762306a36Sopenharmony_ci/* PAD_PULLCTL2 */
167862306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_TXD2, 2, 18, 1);
167962306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_TXD3, 2, 17, 1);
168062306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_SS, 2, 16, 1);
168162306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_MISO, 2, 15, 1);
168262306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SDATA, 2, 10, 1);
168362306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SCLK, 2, 9, 1);
168462306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SDATA, 2, 8, 1);
168562306a36Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SCLK, 2, 7, 1);
168662306a36Sopenharmony_ci
168762306a36Sopenharmony_ci/* Pad info table for the pinmux subsystem */
168862306a36Sopenharmony_cistatic const struct owl_padinfo s700_padinfo[NUM_PADS] = {
168962306a36Sopenharmony_ci	[ETH_TXD0] = PAD_INFO_ST(ETH_TXD0),
169062306a36Sopenharmony_ci	[ETH_TXD1] = PAD_INFO_ST(ETH_TXD1),
169162306a36Sopenharmony_ci	[ETH_TXEN] = PAD_INFO_ST(ETH_TXEN),
169262306a36Sopenharmony_ci	[ETH_RXER] = PAD_INFO_PULLCTL_ST(ETH_RXER),
169362306a36Sopenharmony_ci	[ETH_CRS_DV] = PAD_INFO_ST(ETH_CRS_DV),
169462306a36Sopenharmony_ci	[ETH_RXD1] = PAD_INFO_ST(ETH_RXD1),
169562306a36Sopenharmony_ci	[ETH_RXD0] = PAD_INFO_ST(ETH_RXD0),
169662306a36Sopenharmony_ci	[ETH_REF_CLK] = PAD_INFO_ST(ETH_REF_CLK),
169762306a36Sopenharmony_ci	[ETH_MDC] = PAD_INFO(ETH_MDC),
169862306a36Sopenharmony_ci	[ETH_MDIO] = PAD_INFO(ETH_MDIO),
169962306a36Sopenharmony_ci	[SIRQ0] = PAD_INFO_PULLCTL(SIRQ0),
170062306a36Sopenharmony_ci	[SIRQ1] = PAD_INFO_PULLCTL(SIRQ1),
170162306a36Sopenharmony_ci	[SIRQ2] = PAD_INFO_PULLCTL(SIRQ2),
170262306a36Sopenharmony_ci	[I2S_D0] = PAD_INFO(I2S_D0),
170362306a36Sopenharmony_ci	[I2S_BCLK0] = PAD_INFO_ST(I2S_BCLK0),
170462306a36Sopenharmony_ci	[I2S_LRCLK0] = PAD_INFO_ST(I2S_LRCLK0),
170562306a36Sopenharmony_ci	[I2S_MCLK0] = PAD_INFO_ST(I2S_MCLK0),
170662306a36Sopenharmony_ci	[I2S_D1] = PAD_INFO(I2S_D1),
170762306a36Sopenharmony_ci	[I2S_BCLK1] = PAD_INFO(I2S_BCLK1),
170862306a36Sopenharmony_ci	[I2S_LRCLK1] = PAD_INFO_ST(I2S_LRCLK1),
170962306a36Sopenharmony_ci	[I2S_MCLK1] = PAD_INFO_ST(I2S_MCLK1),
171062306a36Sopenharmony_ci	[KS_IN0] = PAD_INFO_PULLCTL_ST(KS_IN0),
171162306a36Sopenharmony_ci	[KS_IN1] = PAD_INFO_PULLCTL(KS_IN1),
171262306a36Sopenharmony_ci	[KS_IN2] = PAD_INFO_PULLCTL(KS_IN2),
171362306a36Sopenharmony_ci	[KS_IN3] = PAD_INFO_PULLCTL(KS_IN3),
171462306a36Sopenharmony_ci	[KS_OUT0] = PAD_INFO_PULLCTL_ST(KS_OUT0),
171562306a36Sopenharmony_ci	[KS_OUT1] = PAD_INFO_PULLCTL_ST(KS_OUT1),
171662306a36Sopenharmony_ci	[KS_OUT2] = PAD_INFO_PULLCTL_ST(KS_OUT2),
171762306a36Sopenharmony_ci	[LVDS_OEP] = PAD_INFO(LVDS_OEP),
171862306a36Sopenharmony_ci	[LVDS_OEN] = PAD_INFO(LVDS_OEN),
171962306a36Sopenharmony_ci	[LVDS_ODP] = PAD_INFO(LVDS_ODP),
172062306a36Sopenharmony_ci	[LVDS_ODN] = PAD_INFO(LVDS_ODN),
172162306a36Sopenharmony_ci	[LVDS_OCP] = PAD_INFO(LVDS_OCP),
172262306a36Sopenharmony_ci	[LVDS_OCN] = PAD_INFO(LVDS_OCN),
172362306a36Sopenharmony_ci	[LVDS_OBP] = PAD_INFO(LVDS_OBP),
172462306a36Sopenharmony_ci	[LVDS_OBN] = PAD_INFO(LVDS_OBN),
172562306a36Sopenharmony_ci	[LVDS_OAP] = PAD_INFO_ST(LVDS_OAP),
172662306a36Sopenharmony_ci	[LVDS_OAN] = PAD_INFO(LVDS_OAN),
172762306a36Sopenharmony_ci	[LVDS_EEP] = PAD_INFO(LVDS_EEP),
172862306a36Sopenharmony_ci	[LVDS_EEN] = PAD_INFO(LVDS_EEN),
172962306a36Sopenharmony_ci	[LVDS_EDP] = PAD_INFO(LVDS_EDP),
173062306a36Sopenharmony_ci	[LVDS_EDN] = PAD_INFO(LVDS_EDN),
173162306a36Sopenharmony_ci	[LVDS_ECP] = PAD_INFO(LVDS_ECP),
173262306a36Sopenharmony_ci	[LVDS_ECN] = PAD_INFO(LVDS_ECN),
173362306a36Sopenharmony_ci	[LVDS_EBP] = PAD_INFO(LVDS_EBP),
173462306a36Sopenharmony_ci	[LVDS_EBN] = PAD_INFO(LVDS_EBN),
173562306a36Sopenharmony_ci	[LVDS_EAP] = PAD_INFO(LVDS_EAP),
173662306a36Sopenharmony_ci	[LVDS_EAN] = PAD_INFO(LVDS_EAN),
173762306a36Sopenharmony_ci	[LCD0_D18] = PAD_INFO(LCD0_D18),
173862306a36Sopenharmony_ci	[LCD0_D2] = PAD_INFO_PULLCTL(LCD0_D2),
173962306a36Sopenharmony_ci	[DSI_DP3] = PAD_INFO(DSI_DP3),
174062306a36Sopenharmony_ci	[DSI_DN3] = PAD_INFO_PULLCTL(DSI_DN3),
174162306a36Sopenharmony_ci	[DSI_DP1] = PAD_INFO_PULLCTL(DSI_DP1),
174262306a36Sopenharmony_ci	[DSI_DN1] = PAD_INFO(DSI_DN1),
174362306a36Sopenharmony_ci	[DSI_DP0] = PAD_INFO_ST(DSI_DP0),
174462306a36Sopenharmony_ci	[DSI_DN0] = PAD_INFO_ST(DSI_DN0),
174562306a36Sopenharmony_ci	[DSI_DP2] = PAD_INFO_ST(DSI_DP2),
174662306a36Sopenharmony_ci	[DSI_DN2] = PAD_INFO_ST(DSI_DN2),
174762306a36Sopenharmony_ci	[SD0_D0] = PAD_INFO_PULLCTL(SD0_D0),
174862306a36Sopenharmony_ci	[SD0_D1] = PAD_INFO_PULLCTL(SD0_D1),
174962306a36Sopenharmony_ci	[SD0_D2] = PAD_INFO_PULLCTL(SD0_D2),
175062306a36Sopenharmony_ci	[SD0_D3] = PAD_INFO_PULLCTL(SD0_D3),
175162306a36Sopenharmony_ci	[SD0_CMD] = PAD_INFO_PULLCTL(SD0_CMD),
175262306a36Sopenharmony_ci	[SD0_CLK] = PAD_INFO_PULLCTL_ST(SD0_CLK),
175362306a36Sopenharmony_ci	[SD1_CLK] = PAD_INFO(SD1_CLK),
175462306a36Sopenharmony_ci	[SPI0_SS] = PAD_INFO_PULLCTL_ST(SPI0_SS),
175562306a36Sopenharmony_ci	[SPI0_MISO] = PAD_INFO_PULLCTL_ST(SPI0_MISO),
175662306a36Sopenharmony_ci	[UART0_RX] = PAD_INFO_PULLCTL_ST(UART0_RX),
175762306a36Sopenharmony_ci	[UART0_TX] = PAD_INFO_PULLCTL_ST(UART0_TX),
175862306a36Sopenharmony_ci	[I2C0_SCLK] = PAD_INFO_PULLCTL_ST(I2C0_SCLK),
175962306a36Sopenharmony_ci	[I2C0_SDATA] = PAD_INFO_PULLCTL_ST(I2C0_SDATA),
176062306a36Sopenharmony_ci	[SENSOR0_PCLK] = PAD_INFO_ST(SENSOR0_PCLK),
176162306a36Sopenharmony_ci	[SENSOR0_CKOUT] = PAD_INFO(SENSOR0_CKOUT),
176262306a36Sopenharmony_ci	[DNAND_ALE] = PAD_INFO(DNAND_ALE),
176362306a36Sopenharmony_ci	[DNAND_CLE] = PAD_INFO(DNAND_CLE),
176462306a36Sopenharmony_ci	[DNAND_CEB0] = PAD_INFO(DNAND_CEB0),
176562306a36Sopenharmony_ci	[DNAND_CEB1] = PAD_INFO(DNAND_CEB1),
176662306a36Sopenharmony_ci	[DNAND_CEB2] = PAD_INFO(DNAND_CEB2),
176762306a36Sopenharmony_ci	[DNAND_CEB3] = PAD_INFO(DNAND_CEB3),
176862306a36Sopenharmony_ci	[UART2_RX] = PAD_INFO_ST(UART2_RX),
176962306a36Sopenharmony_ci	[UART2_TX] = PAD_INFO_ST(UART2_TX),
177062306a36Sopenharmony_ci	[UART2_RTSB] = PAD_INFO_ST(UART2_RTSB),
177162306a36Sopenharmony_ci	[UART2_CTSB] = PAD_INFO_ST(UART2_CTSB),
177262306a36Sopenharmony_ci	[UART3_RX] = PAD_INFO_ST(UART3_RX),
177362306a36Sopenharmony_ci	[UART3_TX] = PAD_INFO(UART3_TX),
177462306a36Sopenharmony_ci	[UART3_RTSB] = PAD_INFO_ST(UART3_RTSB),
177562306a36Sopenharmony_ci	[UART3_CTSB] = PAD_INFO_ST(UART3_CTSB),
177662306a36Sopenharmony_ci	[PCM1_IN] = PAD_INFO_ST(PCM1_IN),
177762306a36Sopenharmony_ci	[PCM1_CLK] = PAD_INFO_ST(PCM1_CLK),
177862306a36Sopenharmony_ci	[PCM1_SYNC] = PAD_INFO_PULLCTL_ST(PCM1_SYNC),
177962306a36Sopenharmony_ci	[PCM1_OUT] = PAD_INFO_PULLCTL(PCM1_OUT),
178062306a36Sopenharmony_ci	[I2C1_SCLK] = PAD_INFO_PULLCTL_ST(I2C1_SCLK),
178162306a36Sopenharmony_ci	[I2C1_SDATA] = PAD_INFO_PULLCTL_ST(I2C1_SDATA),
178262306a36Sopenharmony_ci	[I2C2_SCLK] = PAD_INFO_PULLCTL_ST(I2C2_SCLK),
178362306a36Sopenharmony_ci	[I2C2_SDATA] = PAD_INFO_PULLCTL_ST(I2C2_SDATA),
178462306a36Sopenharmony_ci	[CSI_DN0] = PAD_INFO(CSI_DN0),
178562306a36Sopenharmony_ci	[CSI_DP0] = PAD_INFO(CSI_DP0),
178662306a36Sopenharmony_ci	[CSI_DN1] = PAD_INFO(CSI_DN1),
178762306a36Sopenharmony_ci	[CSI_DP1] = PAD_INFO(CSI_DP1),
178862306a36Sopenharmony_ci	[CSI_CN] = PAD_INFO(CSI_CN),
178962306a36Sopenharmony_ci	[CSI_CP] = PAD_INFO(CSI_CP),
179062306a36Sopenharmony_ci	[CSI_DN2] = PAD_INFO(CSI_DN2),
179162306a36Sopenharmony_ci	[CSI_DP2] = PAD_INFO(CSI_DP2),
179262306a36Sopenharmony_ci	[CSI_DN3] = PAD_INFO(CSI_DN3),
179362306a36Sopenharmony_ci	[CSI_DP3] = PAD_INFO(CSI_DP3),
179462306a36Sopenharmony_ci	[DNAND_WRB] = PAD_INFO(DNAND_WRB),
179562306a36Sopenharmony_ci	[DNAND_RDB] = PAD_INFO(DNAND_RDB),
179662306a36Sopenharmony_ci	[DNAND_RB0] = PAD_INFO(DNAND_RB0),
179762306a36Sopenharmony_ci	[PORB] = PAD_INFO(PORB),
179862306a36Sopenharmony_ci	[CLKO_25M] = PAD_INFO_PULLCTL(CLKO_25M),
179962306a36Sopenharmony_ci	[BSEL] = PAD_INFO(BSEL),
180062306a36Sopenharmony_ci	[PKG0] = PAD_INFO(PKG0),
180162306a36Sopenharmony_ci	[PKG1] = PAD_INFO(PKG1),
180262306a36Sopenharmony_ci	[PKG2] = PAD_INFO(PKG2),
180362306a36Sopenharmony_ci	[PKG3] = PAD_INFO(PKG3),
180462306a36Sopenharmony_ci	[ETH_TXD2] = PAD_INFO_PULLCTL_ST(ETH_TXD2),
180562306a36Sopenharmony_ci	[ETH_TXD3] = PAD_INFO_PULLCTL_ST(ETH_TXD3),
180662306a36Sopenharmony_ci};
180762306a36Sopenharmony_ci
180862306a36Sopenharmony_cistatic const struct owl_gpio_port s700_gpio_ports[] = {
180962306a36Sopenharmony_ci	OWL_GPIO_PORT(A, 0x0000, 32, 0x0, 0x4, 0x8, 0x204, 0x208, 0x20C, 0x230, 0),
181062306a36Sopenharmony_ci	OWL_GPIO_PORT(B, 0x000C, 32, 0x0, 0x4, 0x8, 0x204, 0x210, 0x214, 0x238, 1),
181162306a36Sopenharmony_ci	OWL_GPIO_PORT(C, 0x0018, 32, 0x0, 0x4, 0x8, 0x204, 0x218, 0x21C, 0x240, 2),
181262306a36Sopenharmony_ci	OWL_GPIO_PORT(D, 0x0024, 32, 0x0, 0x4, 0x8, 0x204, 0x220, 0x224, 0x248, 3),
181362306a36Sopenharmony_ci	/* 0x24C (INTC_GPIOD_TYPE1) used to tweak the driver to handle generic */
181462306a36Sopenharmony_ci	OWL_GPIO_PORT(E, 0x0030, 8, 0x0, 0x4, 0x8, 0x204, 0x228, 0x22C, 0x24C, 4),
181562306a36Sopenharmony_ci};
181662306a36Sopenharmony_ci
181762306a36Sopenharmony_cienum s700_pinconf_pull {
181862306a36Sopenharmony_ci	OWL_PINCONF_PULL_DOWN,
181962306a36Sopenharmony_ci	OWL_PINCONF_PULL_UP,
182062306a36Sopenharmony_ci};
182162306a36Sopenharmony_ci
182262306a36Sopenharmony_cistatic int s700_pad_pinconf_arg2val(const struct owl_padinfo *info,
182362306a36Sopenharmony_ci				unsigned int param,
182462306a36Sopenharmony_ci				u32 *arg)
182562306a36Sopenharmony_ci{
182662306a36Sopenharmony_ci	switch (param) {
182762306a36Sopenharmony_ci	case PIN_CONFIG_BIAS_PULL_DOWN:
182862306a36Sopenharmony_ci		*arg = OWL_PINCONF_PULL_DOWN;
182962306a36Sopenharmony_ci		break;
183062306a36Sopenharmony_ci	case PIN_CONFIG_BIAS_PULL_UP:
183162306a36Sopenharmony_ci		*arg = OWL_PINCONF_PULL_UP;
183262306a36Sopenharmony_ci		break;
183362306a36Sopenharmony_ci	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
183462306a36Sopenharmony_ci		*arg = (*arg >= 1 ? 1 : 0);
183562306a36Sopenharmony_ci		break;
183662306a36Sopenharmony_ci	default:
183762306a36Sopenharmony_ci		return -ENOTSUPP;
183862306a36Sopenharmony_ci	}
183962306a36Sopenharmony_ci
184062306a36Sopenharmony_ci	return 0;
184162306a36Sopenharmony_ci}
184262306a36Sopenharmony_ci
184362306a36Sopenharmony_cistatic int s700_pad_pinconf_val2arg(const struct owl_padinfo *padinfo,
184462306a36Sopenharmony_ci				unsigned int param,
184562306a36Sopenharmony_ci				u32 *arg)
184662306a36Sopenharmony_ci{
184762306a36Sopenharmony_ci	switch (param) {
184862306a36Sopenharmony_ci	case PIN_CONFIG_BIAS_PULL_DOWN:
184962306a36Sopenharmony_ci		*arg = *arg == OWL_PINCONF_PULL_DOWN;
185062306a36Sopenharmony_ci		break;
185162306a36Sopenharmony_ci	case PIN_CONFIG_BIAS_PULL_UP:
185262306a36Sopenharmony_ci		*arg = *arg == OWL_PINCONF_PULL_UP;
185362306a36Sopenharmony_ci		break;
185462306a36Sopenharmony_ci	case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
185562306a36Sopenharmony_ci		*arg = *arg == 1;
185662306a36Sopenharmony_ci		break;
185762306a36Sopenharmony_ci	default:
185862306a36Sopenharmony_ci		return -ENOTSUPP;
185962306a36Sopenharmony_ci	}
186062306a36Sopenharmony_ci
186162306a36Sopenharmony_ci	return 0;
186262306a36Sopenharmony_ci}
186362306a36Sopenharmony_ci
186462306a36Sopenharmony_cistatic struct owl_pinctrl_soc_data s700_pinctrl_data = {
186562306a36Sopenharmony_ci	.padinfo = s700_padinfo,
186662306a36Sopenharmony_ci	.pins = (const struct pinctrl_pin_desc *)s700_pads,
186762306a36Sopenharmony_ci	.npins = ARRAY_SIZE(s700_pads),
186862306a36Sopenharmony_ci	.functions = s700_functions,
186962306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(s700_functions),
187062306a36Sopenharmony_ci	.groups = s700_groups,
187162306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(s700_groups),
187262306a36Sopenharmony_ci	.ngpios = NUM_GPIOS,
187362306a36Sopenharmony_ci	.ports = s700_gpio_ports,
187462306a36Sopenharmony_ci	.nports = ARRAY_SIZE(s700_gpio_ports),
187562306a36Sopenharmony_ci	.padctl_arg2val = s700_pad_pinconf_arg2val,
187662306a36Sopenharmony_ci	.padctl_val2arg = s700_pad_pinconf_val2arg,
187762306a36Sopenharmony_ci};
187862306a36Sopenharmony_ci
187962306a36Sopenharmony_cistatic int s700_pinctrl_probe(struct platform_device *pdev)
188062306a36Sopenharmony_ci{
188162306a36Sopenharmony_ci	return owl_pinctrl_probe(pdev, &s700_pinctrl_data);
188262306a36Sopenharmony_ci}
188362306a36Sopenharmony_ci
188462306a36Sopenharmony_cistatic const struct of_device_id s700_pinctrl_of_match[] = {
188562306a36Sopenharmony_ci	{ .compatible = "actions,s700-pinctrl", },
188662306a36Sopenharmony_ci	{}
188762306a36Sopenharmony_ci};
188862306a36Sopenharmony_ci
188962306a36Sopenharmony_cistatic struct platform_driver s700_pinctrl_driver = {
189062306a36Sopenharmony_ci	.probe = s700_pinctrl_probe,
189162306a36Sopenharmony_ci	.driver = {
189262306a36Sopenharmony_ci		.name = "pinctrl-s700",
189362306a36Sopenharmony_ci		.of_match_table = of_match_ptr(s700_pinctrl_of_match),
189462306a36Sopenharmony_ci	},
189562306a36Sopenharmony_ci};
189662306a36Sopenharmony_ci
189762306a36Sopenharmony_cistatic int __init s700_pinctrl_init(void)
189862306a36Sopenharmony_ci{
189962306a36Sopenharmony_ci	return platform_driver_register(&s700_pinctrl_driver);
190062306a36Sopenharmony_ci}
190162306a36Sopenharmony_ciarch_initcall(s700_pinctrl_init);
190262306a36Sopenharmony_ci
190362306a36Sopenharmony_cistatic void __exit s700_pinctrl_exit(void)
190462306a36Sopenharmony_ci{
190562306a36Sopenharmony_ci	platform_driver_unregister(&s700_pinctrl_driver);
190662306a36Sopenharmony_ci}
190762306a36Sopenharmony_cimodule_exit(s700_pinctrl_exit);
190862306a36Sopenharmony_ci
190962306a36Sopenharmony_ciMODULE_AUTHOR("Actions Semi Inc.");
191062306a36Sopenharmony_ciMODULE_DESCRIPTION("Actions Semi S700 Soc Pinctrl Driver");
1911