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