18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Actions Semi Owl S700 Pinctrl driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2014 Actions Semi Inc. 68c2ecf20Sopenharmony_ci * Author: David Liu <liuwei@actions-semi.com> 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * Author: Pathiban Nallathambi <pn@denx.de> 98c2ecf20Sopenharmony_ci * Author: Saravanan Sekar <sravanhome@gmail.com> 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/module.h> 138c2ecf20Sopenharmony_ci#include <linux/of.h> 148c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 158c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinconf-generic.h> 168c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h> 178c2ecf20Sopenharmony_ci#include "pinctrl-owl.h" 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/* Pinctrl registers offset */ 208c2ecf20Sopenharmony_ci#define MFCTL0 (0x0040) 218c2ecf20Sopenharmony_ci#define MFCTL1 (0x0044) 228c2ecf20Sopenharmony_ci#define MFCTL2 (0x0048) 238c2ecf20Sopenharmony_ci#define MFCTL3 (0x004C) 248c2ecf20Sopenharmony_ci#define PAD_PULLCTL0 (0x0060) 258c2ecf20Sopenharmony_ci#define PAD_PULLCTL1 (0x0064) 268c2ecf20Sopenharmony_ci#define PAD_PULLCTL2 (0x0068) 278c2ecf20Sopenharmony_ci#define PAD_ST0 (0x006C) 288c2ecf20Sopenharmony_ci#define PAD_ST1 (0x0070) 298c2ecf20Sopenharmony_ci#define PAD_CTL (0x0074) 308c2ecf20Sopenharmony_ci#define PAD_DRV0 (0x0080) 318c2ecf20Sopenharmony_ci#define PAD_DRV1 (0x0084) 328c2ecf20Sopenharmony_ci#define PAD_DRV2 (0x0088) 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci/* 358c2ecf20Sopenharmony_ci * Most pins affected by the pinmux can also be GPIOs. Define these first. 368c2ecf20Sopenharmony_ci * These must match how the GPIO driver names/numbers its pins. 378c2ecf20Sopenharmony_ci */ 388c2ecf20Sopenharmony_ci#define _GPIOA(offset) (offset) 398c2ecf20Sopenharmony_ci#define _GPIOB(offset) (32 + (offset)) 408c2ecf20Sopenharmony_ci#define _GPIOC(offset) (64 + (offset)) 418c2ecf20Sopenharmony_ci#define _GPIOD(offset) (96 + (offset)) 428c2ecf20Sopenharmony_ci#define _GPIOE(offset) (128 + (offset)) 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci/* All non-GPIO pins follow */ 458c2ecf20Sopenharmony_ci#define NUM_GPIOS (_GPIOE(7) + 1) 468c2ecf20Sopenharmony_ci#define _PIN(offset) (NUM_GPIOS + (offset)) 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci/* Ethernet MAC */ 498c2ecf20Sopenharmony_ci#define ETH_TXD0 _GPIOA(14) 508c2ecf20Sopenharmony_ci#define ETH_TXD1 _GPIOA(15) 518c2ecf20Sopenharmony_ci#define ETH_TXD2 _GPIOE(4) 528c2ecf20Sopenharmony_ci#define ETH_TXD3 _GPIOE(5) 538c2ecf20Sopenharmony_ci#define ETH_TXEN _GPIOA(16) 548c2ecf20Sopenharmony_ci#define ETH_RXER _GPIOA(17) 558c2ecf20Sopenharmony_ci#define ETH_CRS_DV _GPIOA(18) 568c2ecf20Sopenharmony_ci#define ETH_RXD1 _GPIOA(19) 578c2ecf20Sopenharmony_ci#define ETH_RXD0 _GPIOA(20) 588c2ecf20Sopenharmony_ci#define ETH_RXD2 _GPIOE(6) 598c2ecf20Sopenharmony_ci#define ETH_RXD3 _GPIOE(7) 608c2ecf20Sopenharmony_ci#define ETH_REF_CLK _GPIOA(21) 618c2ecf20Sopenharmony_ci#define ETH_MDC _GPIOA(22) 628c2ecf20Sopenharmony_ci#define ETH_MDIO _GPIOA(23) 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci/* SIRQ */ 658c2ecf20Sopenharmony_ci#define SIRQ0 _GPIOA(24) 668c2ecf20Sopenharmony_ci#define SIRQ1 _GPIOA(25) 678c2ecf20Sopenharmony_ci#define SIRQ2 _GPIOA(26) 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci/* I2S */ 708c2ecf20Sopenharmony_ci#define I2S_D0 _GPIOA(27) 718c2ecf20Sopenharmony_ci#define I2S_BCLK0 _GPIOA(28) 728c2ecf20Sopenharmony_ci#define I2S_LRCLK0 _GPIOA(29) 738c2ecf20Sopenharmony_ci#define I2S_MCLK0 _GPIOA(30) 748c2ecf20Sopenharmony_ci#define I2S_D1 _GPIOA(31) 758c2ecf20Sopenharmony_ci#define I2S_BCLK1 _GPIOB(0) 768c2ecf20Sopenharmony_ci#define I2S_LRCLK1 _GPIOB(1) 778c2ecf20Sopenharmony_ci#define I2S_MCLK1 _GPIOB(2) 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci/* PCM1 */ 808c2ecf20Sopenharmony_ci#define PCM1_IN _GPIOD(28) 818c2ecf20Sopenharmony_ci#define PCM1_CLK _GPIOD(29) 828c2ecf20Sopenharmony_ci#define PCM1_SYNC _GPIOD(30) 838c2ecf20Sopenharmony_ci#define PCM1_OUT _GPIOD(31) 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci/* KEY */ 868c2ecf20Sopenharmony_ci#define KS_IN0 _GPIOB(3) 878c2ecf20Sopenharmony_ci#define KS_IN1 _GPIOB(4) 888c2ecf20Sopenharmony_ci#define KS_IN2 _GPIOB(5) 898c2ecf20Sopenharmony_ci#define KS_IN3 _GPIOB(6) 908c2ecf20Sopenharmony_ci#define KS_OUT0 _GPIOB(7) 918c2ecf20Sopenharmony_ci#define KS_OUT1 _GPIOB(8) 928c2ecf20Sopenharmony_ci#define KS_OUT2 _GPIOB(9) 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci/* LVDS */ 958c2ecf20Sopenharmony_ci#define LVDS_OEP _GPIOB(10) 968c2ecf20Sopenharmony_ci#define LVDS_OEN _GPIOB(11) 978c2ecf20Sopenharmony_ci#define LVDS_ODP _GPIOB(12) 988c2ecf20Sopenharmony_ci#define LVDS_ODN _GPIOB(13) 998c2ecf20Sopenharmony_ci#define LVDS_OCP _GPIOB(14) 1008c2ecf20Sopenharmony_ci#define LVDS_OCN _GPIOB(15) 1018c2ecf20Sopenharmony_ci#define LVDS_OBP _GPIOB(16) 1028c2ecf20Sopenharmony_ci#define LVDS_OBN _GPIOB(17) 1038c2ecf20Sopenharmony_ci#define LVDS_OAP _GPIOB(18) 1048c2ecf20Sopenharmony_ci#define LVDS_OAN _GPIOB(19) 1058c2ecf20Sopenharmony_ci#define LVDS_EEP _GPIOB(20) 1068c2ecf20Sopenharmony_ci#define LVDS_EEN _GPIOB(21) 1078c2ecf20Sopenharmony_ci#define LVDS_EDP _GPIOB(22) 1088c2ecf20Sopenharmony_ci#define LVDS_EDN _GPIOB(23) 1098c2ecf20Sopenharmony_ci#define LVDS_ECP _GPIOB(24) 1108c2ecf20Sopenharmony_ci#define LVDS_ECN _GPIOB(25) 1118c2ecf20Sopenharmony_ci#define LVDS_EBP _GPIOB(26) 1128c2ecf20Sopenharmony_ci#define LVDS_EBN _GPIOB(27) 1138c2ecf20Sopenharmony_ci#define LVDS_EAP _GPIOB(28) 1148c2ecf20Sopenharmony_ci#define LVDS_EAN _GPIOB(29) 1158c2ecf20Sopenharmony_ci#define LCD0_D18 _GPIOB(30) 1168c2ecf20Sopenharmony_ci#define LCD0_D2 _GPIOB(31) 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci/* DSI */ 1198c2ecf20Sopenharmony_ci#define DSI_DP3 _GPIOC(0) 1208c2ecf20Sopenharmony_ci#define DSI_DN3 _GPIOC(1) 1218c2ecf20Sopenharmony_ci#define DSI_DP1 _GPIOC(2) 1228c2ecf20Sopenharmony_ci#define DSI_DN1 _GPIOC(3) 1238c2ecf20Sopenharmony_ci#define DSI_CP _GPIOC(4) 1248c2ecf20Sopenharmony_ci#define DSI_CN _GPIOC(5) 1258c2ecf20Sopenharmony_ci#define DSI_DP0 _GPIOC(6) 1268c2ecf20Sopenharmony_ci#define DSI_DN0 _GPIOC(7) 1278c2ecf20Sopenharmony_ci#define DSI_DP2 _GPIOC(8) 1288c2ecf20Sopenharmony_ci#define DSI_DN2 _GPIOC(9) 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci/* SD */ 1318c2ecf20Sopenharmony_ci#define SD0_D0 _GPIOC(10) 1328c2ecf20Sopenharmony_ci#define SD0_D1 _GPIOC(11) 1338c2ecf20Sopenharmony_ci#define SD0_D2 _GPIOC(12) 1348c2ecf20Sopenharmony_ci#define SD0_D3 _GPIOC(13) 1358c2ecf20Sopenharmony_ci#define SD0_D4 _GPIOC(14) 1368c2ecf20Sopenharmony_ci#define SD0_D5 _GPIOC(15) 1378c2ecf20Sopenharmony_ci#define SD0_D6 _GPIOC(16) 1388c2ecf20Sopenharmony_ci#define SD0_D7 _GPIOC(17) 1398c2ecf20Sopenharmony_ci#define SD0_CMD _GPIOC(18) 1408c2ecf20Sopenharmony_ci#define SD0_CLK _GPIOC(19) 1418c2ecf20Sopenharmony_ci#define SD1_CMD _GPIOC(20) 1428c2ecf20Sopenharmony_ci#define SD1_CLK _GPIOC(21) 1438c2ecf20Sopenharmony_ci#define SD1_D0 SD0_D4 1448c2ecf20Sopenharmony_ci#define SD1_D1 SD0_D5 1458c2ecf20Sopenharmony_ci#define SD1_D2 SD0_D6 1468c2ecf20Sopenharmony_ci#define SD1_D3 SD0_D7 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci/* SPI */ 1498c2ecf20Sopenharmony_ci#define SPI0_SS _GPIOC(23) 1508c2ecf20Sopenharmony_ci#define SPI0_MISO _GPIOC(24) 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci/* UART for console */ 1538c2ecf20Sopenharmony_ci#define UART0_RX _GPIOC(26) 1548c2ecf20Sopenharmony_ci#define UART0_TX _GPIOC(27) 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci/* UART for Bluetooth */ 1578c2ecf20Sopenharmony_ci#define UART2_RX _GPIOD(18) 1588c2ecf20Sopenharmony_ci#define UART2_TX _GPIOD(19) 1598c2ecf20Sopenharmony_ci#define UART2_RTSB _GPIOD(20) 1608c2ecf20Sopenharmony_ci#define UART2_CTSB _GPIOD(21) 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci/* UART for 3G */ 1638c2ecf20Sopenharmony_ci#define UART3_RX _GPIOD(22) 1648c2ecf20Sopenharmony_ci#define UART3_TX _GPIOD(23) 1658c2ecf20Sopenharmony_ci#define UART3_RTSB _GPIOD(24) 1668c2ecf20Sopenharmony_ci#define UART3_CTSB _GPIOD(25) 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci/* I2C */ 1698c2ecf20Sopenharmony_ci#define I2C0_SCLK _GPIOC(28) 1708c2ecf20Sopenharmony_ci#define I2C0_SDATA _GPIOC(29) 1718c2ecf20Sopenharmony_ci#define I2C1_SCLK _GPIOE(0) 1728c2ecf20Sopenharmony_ci#define I2C1_SDATA _GPIOE(1) 1738c2ecf20Sopenharmony_ci#define I2C2_SCLK _GPIOE(2) 1748c2ecf20Sopenharmony_ci#define I2C2_SDATA _GPIOE(3) 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci/* CSI*/ 1778c2ecf20Sopenharmony_ci#define CSI_DN0 _PIN(0) 1788c2ecf20Sopenharmony_ci#define CSI_DP0 _PIN(1) 1798c2ecf20Sopenharmony_ci#define CSI_DN1 _PIN(2) 1808c2ecf20Sopenharmony_ci#define CSI_DP1 _PIN(3) 1818c2ecf20Sopenharmony_ci#define CSI_CN _PIN(4) 1828c2ecf20Sopenharmony_ci#define CSI_CP _PIN(5) 1838c2ecf20Sopenharmony_ci#define CSI_DN2 _PIN(6) 1848c2ecf20Sopenharmony_ci#define CSI_DP2 _PIN(7) 1858c2ecf20Sopenharmony_ci#define CSI_DN3 _PIN(8) 1868c2ecf20Sopenharmony_ci#define CSI_DP3 _PIN(9) 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci/* Sensor */ 1898c2ecf20Sopenharmony_ci#define SENSOR0_PCLK _GPIOC(31) 1908c2ecf20Sopenharmony_ci#define SENSOR0_CKOUT _GPIOD(10) 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci/* NAND (1.8v / 3.3v) */ 1938c2ecf20Sopenharmony_ci#define DNAND_D0 _PIN(10) 1948c2ecf20Sopenharmony_ci#define DNAND_D1 _PIN(11) 1958c2ecf20Sopenharmony_ci#define DNAND_D2 _PIN(12) 1968c2ecf20Sopenharmony_ci#define DNAND_D3 _PIN(13) 1978c2ecf20Sopenharmony_ci#define DNAND_D4 _PIN(14) 1988c2ecf20Sopenharmony_ci#define DNAND_D5 _PIN(15) 1998c2ecf20Sopenharmony_ci#define DNAND_D6 _PIN(16) 2008c2ecf20Sopenharmony_ci#define DNAND_D7 _PIN(17) 2018c2ecf20Sopenharmony_ci#define DNAND_WRB _PIN(18) 2028c2ecf20Sopenharmony_ci#define DNAND_RDB _PIN(19) 2038c2ecf20Sopenharmony_ci#define DNAND_RDBN _PIN(20) 2048c2ecf20Sopenharmony_ci#define DNAND_DQS _GPIOA(12) 2058c2ecf20Sopenharmony_ci#define DNAND_DQSN _GPIOA(13) 2068c2ecf20Sopenharmony_ci#define DNAND_RB0 _PIN(21) 2078c2ecf20Sopenharmony_ci#define DNAND_ALE _GPIOD(12) 2088c2ecf20Sopenharmony_ci#define DNAND_CLE _GPIOD(13) 2098c2ecf20Sopenharmony_ci#define DNAND_CEB0 _GPIOD(14) 2108c2ecf20Sopenharmony_ci#define DNAND_CEB1 _GPIOD(15) 2118c2ecf20Sopenharmony_ci#define DNAND_CEB2 _GPIOD(16) 2128c2ecf20Sopenharmony_ci#define DNAND_CEB3 _GPIOD(17) 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci/* System */ 2158c2ecf20Sopenharmony_ci#define PORB _PIN(22) 2168c2ecf20Sopenharmony_ci#define CLKO_25M _PIN(23) 2178c2ecf20Sopenharmony_ci#define BSEL _PIN(24) 2188c2ecf20Sopenharmony_ci#define PKG0 _PIN(25) 2198c2ecf20Sopenharmony_ci#define PKG1 _PIN(26) 2208c2ecf20Sopenharmony_ci#define PKG2 _PIN(27) 2218c2ecf20Sopenharmony_ci#define PKG3 _PIN(28) 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci#define _FIRSTPAD _GPIOA(0) 2248c2ecf20Sopenharmony_ci#define _LASTPAD PKG3 2258c2ecf20Sopenharmony_ci#define NUM_PADS (_PIN(28) + 1) 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci/* Pad names for the pinmux subsystem */ 2288c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc s700_pads[] = { 2298c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD0, "eth_txd0"), 2308c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD1, "eth_txd1"), 2318c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD2, "eth_txd2"), 2328c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD3, "eth_txd3"), 2338c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXEN, "eth_txen"), 2348c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXER, "eth_rxer"), 2358c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_CRS_DV, "eth_crs_dv"), 2368c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD1, "eth_rxd1"), 2378c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD0, "eth_rxd0"), 2388c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD2, "eth_rxd2"), 2398c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD3, "eth_rxd3"), 2408c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_REF_CLK, "eth_ref_clk"), 2418c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_MDC, "eth_mdc"), 2428c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_MDIO, "eth_mdio"), 2438c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ0, "sirq0"), 2448c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ1, "sirq1"), 2458c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ2, "sirq2"), 2468c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_D0, "i2s_d0"), 2478c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_BCLK0, "i2s_bclk0"), 2488c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_LRCLK0, "i2s_lrclk0"), 2498c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_MCLK0, "i2s_mclk0"), 2508c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_D1, "i2s_d1"), 2518c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_BCLK1, "i2s_bclk1"), 2528c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_LRCLK1, "i2s_lrclk1"), 2538c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_MCLK1, "i2s_mclk1"), 2548c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_IN, "pcm1_in"), 2558c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_CLK, "pcm1_clk"), 2568c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_SYNC, "pcm1_sync"), 2578c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_OUT, "pcm1_out"), 2588c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_IN0, "ks_in0"), 2598c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_IN1, "ks_in1"), 2608c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_IN2, "ks_in2"), 2618c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_IN3, "ks_in3"), 2628c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_OUT0, "ks_out0"), 2638c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_OUT1, "ks_out1"), 2648c2ecf20Sopenharmony_ci PINCTRL_PIN(KS_OUT2, "ks_out2"), 2658c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OEP, "lvds_oep"), 2668c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OEN, "lvds_oen"), 2678c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ODP, "lvds_odp"), 2688c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ODN, "lvds_odn"), 2698c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OCP, "lvds_ocp"), 2708c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OCN, "lvds_ocn"), 2718c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OBP, "lvds_obp"), 2728c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OBN, "lvds_obn"), 2738c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OAP, "lvds_oap"), 2748c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OAN, "lvds_oan"), 2758c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EEP, "lvds_eep"), 2768c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EEN, "lvds_een"), 2778c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EDP, "lvds_edp"), 2788c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EDN, "lvds_edn"), 2798c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ECP, "lvds_ecp"), 2808c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ECN, "lvds_ecn"), 2818c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EBP, "lvds_ebp"), 2828c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EBN, "lvds_ebn"), 2838c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EAP, "lvds_eap"), 2848c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EAN, "lvds_ean"), 2858c2ecf20Sopenharmony_ci PINCTRL_PIN(LCD0_D18, "lcd0_d18"), 2868c2ecf20Sopenharmony_ci PINCTRL_PIN(LCD0_D2, "lcd0_d2"), 2878c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP3, "dsi_dp3"), 2888c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN3, "dsi_dn3"), 2898c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP1, "dsi_dp1"), 2908c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN1, "dsi_dn1"), 2918c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_CP, "dsi_cp"), 2928c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_CN, "dsi_cn"), 2938c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP0, "dsi_dp0"), 2948c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN0, "dsi_dn0"), 2958c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP2, "dsi_dp2"), 2968c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN2, "dsi_dn2"), 2978c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D0, "sd0_d0"), 2988c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D1, "sd0_d1"), 2998c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D2, "sd0_d2"), 3008c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D3, "sd0_d3"), 3018c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D0, "sd1_d0"), 3028c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D1, "sd1_d1"), 3038c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D2, "sd1_d2"), 3048c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D3, "sd1_d3"), 3058c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_CMD, "sd0_cmd"), 3068c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_CLK, "sd0_clk"), 3078c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_CMD, "sd1_cmd"), 3088c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_CLK, "sd1_clk"), 3098c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_SS, "spi0_ss"), 3108c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_MISO, "spi0_miso"), 3118c2ecf20Sopenharmony_ci PINCTRL_PIN(UART0_RX, "uart0_rx"), 3128c2ecf20Sopenharmony_ci PINCTRL_PIN(UART0_TX, "uart0_tx"), 3138c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_RX, "uart2_rx"), 3148c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_TX, "uart2_tx"), 3158c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_RTSB, "uart2_rtsb"), 3168c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_CTSB, "uart2_ctsb"), 3178c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_RX, "uart3_rx"), 3188c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_TX, "uart3_tx"), 3198c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_RTSB, "uart3_rtsb"), 3208c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_CTSB, "uart3_ctsb"), 3218c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C0_SCLK, "i2c0_sclk"), 3228c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C0_SDATA, "i2c0_sdata"), 3238c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C1_SCLK, "i2c1_sclk"), 3248c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C1_SDATA, "i2c1_sdata"), 3258c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C2_SCLK, "i2c2_sclk"), 3268c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C2_SDATA, "i2c2_sdata"), 3278c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DN0, "csi_dn0"), 3288c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DP0, "csi_dp0"), 3298c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DN1, "csi_dn1"), 3308c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DP1, "csi_dp1"), 3318c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_CN, "csi_cn"), 3328c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_CP, "csi_cp"), 3338c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DN2, "csi_dn2"), 3348c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DP2, "csi_dp2"), 3358c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DN3, "csi_dn3"), 3368c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI_DP3, "csi_dp3"), 3378c2ecf20Sopenharmony_ci PINCTRL_PIN(SENSOR0_PCLK, "sensor0_pclk"), 3388c2ecf20Sopenharmony_ci PINCTRL_PIN(SENSOR0_CKOUT, "sensor0_ckout"), 3398c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D0, "dnand_d0"), 3408c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D1, "dnand_d1"), 3418c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D2, "dnand_d2"), 3428c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D3, "dnand_d3"), 3438c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D4, "dnand_d4"), 3448c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D5, "dnand_d5"), 3458c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D6, "dnand_d6"), 3468c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_D7, "dnand_d7"), 3478c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_WRB, "dnand_wrb"), 3488c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_RDB, "dnand_rdb"), 3498c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_RDBN, "dnand_rdbn"), 3508c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_DQS, "dnand_dqs"), 3518c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_DQSN, "dnand_dqsn"), 3528c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_RB0, "dnand_rb0"), 3538c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_ALE, "dnand_ale"), 3548c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_CLE, "dnand_cle"), 3558c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_CEB0, "dnand_ceb0"), 3568c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_CEB1, "dnand_ceb1"), 3578c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_CEB2, "dnand_ceb2"), 3588c2ecf20Sopenharmony_ci PINCTRL_PIN(DNAND_CEB3, "dnand_ceb3"), 3598c2ecf20Sopenharmony_ci PINCTRL_PIN(PORB, "porb"), 3608c2ecf20Sopenharmony_ci PINCTRL_PIN(CLKO_25M, "clko_25m"), 3618c2ecf20Sopenharmony_ci PINCTRL_PIN(BSEL, "bsel"), 3628c2ecf20Sopenharmony_ci PINCTRL_PIN(PKG0, "pkg0"), 3638c2ecf20Sopenharmony_ci PINCTRL_PIN(PKG1, "pkg1"), 3648c2ecf20Sopenharmony_ci PINCTRL_PIN(PKG2, "pkg2"), 3658c2ecf20Sopenharmony_ci PINCTRL_PIN(PKG3, "pkg3"), 3668c2ecf20Sopenharmony_ci}; 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_cienum s700_pinmux_functions { 3698c2ecf20Sopenharmony_ci S700_MUX_NOR, 3708c2ecf20Sopenharmony_ci S700_MUX_ETH_RGMII, 3718c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII, 3728c2ecf20Sopenharmony_ci S700_MUX_SPI0, 3738c2ecf20Sopenharmony_ci S700_MUX_SPI1, 3748c2ecf20Sopenharmony_ci S700_MUX_SPI2, 3758c2ecf20Sopenharmony_ci S700_MUX_SPI3, 3768c2ecf20Sopenharmony_ci S700_MUX_SENS0, 3778c2ecf20Sopenharmony_ci S700_MUX_SENS1, 3788c2ecf20Sopenharmony_ci S700_MUX_UART0, 3798c2ecf20Sopenharmony_ci S700_MUX_UART1, 3808c2ecf20Sopenharmony_ci S700_MUX_UART2, 3818c2ecf20Sopenharmony_ci S700_MUX_UART3, 3828c2ecf20Sopenharmony_ci S700_MUX_UART4, 3838c2ecf20Sopenharmony_ci S700_MUX_UART5, 3848c2ecf20Sopenharmony_ci S700_MUX_UART6, 3858c2ecf20Sopenharmony_ci S700_MUX_I2S0, 3868c2ecf20Sopenharmony_ci S700_MUX_I2S1, 3878c2ecf20Sopenharmony_ci S700_MUX_PCM1, 3888c2ecf20Sopenharmony_ci S700_MUX_PCM0, 3898c2ecf20Sopenharmony_ci S700_MUX_KS, 3908c2ecf20Sopenharmony_ci S700_MUX_JTAG, 3918c2ecf20Sopenharmony_ci S700_MUX_PWM0, 3928c2ecf20Sopenharmony_ci S700_MUX_PWM1, 3938c2ecf20Sopenharmony_ci S700_MUX_PWM2, 3948c2ecf20Sopenharmony_ci S700_MUX_PWM3, 3958c2ecf20Sopenharmony_ci S700_MUX_PWM4, 3968c2ecf20Sopenharmony_ci S700_MUX_PWM5, 3978c2ecf20Sopenharmony_ci S700_MUX_P0, 3988c2ecf20Sopenharmony_ci S700_MUX_SD0, 3998c2ecf20Sopenharmony_ci S700_MUX_SD1, 4008c2ecf20Sopenharmony_ci S700_MUX_SD2, 4018c2ecf20Sopenharmony_ci S700_MUX_I2C0, 4028c2ecf20Sopenharmony_ci S700_MUX_I2C1, 4038c2ecf20Sopenharmony_ci S700_MUX_I2C2, 4048c2ecf20Sopenharmony_ci S700_MUX_I2C3, 4058c2ecf20Sopenharmony_ci S700_MUX_DSI, 4068c2ecf20Sopenharmony_ci S700_MUX_LVDS, 4078c2ecf20Sopenharmony_ci S700_MUX_USB30, 4088c2ecf20Sopenharmony_ci S700_MUX_CLKO_25M, 4098c2ecf20Sopenharmony_ci S700_MUX_MIPI_CSI, 4108c2ecf20Sopenharmony_ci S700_MUX_NAND, 4118c2ecf20Sopenharmony_ci S700_MUX_SPDIF, 4128c2ecf20Sopenharmony_ci S700_MUX_SIRQ0, 4138c2ecf20Sopenharmony_ci S700_MUX_SIRQ1, 4148c2ecf20Sopenharmony_ci S700_MUX_SIRQ2, 4158c2ecf20Sopenharmony_ci S700_MUX_BT, 4168c2ecf20Sopenharmony_ci S700_MUX_LCD0, 4178c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 4188c2ecf20Sopenharmony_ci}; 4198c2ecf20Sopenharmony_ci 4208c2ecf20Sopenharmony_ci/* mfp0_31_30 reserved */ 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_ci/* rgmii_txd23 */ 4238c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd23_mfp_pads[] = { ETH_TXD2, ETH_TXD3}; 4248c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd23_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4258c2ecf20Sopenharmony_ci S700_MUX_I2C1, 4268c2ecf20Sopenharmony_ci S700_MUX_UART3 }; 4278c2ecf20Sopenharmony_ci/* rgmii_rxd2 */ 4288c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd2_mfp_pads[] = { ETH_RXD2 }; 4298c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd2_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4308c2ecf20Sopenharmony_ci S700_MUX_PWM0, 4318c2ecf20Sopenharmony_ci S700_MUX_UART3 }; 4328c2ecf20Sopenharmony_ci/* rgmii_rxd3 */ 4338c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd3_mfp_pads[] = { ETH_RXD3}; 4348c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd3_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4358c2ecf20Sopenharmony_ci S700_MUX_PWM2, 4368c2ecf20Sopenharmony_ci S700_MUX_UART3 }; 4378c2ecf20Sopenharmony_ci/* lcd0_d18 */ 4388c2ecf20Sopenharmony_cistatic unsigned int lcd0_d18_mfp_pads[] = { LCD0_D18 }; 4398c2ecf20Sopenharmony_cistatic unsigned int lcd0_d18_mfp_funcs[] = { S700_MUX_NOR, 4408c2ecf20Sopenharmony_ci S700_MUX_SENS1, 4418c2ecf20Sopenharmony_ci S700_MUX_PWM2, 4428c2ecf20Sopenharmony_ci S700_MUX_PWM4, 4438c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 4448c2ecf20Sopenharmony_ci/* rgmii_txd01 */ 4458c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd01_mfp_pads[] = { ETH_CRS_DV }; 4468c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd01_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4478c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 4488c2ecf20Sopenharmony_ci S700_MUX_SPI2, 4498c2ecf20Sopenharmony_ci S700_MUX_UART4, 4508c2ecf20Sopenharmony_ci S700_MUX_PWM4 }; 4518c2ecf20Sopenharmony_ci/* rgmii_txd0 */ 4528c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd0_mfp_pads[] = { ETH_TXD0 }; 4538c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd0_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4548c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII, 4558c2ecf20Sopenharmony_ci S700_MUX_SPI2, 4568c2ecf20Sopenharmony_ci S700_MUX_UART6, 4578c2ecf20Sopenharmony_ci S700_MUX_PWM4 }; 4588c2ecf20Sopenharmony_ci/* rgmii_txd1 */ 4598c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd1_mfp_pads[] = { ETH_TXD1 }; 4608c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd1_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4618c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII, 4628c2ecf20Sopenharmony_ci S700_MUX_SPI2, 4638c2ecf20Sopenharmony_ci S700_MUX_UART6, 4648c2ecf20Sopenharmony_ci S700_MUX_PWM5 }; 4658c2ecf20Sopenharmony_ci/* rgmii_txen */ 4668c2ecf20Sopenharmony_cistatic unsigned int rgmii_txen_mfp_pads[] = { ETH_TXEN }; 4678c2ecf20Sopenharmony_cistatic unsigned int rgmii_txen_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4688c2ecf20Sopenharmony_ci S700_MUX_UART2, 4698c2ecf20Sopenharmony_ci S700_MUX_SPI3, 4708c2ecf20Sopenharmony_ci S700_MUX_PWM0 }; 4718c2ecf20Sopenharmony_ci/* rgmii_rxen */ 4728c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxen_mfp_pads[] = { ETH_RXER }; 4738c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxen_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4748c2ecf20Sopenharmony_ci S700_MUX_UART2, 4758c2ecf20Sopenharmony_ci S700_MUX_SPI3, 4768c2ecf20Sopenharmony_ci S700_MUX_PWM1 }; 4778c2ecf20Sopenharmony_ci/* mfp0_12_11 reserved */ 4788c2ecf20Sopenharmony_ci/* rgmii_rxd1*/ 4798c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd1_mfp_pads[] = { ETH_RXD1 }; 4808c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd1_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4818c2ecf20Sopenharmony_ci S700_MUX_UART2, 4828c2ecf20Sopenharmony_ci S700_MUX_SPI3, 4838c2ecf20Sopenharmony_ci S700_MUX_PWM2, 4848c2ecf20Sopenharmony_ci S700_MUX_UART5, 4858c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII }; 4868c2ecf20Sopenharmony_ci/* rgmii_rxd0 */ 4878c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd0_mfp_pads[] = { ETH_RXD0 }; 4888c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd0_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4898c2ecf20Sopenharmony_ci S700_MUX_UART2, 4908c2ecf20Sopenharmony_ci S700_MUX_SPI3, 4918c2ecf20Sopenharmony_ci S700_MUX_PWM3, 4928c2ecf20Sopenharmony_ci S700_MUX_UART5, 4938c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII }; 4948c2ecf20Sopenharmony_ci/* rgmii_ref_clk */ 4958c2ecf20Sopenharmony_cistatic unsigned int rgmii_ref_clk_mfp_pads[] = { ETH_REF_CLK }; 4968c2ecf20Sopenharmony_cistatic unsigned int rgmii_ref_clk_mfp_funcs[] = { S700_MUX_ETH_RGMII, 4978c2ecf20Sopenharmony_ci S700_MUX_UART4, 4988c2ecf20Sopenharmony_ci S700_MUX_SPI2, 4998c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 5008c2ecf20Sopenharmony_ci S700_MUX_ETH_SGMII }; 5018c2ecf20Sopenharmony_ci/* i2s_d0 */ 5028c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_mfp_pads[] = { I2S_D0 }; 5038c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_mfp_funcs[] = { S700_MUX_I2S0, 5048c2ecf20Sopenharmony_ci S700_MUX_NOR }; 5058c2ecf20Sopenharmony_ci/* i2s_pcm1 */ 5068c2ecf20Sopenharmony_cistatic unsigned int i2s_pcm1_mfp_pads[] = { I2S_LRCLK0, 5078c2ecf20Sopenharmony_ci I2S_MCLK0 }; 5088c2ecf20Sopenharmony_cistatic unsigned int i2s_pcm1_mfp_funcs[] = { S700_MUX_I2S0, 5098c2ecf20Sopenharmony_ci S700_MUX_NOR, 5108c2ecf20Sopenharmony_ci S700_MUX_PCM1, 5118c2ecf20Sopenharmony_ci S700_MUX_BT }; 5128c2ecf20Sopenharmony_ci/* i2s0_pcm0 */ 5138c2ecf20Sopenharmony_cistatic unsigned int i2s0_pcm0_mfp_pads[] = { I2S_BCLK0 }; 5148c2ecf20Sopenharmony_cistatic unsigned int i2s0_pcm0_mfp_funcs[] = { S700_MUX_I2S0, 5158c2ecf20Sopenharmony_ci S700_MUX_NOR, 5168c2ecf20Sopenharmony_ci S700_MUX_PCM0, 5178c2ecf20Sopenharmony_ci S700_MUX_BT }; 5188c2ecf20Sopenharmony_ci/* i2s1_pcm0 */ 5198c2ecf20Sopenharmony_cistatic unsigned int i2s1_pcm0_mfp_pads[] = { I2S_BCLK1, 5208c2ecf20Sopenharmony_ci I2S_LRCLK1, 5218c2ecf20Sopenharmony_ci I2S_MCLK1 }; 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_cistatic unsigned int i2s1_pcm0_mfp_funcs[] = { S700_MUX_I2S1, 5248c2ecf20Sopenharmony_ci S700_MUX_NOR, 5258c2ecf20Sopenharmony_ci S700_MUX_PCM0, 5268c2ecf20Sopenharmony_ci S700_MUX_BT }; 5278c2ecf20Sopenharmony_ci/* i2s_d1 */ 5288c2ecf20Sopenharmony_cistatic unsigned int i2s_d1_mfp_pads[] = { I2S_D1 }; 5298c2ecf20Sopenharmony_cistatic unsigned int i2s_d1_mfp_funcs[] = { S700_MUX_I2S1, 5308c2ecf20Sopenharmony_ci S700_MUX_NOR }; 5318c2ecf20Sopenharmony_ci/* ks_in2 */ 5328c2ecf20Sopenharmony_cistatic unsigned int ks_in2_mfp_pads[] = { KS_IN2 }; 5338c2ecf20Sopenharmony_cistatic unsigned int ks_in2_mfp_funcs[] = { S700_MUX_KS, 5348c2ecf20Sopenharmony_ci S700_MUX_JTAG, 5358c2ecf20Sopenharmony_ci S700_MUX_NOR, 5368c2ecf20Sopenharmony_ci S700_MUX_BT, 5378c2ecf20Sopenharmony_ci S700_MUX_PWM0, 5388c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5398c2ecf20Sopenharmony_ci S700_MUX_PWM0, 5408c2ecf20Sopenharmony_ci S700_MUX_P0 }; 5418c2ecf20Sopenharmony_ci/* ks_in1 */ 5428c2ecf20Sopenharmony_cistatic unsigned int ks_in1_mfp_pads[] = { KS_IN1 }; 5438c2ecf20Sopenharmony_cistatic unsigned int ks_in1_mfp_funcs[] = { S700_MUX_KS, 5448c2ecf20Sopenharmony_ci S700_MUX_JTAG, 5458c2ecf20Sopenharmony_ci S700_MUX_NOR, 5468c2ecf20Sopenharmony_ci S700_MUX_BT, 5478c2ecf20Sopenharmony_ci S700_MUX_PWM5, 5488c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5498c2ecf20Sopenharmony_ci S700_MUX_PWM1, 5508c2ecf20Sopenharmony_ci S700_MUX_USB30 }; 5518c2ecf20Sopenharmony_ci/* ks_in0 */ 5528c2ecf20Sopenharmony_cistatic unsigned int ks_in0_mfp_pads[] = { KS_IN0 }; 5538c2ecf20Sopenharmony_cistatic unsigned int ks_in0_mfp_funcs[] = { S700_MUX_KS, 5548c2ecf20Sopenharmony_ci S700_MUX_JTAG, 5558c2ecf20Sopenharmony_ci S700_MUX_NOR, 5568c2ecf20Sopenharmony_ci S700_MUX_BT, 5578c2ecf20Sopenharmony_ci S700_MUX_PWM4, 5588c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5598c2ecf20Sopenharmony_ci S700_MUX_PWM4, 5608c2ecf20Sopenharmony_ci S700_MUX_P0 }; 5618c2ecf20Sopenharmony_ci/* ks_in3 */ 5628c2ecf20Sopenharmony_cistatic unsigned int ks_in3_mfp_pads[] = { KS_IN3 }; 5638c2ecf20Sopenharmony_cistatic unsigned int ks_in3_mfp_funcs[] = { S700_MUX_KS, 5648c2ecf20Sopenharmony_ci S700_MUX_JTAG, 5658c2ecf20Sopenharmony_ci S700_MUX_NOR, 5668c2ecf20Sopenharmony_ci S700_MUX_PWM1, 5678c2ecf20Sopenharmony_ci S700_MUX_BT, 5688c2ecf20Sopenharmony_ci S700_MUX_SENS1 }; 5698c2ecf20Sopenharmony_ci/* ks_out0 */ 5708c2ecf20Sopenharmony_cistatic unsigned int ks_out0_mfp_pads[] = { KS_OUT0 }; 5718c2ecf20Sopenharmony_cistatic unsigned int ks_out0_mfp_funcs[] = { S700_MUX_KS, 5728c2ecf20Sopenharmony_ci S700_MUX_UART5, 5738c2ecf20Sopenharmony_ci S700_MUX_NOR, 5748c2ecf20Sopenharmony_ci S700_MUX_PWM2, 5758c2ecf20Sopenharmony_ci S700_MUX_BT, 5768c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5778c2ecf20Sopenharmony_ci S700_MUX_SD0, 5788c2ecf20Sopenharmony_ci S700_MUX_UART4 }; 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ci/* ks_out1 */ 5818c2ecf20Sopenharmony_cistatic unsigned int ks_out1_mfp_pads[] = { KS_OUT1 }; 5828c2ecf20Sopenharmony_cistatic unsigned int ks_out1_mfp_funcs[] = { S700_MUX_KS, 5838c2ecf20Sopenharmony_ci S700_MUX_JTAG, 5848c2ecf20Sopenharmony_ci S700_MUX_NOR, 5858c2ecf20Sopenharmony_ci S700_MUX_PWM3, 5868c2ecf20Sopenharmony_ci S700_MUX_BT, 5878c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5888c2ecf20Sopenharmony_ci S700_MUX_SD0, 5898c2ecf20Sopenharmony_ci S700_MUX_UART4 }; 5908c2ecf20Sopenharmony_ci/* ks_out2 */ 5918c2ecf20Sopenharmony_cistatic unsigned int ks_out2_mfp_pads[] = { KS_OUT2 }; 5928c2ecf20Sopenharmony_cistatic unsigned int ks_out2_mfp_funcs[] = { S700_MUX_SD0, 5938c2ecf20Sopenharmony_ci S700_MUX_KS, 5948c2ecf20Sopenharmony_ci S700_MUX_NOR, 5958c2ecf20Sopenharmony_ci S700_MUX_PWM2, 5968c2ecf20Sopenharmony_ci S700_MUX_UART5, 5978c2ecf20Sopenharmony_ci S700_MUX_SENS1, 5988c2ecf20Sopenharmony_ci S700_MUX_BT }; 5998c2ecf20Sopenharmony_ci/* lvds_o_pn */ 6008c2ecf20Sopenharmony_cistatic unsigned int lvds_o_pn_mfp_pads[] = { LVDS_OEP, 6018c2ecf20Sopenharmony_ci LVDS_OEN, 6028c2ecf20Sopenharmony_ci LVDS_ODP, 6038c2ecf20Sopenharmony_ci LVDS_ODN, 6048c2ecf20Sopenharmony_ci LVDS_OCP, 6058c2ecf20Sopenharmony_ci LVDS_OCN, 6068c2ecf20Sopenharmony_ci LVDS_OBP, 6078c2ecf20Sopenharmony_ci LVDS_OBN, 6088c2ecf20Sopenharmony_ci LVDS_OAP, 6098c2ecf20Sopenharmony_ci LVDS_OAN }; 6108c2ecf20Sopenharmony_ci 6118c2ecf20Sopenharmony_cistatic unsigned int lvds_o_pn_mfp_funcs[] = { S700_MUX_LVDS, 6128c2ecf20Sopenharmony_ci S700_MUX_BT, 6138c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_ci/* dsi_dn0 */ 6168c2ecf20Sopenharmony_cistatic unsigned int dsi_dn0_mfp_pads[] = { DSI_DN0 }; 6178c2ecf20Sopenharmony_cistatic unsigned int dsi_dn0_mfp_funcs[] = { S700_MUX_DSI, 6188c2ecf20Sopenharmony_ci S700_MUX_UART2, 6198c2ecf20Sopenharmony_ci S700_MUX_SPI0 }; 6208c2ecf20Sopenharmony_ci/* dsi_dp2 */ 6218c2ecf20Sopenharmony_cistatic unsigned int dsi_dp2_mfp_pads[] = { DSI_DP2 }; 6228c2ecf20Sopenharmony_cistatic unsigned int dsi_dp2_mfp_funcs[] = { S700_MUX_DSI, 6238c2ecf20Sopenharmony_ci S700_MUX_UART2, 6248c2ecf20Sopenharmony_ci S700_MUX_SPI0, 6258c2ecf20Sopenharmony_ci S700_MUX_SD1 }; 6268c2ecf20Sopenharmony_ci/* lcd0_d2 */ 6278c2ecf20Sopenharmony_cistatic unsigned int lcd0_d2_mfp_pads[] = { LCD0_D2 }; 6288c2ecf20Sopenharmony_cistatic unsigned int lcd0_d2_mfp_funcs[] = { S700_MUX_NOR, 6298c2ecf20Sopenharmony_ci S700_MUX_SD0, 6308c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 6318c2ecf20Sopenharmony_ci S700_MUX_PWM3, 6328c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6338c2ecf20Sopenharmony_ci/* dsi_dp3 */ 6348c2ecf20Sopenharmony_cistatic unsigned int dsi_dp3_mfp_pads[] = { DSI_DP3 }; 6358c2ecf20Sopenharmony_cistatic unsigned int dsi_dp3_mfp_funcs[] = { S700_MUX_DSI, 6368c2ecf20Sopenharmony_ci S700_MUX_SD0, 6378c2ecf20Sopenharmony_ci S700_MUX_SD1, 6388c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6398c2ecf20Sopenharmony_ci/* dsi_dn3 */ 6408c2ecf20Sopenharmony_cistatic unsigned int dsi_dn3_mfp_pads[] = { DSI_DN3 }; 6418c2ecf20Sopenharmony_cistatic unsigned int dsi_dn3_mfp_funcs[] = { S700_MUX_DSI, 6428c2ecf20Sopenharmony_ci S700_MUX_SD0, 6438c2ecf20Sopenharmony_ci S700_MUX_SD1, 6448c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6458c2ecf20Sopenharmony_ci/* dsi_dp0 */ 6468c2ecf20Sopenharmony_cistatic unsigned int dsi_dp0_mfp_pads[] = { DSI_DP0 }; 6478c2ecf20Sopenharmony_cistatic unsigned int dsi_dp0_mfp_funcs[] = { S700_MUX_DSI, 6488c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 6498c2ecf20Sopenharmony_ci S700_MUX_SD0, 6508c2ecf20Sopenharmony_ci S700_MUX_UART2, 6518c2ecf20Sopenharmony_ci S700_MUX_SPI0 }; 6528c2ecf20Sopenharmony_ci/* lvds_ee_pn */ 6538c2ecf20Sopenharmony_cistatic unsigned int lvds_ee_pn_mfp_pads[] = { LVDS_EEP, 6548c2ecf20Sopenharmony_ci LVDS_EEN }; 6558c2ecf20Sopenharmony_cistatic unsigned int lvds_ee_pn_mfp_funcs[] = { S700_MUX_LVDS, 6568c2ecf20Sopenharmony_ci S700_MUX_NOR, 6578c2ecf20Sopenharmony_ci S700_MUX_BT, 6588c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6598c2ecf20Sopenharmony_ci/* uart2_rx_tx */ 6608c2ecf20Sopenharmony_cistatic unsigned int uart2_rx_tx_mfp_pads[] = { UART2_RX, 6618c2ecf20Sopenharmony_ci UART2_TX }; 6628c2ecf20Sopenharmony_cistatic unsigned int uart2_rx_tx_mfp_funcs[] = { S700_MUX_UART2, 6638c2ecf20Sopenharmony_ci S700_MUX_NOR, 6648c2ecf20Sopenharmony_ci S700_MUX_SPI0, 6658c2ecf20Sopenharmony_ci S700_MUX_PCM0 }; 6668c2ecf20Sopenharmony_ci/* spi0_i2c_pcm */ 6678c2ecf20Sopenharmony_cistatic unsigned int spi0_i2c_pcm_mfp_pads[] = { SPI0_SS, 6688c2ecf20Sopenharmony_ci SPI0_MISO }; 6698c2ecf20Sopenharmony_cistatic unsigned int spi0_i2c_pcm_mfp_funcs[] = { S700_MUX_SPI0, 6708c2ecf20Sopenharmony_ci S700_MUX_NOR, 6718c2ecf20Sopenharmony_ci S700_MUX_I2S1, 6728c2ecf20Sopenharmony_ci S700_MUX_PCM1, 6738c2ecf20Sopenharmony_ci S700_MUX_PCM0, 6748c2ecf20Sopenharmony_ci S700_MUX_I2C2 }; 6758c2ecf20Sopenharmony_ci/* mfp2_31 reserved */ 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_ci/* dsi_dnp1_cp_d2 */ 6788c2ecf20Sopenharmony_cistatic unsigned int dsi_dnp1_cp_d2_mfp_pads[] = { DSI_DP1, 6798c2ecf20Sopenharmony_ci DSI_CP, 6808c2ecf20Sopenharmony_ci DSI_CN }; 6818c2ecf20Sopenharmony_cistatic unsigned int dsi_dnp1_cp_d2_mfp_funcs[] = { S700_MUX_DSI, 6828c2ecf20Sopenharmony_ci S700_MUX_LCD0, 6838c2ecf20Sopenharmony_ci S700_MUX_RESERVED }; 6848c2ecf20Sopenharmony_ci/* dsi_dnp1_cp_d17 */ 6858c2ecf20Sopenharmony_cistatic unsigned int dsi_dnp1_cp_d17_mfp_pads[] = { DSI_DP1, 6868c2ecf20Sopenharmony_ci DSI_CP, 6878c2ecf20Sopenharmony_ci DSI_CN }; 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_cistatic unsigned int dsi_dnp1_cp_d17_mfp_funcs[] = { S700_MUX_DSI, 6908c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 6918c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 6928c2ecf20Sopenharmony_ci/* lvds_e_pn */ 6938c2ecf20Sopenharmony_cistatic unsigned int lvds_e_pn_mfp_pads[] = { LVDS_EDP, 6948c2ecf20Sopenharmony_ci LVDS_EDN, 6958c2ecf20Sopenharmony_ci LVDS_ECP, 6968c2ecf20Sopenharmony_ci LVDS_ECN, 6978c2ecf20Sopenharmony_ci LVDS_EBP, 6988c2ecf20Sopenharmony_ci LVDS_EBN, 6998c2ecf20Sopenharmony_ci LVDS_EAP, 7008c2ecf20Sopenharmony_ci LVDS_EAN }; 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_cistatic unsigned int lvds_e_pn_mfp_funcs[] = { S700_MUX_LVDS, 7038c2ecf20Sopenharmony_ci S700_MUX_NOR, 7048c2ecf20Sopenharmony_ci S700_MUX_LCD0 }; 7058c2ecf20Sopenharmony_ci/* dsi_dn2 */ 7068c2ecf20Sopenharmony_cistatic unsigned int dsi_dn2_mfp_pads[] = { DSI_DN2 }; 7078c2ecf20Sopenharmony_cistatic unsigned int dsi_dn2_mfp_funcs[] = { S700_MUX_DSI, 7088c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7098c2ecf20Sopenharmony_ci S700_MUX_SD1, 7108c2ecf20Sopenharmony_ci S700_MUX_UART2, 7118c2ecf20Sopenharmony_ci S700_MUX_SPI0 }; 7128c2ecf20Sopenharmony_ci/* uart2_rtsb */ 7138c2ecf20Sopenharmony_cistatic unsigned int uart2_rtsb_mfp_pads[] = { UART2_RTSB }; 7148c2ecf20Sopenharmony_cistatic unsigned int uart2_rtsb_mfp_funcs[] = { S700_MUX_UART2, 7158c2ecf20Sopenharmony_ci S700_MUX_UART0 }; 7168c2ecf20Sopenharmony_ci 7178c2ecf20Sopenharmony_ci/* uart2_ctsb */ 7188c2ecf20Sopenharmony_cistatic unsigned int uart2_ctsb_mfp_pads[] = { UART2_CTSB }; 7198c2ecf20Sopenharmony_cistatic unsigned int uart2_ctsb_mfp_funcs[] = { S700_MUX_UART2, 7208c2ecf20Sopenharmony_ci S700_MUX_UART0 }; 7218c2ecf20Sopenharmony_ci/* uart3_rtsb */ 7228c2ecf20Sopenharmony_cistatic unsigned int uart3_rtsb_mfp_pads[] = { UART3_RTSB }; 7238c2ecf20Sopenharmony_cistatic unsigned int uart3_rtsb_mfp_funcs[] = { S700_MUX_UART3, 7248c2ecf20Sopenharmony_ci S700_MUX_UART5 }; 7258c2ecf20Sopenharmony_ci 7268c2ecf20Sopenharmony_ci/* uart3_ctsb */ 7278c2ecf20Sopenharmony_cistatic unsigned int uart3_ctsb_mfp_pads[] = { UART3_CTSB }; 7288c2ecf20Sopenharmony_cistatic unsigned int uart3_ctsb_mfp_funcs[] = { S700_MUX_UART3, 7298c2ecf20Sopenharmony_ci S700_MUX_UART5 }; 7308c2ecf20Sopenharmony_ci/* sd0_d0 */ 7318c2ecf20Sopenharmony_cistatic unsigned int sd0_d0_mfp_pads[] = { SD0_D0 }; 7328c2ecf20Sopenharmony_cistatic unsigned int sd0_d0_mfp_funcs[] = { S700_MUX_SD0, 7338c2ecf20Sopenharmony_ci S700_MUX_NOR, 7348c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7358c2ecf20Sopenharmony_ci S700_MUX_JTAG, 7368c2ecf20Sopenharmony_ci S700_MUX_UART2, 7378c2ecf20Sopenharmony_ci S700_MUX_UART5 }; 7388c2ecf20Sopenharmony_ci/* sd0_d1 */ 7398c2ecf20Sopenharmony_cistatic unsigned int sd0_d1_mfp_pads[] = { SD0_D1 }; 7408c2ecf20Sopenharmony_cistatic unsigned int sd0_d1_mfp_funcs[] = { S700_MUX_SD0, 7418c2ecf20Sopenharmony_ci S700_MUX_NOR, 7428c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7438c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7448c2ecf20Sopenharmony_ci S700_MUX_UART2, 7458c2ecf20Sopenharmony_ci S700_MUX_UART5 }; 7468c2ecf20Sopenharmony_ci/* sd0_d2_d3 */ 7478c2ecf20Sopenharmony_cistatic unsigned int sd0_d2_d3_mfp_pads[] = { SD0_D2, 7488c2ecf20Sopenharmony_ci SD0_D3 }; 7498c2ecf20Sopenharmony_cistatic unsigned int sd0_d2_d3_mfp_funcs[] = { S700_MUX_SD0, 7508c2ecf20Sopenharmony_ci S700_MUX_NOR, 7518c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7528c2ecf20Sopenharmony_ci S700_MUX_JTAG, 7538c2ecf20Sopenharmony_ci S700_MUX_UART2, 7548c2ecf20Sopenharmony_ci S700_MUX_UART1 }; 7558c2ecf20Sopenharmony_ci 7568c2ecf20Sopenharmony_ci/* sd1_d0_d3 */ 7578c2ecf20Sopenharmony_cistatic unsigned int sd1_d0_d3_mfp_pads[] = { SD1_D0, 7588c2ecf20Sopenharmony_ci SD1_D1, 7598c2ecf20Sopenharmony_ci SD1_D2, 7608c2ecf20Sopenharmony_ci SD1_D3 }; 7618c2ecf20Sopenharmony_cistatic unsigned int sd1_d0_d3_mfp_funcs[] = { S700_MUX_SD0, 7628c2ecf20Sopenharmony_ci S700_MUX_NOR, 7638c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7648c2ecf20Sopenharmony_ci S700_MUX_SD1 }; 7658c2ecf20Sopenharmony_ci 7668c2ecf20Sopenharmony_ci/* sd0_cmd */ 7678c2ecf20Sopenharmony_cistatic unsigned int sd0_cmd_mfp_pads[] = { SD0_CMD }; 7688c2ecf20Sopenharmony_cistatic unsigned int sd0_cmd_mfp_funcs[] = { S700_MUX_SD0, 7698c2ecf20Sopenharmony_ci S700_MUX_NOR, 7708c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7718c2ecf20Sopenharmony_ci S700_MUX_JTAG }; 7728c2ecf20Sopenharmony_ci/* sd0_clk */ 7738c2ecf20Sopenharmony_cistatic unsigned int sd0_clk_mfp_pads[] = { SD0_CLK }; 7748c2ecf20Sopenharmony_cistatic unsigned int sd0_clk_mfp_funcs[] = { S700_MUX_SD0, 7758c2ecf20Sopenharmony_ci S700_MUX_RESERVED, 7768c2ecf20Sopenharmony_ci S700_MUX_JTAG }; 7778c2ecf20Sopenharmony_ci/* sd1_cmd */ 7788c2ecf20Sopenharmony_cistatic unsigned int sd1_cmd_mfp_pads[] = { SD1_CMD }; 7798c2ecf20Sopenharmony_cistatic unsigned int sd1_cmd_mfp_funcs[] = { S700_MUX_SD1, 7808c2ecf20Sopenharmony_ci S700_MUX_NOR }; 7818c2ecf20Sopenharmony_ci/* uart0_rx */ 7828c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_mfp_pads[] = { UART0_RX }; 7838c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_mfp_funcs[] = { S700_MUX_UART0, 7848c2ecf20Sopenharmony_ci S700_MUX_UART2, 7858c2ecf20Sopenharmony_ci S700_MUX_SPI1, 7868c2ecf20Sopenharmony_ci S700_MUX_I2C0, 7878c2ecf20Sopenharmony_ci S700_MUX_PCM1, 7888c2ecf20Sopenharmony_ci S700_MUX_I2S1 }; 7898c2ecf20Sopenharmony_ci/* dnand_data_wr1 reserved */ 7908c2ecf20Sopenharmony_ci 7918c2ecf20Sopenharmony_ci/* clko_25m */ 7928c2ecf20Sopenharmony_cistatic unsigned int clko_25m_mfp_pads[] = { CLKO_25M }; 7938c2ecf20Sopenharmony_cistatic unsigned int clko_25m_mfp_funcs[] = { S700_MUX_RESERVED, 7948c2ecf20Sopenharmony_ci S700_MUX_CLKO_25M }; 7958c2ecf20Sopenharmony_ci/* csi_cn_cp */ 7968c2ecf20Sopenharmony_cistatic unsigned int csi_cn_cp_mfp_pads[] = { CSI_CN, 7978c2ecf20Sopenharmony_ci CSI_CP }; 7988c2ecf20Sopenharmony_cistatic unsigned int csi_cn_cp_mfp_funcs[] = { S700_MUX_MIPI_CSI, 7998c2ecf20Sopenharmony_ci S700_MUX_SENS0 }; 8008c2ecf20Sopenharmony_ci/* dnand_acle_ce07_24 reserved */ 8018c2ecf20Sopenharmony_ci 8028c2ecf20Sopenharmony_ci/* sens0_ckout */ 8038c2ecf20Sopenharmony_cistatic unsigned int sens0_ckout_mfp_pads[] = { SENSOR0_CKOUT }; 8048c2ecf20Sopenharmony_cistatic unsigned int sens0_ckout_mfp_funcs[] = { S700_MUX_SENS0, 8058c2ecf20Sopenharmony_ci S700_MUX_NOR, 8068c2ecf20Sopenharmony_ci S700_MUX_SENS1, 8078c2ecf20Sopenharmony_ci S700_MUX_PWM1 }; 8088c2ecf20Sopenharmony_ci/* uart0_tx */ 8098c2ecf20Sopenharmony_cistatic unsigned int uart0_tx_mfp_pads[] = { UART0_TX }; 8108c2ecf20Sopenharmony_cistatic unsigned int uart0_tx_mfp_funcs[] = { S700_MUX_UART0, 8118c2ecf20Sopenharmony_ci S700_MUX_UART2, 8128c2ecf20Sopenharmony_ci S700_MUX_SPI1, 8138c2ecf20Sopenharmony_ci S700_MUX_I2C0, 8148c2ecf20Sopenharmony_ci S700_MUX_SPDIF, 8158c2ecf20Sopenharmony_ci S700_MUX_PCM1, 8168c2ecf20Sopenharmony_ci S700_MUX_I2S1 }; 8178c2ecf20Sopenharmony_ci/* i2c0_mfp */ 8188c2ecf20Sopenharmony_cistatic unsigned int i2c0_mfp_pads[] = { I2C0_SCLK, 8198c2ecf20Sopenharmony_ci I2C0_SDATA }; 8208c2ecf20Sopenharmony_cistatic unsigned int i2c0_mfp_funcs[] = { S700_MUX_I2C0, 8218c2ecf20Sopenharmony_ci S700_MUX_UART2, 8228c2ecf20Sopenharmony_ci S700_MUX_I2C1, 8238c2ecf20Sopenharmony_ci S700_MUX_UART1, 8248c2ecf20Sopenharmony_ci S700_MUX_SPI1 }; 8258c2ecf20Sopenharmony_ci/* csi_dn_dp */ 8268c2ecf20Sopenharmony_cistatic unsigned int csi_dn_dp_mfp_pads[] = { CSI_DN0, 8278c2ecf20Sopenharmony_ci CSI_DN1, 8288c2ecf20Sopenharmony_ci CSI_DN2, 8298c2ecf20Sopenharmony_ci CSI_DN3, 8308c2ecf20Sopenharmony_ci CSI_DP0, 8318c2ecf20Sopenharmony_ci CSI_DP1, 8328c2ecf20Sopenharmony_ci CSI_DP2, 8338c2ecf20Sopenharmony_ci CSI_DP3 }; 8348c2ecf20Sopenharmony_cistatic unsigned int csi_dn_dp_mfp_funcs[] = { S700_MUX_MIPI_CSI, 8358c2ecf20Sopenharmony_ci S700_MUX_SENS0 }; 8368c2ecf20Sopenharmony_ci/* sen0_pclk */ 8378c2ecf20Sopenharmony_cistatic unsigned int sen0_pclk_mfp_pads[] = { SENSOR0_PCLK }; 8388c2ecf20Sopenharmony_cistatic unsigned int sen0_pclk_mfp_funcs[] = { S700_MUX_SENS0, 8398c2ecf20Sopenharmony_ci S700_MUX_NOR, 8408c2ecf20Sopenharmony_ci S700_MUX_PWM0 }; 8418c2ecf20Sopenharmony_ci/* pcm1_in */ 8428c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_mfp_pads[] = { PCM1_IN }; 8438c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_mfp_funcs[] = { S700_MUX_PCM1, 8448c2ecf20Sopenharmony_ci S700_MUX_SENS1, 8458c2ecf20Sopenharmony_ci S700_MUX_BT, 8468c2ecf20Sopenharmony_ci S700_MUX_PWM4 }; 8478c2ecf20Sopenharmony_ci/* pcm1_clk */ 8488c2ecf20Sopenharmony_cistatic unsigned int pcm1_clk_mfp_pads[] = { PCM1_CLK }; 8498c2ecf20Sopenharmony_cistatic unsigned int pcm1_clk_mfp_funcs[] = { S700_MUX_PCM1, 8508c2ecf20Sopenharmony_ci S700_MUX_SENS1, 8518c2ecf20Sopenharmony_ci S700_MUX_BT, 8528c2ecf20Sopenharmony_ci S700_MUX_PWM5 }; 8538c2ecf20Sopenharmony_ci/* pcm1_sync */ 8548c2ecf20Sopenharmony_cistatic unsigned int pcm1_sync_mfp_pads[] = { PCM1_SYNC }; 8558c2ecf20Sopenharmony_cistatic unsigned int pcm1_sync_mfp_funcs[] = { S700_MUX_PCM1, 8568c2ecf20Sopenharmony_ci S700_MUX_SENS1, 8578c2ecf20Sopenharmony_ci S700_MUX_BT, 8588c2ecf20Sopenharmony_ci S700_MUX_I2C3 }; 8598c2ecf20Sopenharmony_ci/* pcm1_out */ 8608c2ecf20Sopenharmony_cistatic unsigned int pcm1_out_mfp_pads[] = { PCM1_OUT }; 8618c2ecf20Sopenharmony_cistatic unsigned int pcm1_out_mfp_funcs[] = { S700_MUX_PCM1, 8628c2ecf20Sopenharmony_ci S700_MUX_SENS1, 8638c2ecf20Sopenharmony_ci S700_MUX_BT, 8648c2ecf20Sopenharmony_ci S700_MUX_I2C3 }; 8658c2ecf20Sopenharmony_ci/* dnand_data_wr */ 8668c2ecf20Sopenharmony_cistatic unsigned int dnand_data_wr_mfp_pads[] = { DNAND_D0, 8678c2ecf20Sopenharmony_ci DNAND_D1, 8688c2ecf20Sopenharmony_ci DNAND_D2, 8698c2ecf20Sopenharmony_ci DNAND_D3, 8708c2ecf20Sopenharmony_ci DNAND_D4, 8718c2ecf20Sopenharmony_ci DNAND_D5, 8728c2ecf20Sopenharmony_ci DNAND_D6, 8738c2ecf20Sopenharmony_ci DNAND_D7, 8748c2ecf20Sopenharmony_ci DNAND_RDB, 8758c2ecf20Sopenharmony_ci DNAND_RDBN }; 8768c2ecf20Sopenharmony_cistatic unsigned int dnand_data_wr_mfp_funcs[] = { S700_MUX_NAND, 8778c2ecf20Sopenharmony_ci S700_MUX_SD2 }; 8788c2ecf20Sopenharmony_ci/* dnand_acle_ce0 */ 8798c2ecf20Sopenharmony_cistatic unsigned int dnand_acle_ce0_mfp_pads[] = { DNAND_ALE, 8808c2ecf20Sopenharmony_ci DNAND_CLE, 8818c2ecf20Sopenharmony_ci DNAND_CEB0, 8828c2ecf20Sopenharmony_ci DNAND_CEB1 }; 8838c2ecf20Sopenharmony_cistatic unsigned int dnand_acle_ce0_mfp_funcs[] = { S700_MUX_NAND, 8848c2ecf20Sopenharmony_ci S700_MUX_SPI2 }; 8858c2ecf20Sopenharmony_ci 8868c2ecf20Sopenharmony_ci/* nand_ceb2 */ 8878c2ecf20Sopenharmony_cistatic unsigned int nand_ceb2_mfp_pads[] = { DNAND_CEB2 }; 8888c2ecf20Sopenharmony_cistatic unsigned int nand_ceb2_mfp_funcs[] = { S700_MUX_NAND, 8898c2ecf20Sopenharmony_ci S700_MUX_PWM5 }; 8908c2ecf20Sopenharmony_ci/* nand_ceb3 */ 8918c2ecf20Sopenharmony_cistatic unsigned int nand_ceb3_mfp_pads[] = { DNAND_CEB3 }; 8928c2ecf20Sopenharmony_cistatic unsigned int nand_ceb3_mfp_funcs[] = { S700_MUX_NAND, 8938c2ecf20Sopenharmony_ci S700_MUX_PWM4 }; 8948c2ecf20Sopenharmony_ci/*****End MFP group data****************************/ 8958c2ecf20Sopenharmony_ci 8968c2ecf20Sopenharmony_ci/*****PADDRV group data****************************/ 8978c2ecf20Sopenharmony_ci 8988c2ecf20Sopenharmony_ci/*PAD_DRV0*/ 8998c2ecf20Sopenharmony_cistatic unsigned int sirq_drv_pads[] = { SIRQ0, 9008c2ecf20Sopenharmony_ci SIRQ1, 9018c2ecf20Sopenharmony_ci SIRQ2 }; 9028c2ecf20Sopenharmony_ci 9038c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd23_drv_pads[] = { ETH_TXD2, 9048c2ecf20Sopenharmony_ci ETH_TXD3 }; 9058c2ecf20Sopenharmony_ci 9068c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd23_drv_pads[] = { ETH_RXD2, 9078c2ecf20Sopenharmony_ci ETH_RXD3 }; 9088c2ecf20Sopenharmony_ci 9098c2ecf20Sopenharmony_cistatic unsigned int rgmii_txd01_txen_drv_pads[] = { ETH_TXD0, 9108c2ecf20Sopenharmony_ci ETH_TXD1, 9118c2ecf20Sopenharmony_ci ETH_TXEN }; 9128c2ecf20Sopenharmony_ci 9138c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxer_drv_pads[] = { ETH_RXER }; 9148c2ecf20Sopenharmony_ci 9158c2ecf20Sopenharmony_cistatic unsigned int rgmii_crs_drv_pads[] = { ETH_CRS_DV }; 9168c2ecf20Sopenharmony_ci 9178c2ecf20Sopenharmony_cistatic unsigned int rgmii_rxd10_drv_pads[] = { ETH_RXD0, 9188c2ecf20Sopenharmony_ci ETH_RXD1 }; 9198c2ecf20Sopenharmony_ci 9208c2ecf20Sopenharmony_cistatic unsigned int rgmii_ref_clk_drv_pads[] = { ETH_REF_CLK }; 9218c2ecf20Sopenharmony_ci 9228c2ecf20Sopenharmony_cistatic unsigned int smi_mdc_mdio_drv_pads[] = { ETH_MDC, 9238c2ecf20Sopenharmony_ci ETH_MDIO }; 9248c2ecf20Sopenharmony_ci 9258c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_drv_pads[] = { I2S_D0 }; 9268c2ecf20Sopenharmony_ci 9278c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk0_drv_pads[] = { I2S_BCLK0 }; 9288c2ecf20Sopenharmony_ci 9298c2ecf20Sopenharmony_cistatic unsigned int i2s3_drv_pads[] = { I2S_LRCLK0, 9308c2ecf20Sopenharmony_ci I2S_MCLK0, 9318c2ecf20Sopenharmony_ci I2S_D1 }; 9328c2ecf20Sopenharmony_ci 9338c2ecf20Sopenharmony_cistatic unsigned int i2s13_drv_pads[] = { I2S_BCLK1, 9348c2ecf20Sopenharmony_ci I2S_LRCLK1, 9358c2ecf20Sopenharmony_ci I2S_MCLK1 }; 9368c2ecf20Sopenharmony_ci 9378c2ecf20Sopenharmony_cistatic unsigned int pcm1_drv_pads[] = { PCM1_IN, 9388c2ecf20Sopenharmony_ci PCM1_CLK, 9398c2ecf20Sopenharmony_ci PCM1_SYNC, 9408c2ecf20Sopenharmony_ci PCM1_OUT }; 9418c2ecf20Sopenharmony_ci 9428c2ecf20Sopenharmony_cistatic unsigned int ks_in_drv_pads[] = { KS_IN0, 9438c2ecf20Sopenharmony_ci KS_IN1, 9448c2ecf20Sopenharmony_ci KS_IN2, 9458c2ecf20Sopenharmony_ci KS_IN3 }; 9468c2ecf20Sopenharmony_ci 9478c2ecf20Sopenharmony_ci/*PAD_DRV1*/ 9488c2ecf20Sopenharmony_cistatic unsigned int ks_out_drv_pads[] = { KS_OUT0, 9498c2ecf20Sopenharmony_ci KS_OUT1, 9508c2ecf20Sopenharmony_ci KS_OUT2 }; 9518c2ecf20Sopenharmony_ci 9528c2ecf20Sopenharmony_cistatic unsigned int lvds_all_drv_pads[] = { LVDS_OEP, 9538c2ecf20Sopenharmony_ci LVDS_OEN, 9548c2ecf20Sopenharmony_ci LVDS_ODP, 9558c2ecf20Sopenharmony_ci LVDS_ODN, 9568c2ecf20Sopenharmony_ci LVDS_OCP, 9578c2ecf20Sopenharmony_ci LVDS_OCN, 9588c2ecf20Sopenharmony_ci LVDS_OBP, 9598c2ecf20Sopenharmony_ci LVDS_OBN, 9608c2ecf20Sopenharmony_ci LVDS_OAP, 9618c2ecf20Sopenharmony_ci LVDS_OAN, 9628c2ecf20Sopenharmony_ci LVDS_EEP, 9638c2ecf20Sopenharmony_ci LVDS_EEN, 9648c2ecf20Sopenharmony_ci LVDS_EDP, 9658c2ecf20Sopenharmony_ci LVDS_EDN, 9668c2ecf20Sopenharmony_ci LVDS_ECP, 9678c2ecf20Sopenharmony_ci LVDS_ECN, 9688c2ecf20Sopenharmony_ci LVDS_EBP, 9698c2ecf20Sopenharmony_ci LVDS_EBN, 9708c2ecf20Sopenharmony_ci LVDS_EAP, 9718c2ecf20Sopenharmony_ci LVDS_EAN }; 9728c2ecf20Sopenharmony_ci 9738c2ecf20Sopenharmony_cistatic unsigned int lcd_d18_d2_drv_pads[] = { LCD0_D18, 9748c2ecf20Sopenharmony_ci LCD0_D2 }; 9758c2ecf20Sopenharmony_ci 9768c2ecf20Sopenharmony_cistatic unsigned int dsi_all_drv_pads[] = { DSI_DP0, 9778c2ecf20Sopenharmony_ci DSI_DN0, 9788c2ecf20Sopenharmony_ci DSI_DP2, 9798c2ecf20Sopenharmony_ci DSI_DN2, 9808c2ecf20Sopenharmony_ci DSI_DP3, 9818c2ecf20Sopenharmony_ci DSI_DN3, 9828c2ecf20Sopenharmony_ci DSI_DP1, 9838c2ecf20Sopenharmony_ci DSI_DN1, 9848c2ecf20Sopenharmony_ci DSI_CP, 9858c2ecf20Sopenharmony_ci DSI_CN }; 9868c2ecf20Sopenharmony_ci 9878c2ecf20Sopenharmony_cistatic unsigned int sd0_d0_d3_drv_pads[] = { SD0_D0, 9888c2ecf20Sopenharmony_ci SD0_D1, 9898c2ecf20Sopenharmony_ci SD0_D2, 9908c2ecf20Sopenharmony_ci SD0_D3 }; 9918c2ecf20Sopenharmony_ci 9928c2ecf20Sopenharmony_cistatic unsigned int sd0_cmd_drv_pads[] = { SD0_CMD }; 9938c2ecf20Sopenharmony_ci 9948c2ecf20Sopenharmony_cistatic unsigned int sd0_clk_drv_pads[] = { SD0_CLK }; 9958c2ecf20Sopenharmony_ci 9968c2ecf20Sopenharmony_cistatic unsigned int spi0_all_drv_pads[] = { SPI0_SS, 9978c2ecf20Sopenharmony_ci SPI0_MISO }; 9988c2ecf20Sopenharmony_ci 9998c2ecf20Sopenharmony_ci/*PAD_DRV2*/ 10008c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_drv_pads[] = { UART0_RX }; 10018c2ecf20Sopenharmony_ci 10028c2ecf20Sopenharmony_cistatic unsigned int uart0_tx_drv_pads[] = { UART0_TX }; 10038c2ecf20Sopenharmony_ci 10048c2ecf20Sopenharmony_cistatic unsigned int uart2_all_drv_pads[] = { UART2_RX, 10058c2ecf20Sopenharmony_ci UART2_TX, 10068c2ecf20Sopenharmony_ci UART2_RTSB, 10078c2ecf20Sopenharmony_ci UART2_CTSB }; 10088c2ecf20Sopenharmony_ci 10098c2ecf20Sopenharmony_cistatic unsigned int i2c0_all_drv_pads[] = { I2C0_SCLK, 10108c2ecf20Sopenharmony_ci I2C0_SDATA }; 10118c2ecf20Sopenharmony_ci 10128c2ecf20Sopenharmony_cistatic unsigned int i2c12_all_drv_pads[] = { I2C1_SCLK, 10138c2ecf20Sopenharmony_ci I2C1_SDATA, 10148c2ecf20Sopenharmony_ci I2C2_SCLK, 10158c2ecf20Sopenharmony_ci I2C2_SDATA }; 10168c2ecf20Sopenharmony_ci 10178c2ecf20Sopenharmony_cistatic unsigned int sens0_pclk_drv_pads[] = { SENSOR0_PCLK }; 10188c2ecf20Sopenharmony_ci 10198c2ecf20Sopenharmony_cistatic unsigned int sens0_ckout_drv_pads[] = { SENSOR0_CKOUT }; 10208c2ecf20Sopenharmony_ci 10218c2ecf20Sopenharmony_cistatic unsigned int uart3_all_drv_pads[] = { UART3_RX, 10228c2ecf20Sopenharmony_ci UART3_TX, 10238c2ecf20Sopenharmony_ci UART3_RTSB, 10248c2ecf20Sopenharmony_ci UART3_CTSB }; 10258c2ecf20Sopenharmony_ci 10268c2ecf20Sopenharmony_ci/* all pinctrl groups of S700 board */ 10278c2ecf20Sopenharmony_cistatic const struct owl_pingroup s700_groups[] = { 10288c2ecf20Sopenharmony_ci MUX_PG(rgmii_txd23_mfp, 0, 28, 2), 10298c2ecf20Sopenharmony_ci MUX_PG(rgmii_rxd2_mfp, 0, 26, 2), 10308c2ecf20Sopenharmony_ci MUX_PG(rgmii_rxd3_mfp, 0, 26, 2), 10318c2ecf20Sopenharmony_ci MUX_PG(lcd0_d18_mfp, 0, 23, 3), 10328c2ecf20Sopenharmony_ci MUX_PG(rgmii_txd01_mfp, 0, 20, 3), 10338c2ecf20Sopenharmony_ci MUX_PG(rgmii_txd0_mfp, 0, 16, 3), 10348c2ecf20Sopenharmony_ci MUX_PG(rgmii_txd1_mfp, 0, 16, 3), 10358c2ecf20Sopenharmony_ci MUX_PG(rgmii_txen_mfp, 0, 13, 3), 10368c2ecf20Sopenharmony_ci MUX_PG(rgmii_rxen_mfp, 0, 13, 3), 10378c2ecf20Sopenharmony_ci MUX_PG(rgmii_rxd1_mfp, 0, 8, 3), 10388c2ecf20Sopenharmony_ci MUX_PG(rgmii_rxd0_mfp, 0, 8, 3), 10398c2ecf20Sopenharmony_ci MUX_PG(rgmii_ref_clk_mfp, 0, 6, 2), 10408c2ecf20Sopenharmony_ci MUX_PG(i2s_d0_mfp, 0, 5, 1), 10418c2ecf20Sopenharmony_ci MUX_PG(i2s_pcm1_mfp, 0, 3, 2), 10428c2ecf20Sopenharmony_ci MUX_PG(i2s0_pcm0_mfp, 0, 1, 2), 10438c2ecf20Sopenharmony_ci MUX_PG(i2s1_pcm0_mfp, 0, 1, 2), 10448c2ecf20Sopenharmony_ci MUX_PG(i2s_d1_mfp, 0, 0, 1), 10458c2ecf20Sopenharmony_ci MUX_PG(ks_in2_mfp, 1, 29, 3), 10468c2ecf20Sopenharmony_ci MUX_PG(ks_in1_mfp, 1, 29, 3), 10478c2ecf20Sopenharmony_ci MUX_PG(ks_in0_mfp, 1, 29, 3), 10488c2ecf20Sopenharmony_ci MUX_PG(ks_in3_mfp, 1, 26, 3), 10498c2ecf20Sopenharmony_ci MUX_PG(ks_out0_mfp, 1, 26, 3), 10508c2ecf20Sopenharmony_ci MUX_PG(ks_out1_mfp, 1, 26, 3), 10518c2ecf20Sopenharmony_ci MUX_PG(ks_out2_mfp, 1, 23, 3), 10528c2ecf20Sopenharmony_ci MUX_PG(lvds_o_pn_mfp, 1, 21, 2), 10538c2ecf20Sopenharmony_ci MUX_PG(dsi_dn0_mfp, 1, 19, 2), 10548c2ecf20Sopenharmony_ci MUX_PG(dsi_dp2_mfp, 1, 17, 2), 10558c2ecf20Sopenharmony_ci MUX_PG(lcd0_d2_mfp, 1, 14, 3), 10568c2ecf20Sopenharmony_ci MUX_PG(dsi_dp3_mfp, 1, 12, 2), 10578c2ecf20Sopenharmony_ci MUX_PG(dsi_dn3_mfp, 1, 10, 2), 10588c2ecf20Sopenharmony_ci MUX_PG(dsi_dp0_mfp, 1, 7, 3), 10598c2ecf20Sopenharmony_ci MUX_PG(lvds_ee_pn_mfp, 1, 5, 2), 10608c2ecf20Sopenharmony_ci MUX_PG(uart2_rx_tx_mfp, 1, 3, 2), 10618c2ecf20Sopenharmony_ci MUX_PG(spi0_i2c_pcm_mfp, 1, 0, 3), 10628c2ecf20Sopenharmony_ci MUX_PG(dsi_dnp1_cp_d2_mfp, 2, 29, 2), 10638c2ecf20Sopenharmony_ci MUX_PG(dsi_dnp1_cp_d17_mfp, 2, 29, 2), 10648c2ecf20Sopenharmony_ci MUX_PG(lvds_e_pn_mfp, 2, 27, 2), 10658c2ecf20Sopenharmony_ci MUX_PG(dsi_dn2_mfp, 2, 24, 3), 10668c2ecf20Sopenharmony_ci MUX_PG(uart2_rtsb_mfp, 2, 23, 1), 10678c2ecf20Sopenharmony_ci MUX_PG(uart2_ctsb_mfp, 2, 22, 1), 10688c2ecf20Sopenharmony_ci MUX_PG(uart3_rtsb_mfp, 2, 21, 1), 10698c2ecf20Sopenharmony_ci MUX_PG(uart3_ctsb_mfp, 2, 20, 1), 10708c2ecf20Sopenharmony_ci MUX_PG(sd0_d0_mfp, 2, 17, 3), 10718c2ecf20Sopenharmony_ci MUX_PG(sd0_d1_mfp, 2, 14, 3), 10728c2ecf20Sopenharmony_ci MUX_PG(sd0_d2_d3_mfp, 2, 11, 3), 10738c2ecf20Sopenharmony_ci MUX_PG(sd1_d0_d3_mfp, 2, 9, 2), 10748c2ecf20Sopenharmony_ci MUX_PG(sd0_cmd_mfp, 2, 7, 2), 10758c2ecf20Sopenharmony_ci MUX_PG(sd0_clk_mfp, 2, 5, 2), 10768c2ecf20Sopenharmony_ci MUX_PG(sd1_cmd_mfp, 2, 3, 2), 10778c2ecf20Sopenharmony_ci MUX_PG(uart0_rx_mfp, 2, 0, 3), 10788c2ecf20Sopenharmony_ci MUX_PG(clko_25m_mfp, 3, 30, 1), 10798c2ecf20Sopenharmony_ci MUX_PG(csi_cn_cp_mfp, 3, 28, 2), 10808c2ecf20Sopenharmony_ci MUX_PG(sens0_ckout_mfp, 3, 22, 2), 10818c2ecf20Sopenharmony_ci MUX_PG(uart0_tx_mfp, 3, 19, 3), 10828c2ecf20Sopenharmony_ci MUX_PG(i2c0_mfp, 3, 16, 3), 10838c2ecf20Sopenharmony_ci MUX_PG(csi_dn_dp_mfp, 3, 14, 2), 10848c2ecf20Sopenharmony_ci MUX_PG(sen0_pclk_mfp, 3, 12, 2), 10858c2ecf20Sopenharmony_ci MUX_PG(pcm1_in_mfp, 3, 10, 2), 10868c2ecf20Sopenharmony_ci MUX_PG(pcm1_clk_mfp, 3, 8, 2), 10878c2ecf20Sopenharmony_ci MUX_PG(pcm1_sync_mfp, 3, 6, 2), 10888c2ecf20Sopenharmony_ci MUX_PG(pcm1_out_mfp, 3, 4, 2), 10898c2ecf20Sopenharmony_ci MUX_PG(dnand_data_wr_mfp, 3, 3, 1), 10908c2ecf20Sopenharmony_ci MUX_PG(dnand_acle_ce0_mfp, 3, 2, 1), 10918c2ecf20Sopenharmony_ci MUX_PG(nand_ceb2_mfp, 3, 0, 2), 10928c2ecf20Sopenharmony_ci MUX_PG(nand_ceb3_mfp, 3, 0, 2), 10938c2ecf20Sopenharmony_ci 10948c2ecf20Sopenharmony_ci DRV_PG(sirq_drv, 0, 28, 2), 10958c2ecf20Sopenharmony_ci DRV_PG(rgmii_txd23_drv, 0, 26, 2), 10968c2ecf20Sopenharmony_ci DRV_PG(rgmii_rxd23_drv, 0, 24, 2), 10978c2ecf20Sopenharmony_ci DRV_PG(rgmii_txd01_txen_drv, 0, 22, 2), 10988c2ecf20Sopenharmony_ci DRV_PG(rgmii_rxer_drv, 0, 20, 2), 10998c2ecf20Sopenharmony_ci DRV_PG(rgmii_crs_drv, 0, 18, 2), 11008c2ecf20Sopenharmony_ci DRV_PG(rgmii_rxd10_drv, 0, 16, 2), 11018c2ecf20Sopenharmony_ci DRV_PG(rgmii_ref_clk_drv, 0, 14, 2), 11028c2ecf20Sopenharmony_ci DRV_PG(smi_mdc_mdio_drv, 0, 12, 2), 11038c2ecf20Sopenharmony_ci DRV_PG(i2s_d0_drv, 0, 10, 2), 11048c2ecf20Sopenharmony_ci DRV_PG(i2s_bclk0_drv, 0, 8, 2), 11058c2ecf20Sopenharmony_ci DRV_PG(i2s3_drv, 0, 6, 2), 11068c2ecf20Sopenharmony_ci DRV_PG(i2s13_drv, 0, 4, 2), 11078c2ecf20Sopenharmony_ci DRV_PG(pcm1_drv, 0, 2, 2), 11088c2ecf20Sopenharmony_ci DRV_PG(ks_in_drv, 0, 0, 2), 11098c2ecf20Sopenharmony_ci DRV_PG(ks_out_drv, 1, 30, 2), 11108c2ecf20Sopenharmony_ci DRV_PG(lvds_all_drv, 1, 28, 2), 11118c2ecf20Sopenharmony_ci DRV_PG(lcd_d18_d2_drv, 1, 26, 2), 11128c2ecf20Sopenharmony_ci DRV_PG(dsi_all_drv, 1, 24, 2), 11138c2ecf20Sopenharmony_ci DRV_PG(sd0_d0_d3_drv, 1, 22, 2), 11148c2ecf20Sopenharmony_ci DRV_PG(sd0_cmd_drv, 1, 18, 2), 11158c2ecf20Sopenharmony_ci DRV_PG(sd0_clk_drv, 1, 16, 2), 11168c2ecf20Sopenharmony_ci DRV_PG(spi0_all_drv, 1, 10, 2), 11178c2ecf20Sopenharmony_ci DRV_PG(uart0_rx_drv, 2, 30, 2), 11188c2ecf20Sopenharmony_ci DRV_PG(uart0_tx_drv, 2, 28, 2), 11198c2ecf20Sopenharmony_ci DRV_PG(uart2_all_drv, 2, 26, 2), 11208c2ecf20Sopenharmony_ci DRV_PG(i2c0_all_drv, 2, 23, 2), 11218c2ecf20Sopenharmony_ci DRV_PG(i2c12_all_drv, 2, 21, 2), 11228c2ecf20Sopenharmony_ci DRV_PG(sens0_pclk_drv, 2, 18, 2), 11238c2ecf20Sopenharmony_ci DRV_PG(sens0_ckout_drv, 2, 12, 2), 11248c2ecf20Sopenharmony_ci DRV_PG(uart3_all_drv, 2, 2, 2), 11258c2ecf20Sopenharmony_ci}; 11268c2ecf20Sopenharmony_ci 11278c2ecf20Sopenharmony_cistatic const char * const nor_groups[] = { 11288c2ecf20Sopenharmony_ci "lcd0_d18_mfp", 11298c2ecf20Sopenharmony_ci "i2s_d0_mfp", 11308c2ecf20Sopenharmony_ci "i2s0_pcm0_mfp", 11318c2ecf20Sopenharmony_ci "i2s1_pcm0_mfp", 11328c2ecf20Sopenharmony_ci "i2s_d1_mfp", 11338c2ecf20Sopenharmony_ci "ks_in2_mfp", 11348c2ecf20Sopenharmony_ci "ks_in1_mfp", 11358c2ecf20Sopenharmony_ci "ks_in0_mfp", 11368c2ecf20Sopenharmony_ci "ks_in3_mfp", 11378c2ecf20Sopenharmony_ci "ks_out0_mfp", 11388c2ecf20Sopenharmony_ci "ks_out1_mfp", 11398c2ecf20Sopenharmony_ci "ks_out2_mfp", 11408c2ecf20Sopenharmony_ci "lcd0_d2_mfp", 11418c2ecf20Sopenharmony_ci "lvds_ee_pn_mfp", 11428c2ecf20Sopenharmony_ci "uart2_rx_tx_mfp", 11438c2ecf20Sopenharmony_ci "spi0_i2c_pcm_mfp", 11448c2ecf20Sopenharmony_ci "lvds_e_pn_mfp", 11458c2ecf20Sopenharmony_ci "sd0_d0_mfp", 11468c2ecf20Sopenharmony_ci "sd0_d1_mfp", 11478c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 11488c2ecf20Sopenharmony_ci "sd1_d0_d3_mfp", 11498c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 11508c2ecf20Sopenharmony_ci "sd1_cmd_mfp", 11518c2ecf20Sopenharmony_ci "sens0_ckout_mfp", 11528c2ecf20Sopenharmony_ci "sen0_pclk_mfp", 11538c2ecf20Sopenharmony_ci}; 11548c2ecf20Sopenharmony_ci 11558c2ecf20Sopenharmony_cistatic const char * const eth_rmii_groups[] = { 11568c2ecf20Sopenharmony_ci "rgmii_txd23_mfp", 11578c2ecf20Sopenharmony_ci "rgmii_rxd2_mfp", 11588c2ecf20Sopenharmony_ci "rgmii_rxd3_mfp", 11598c2ecf20Sopenharmony_ci "rgmii_txd01_mfp", 11608c2ecf20Sopenharmony_ci "rgmii_txd0_mfp", 11618c2ecf20Sopenharmony_ci "rgmii_txd1_mfp", 11628c2ecf20Sopenharmony_ci "rgmii_txen_mfp", 11638c2ecf20Sopenharmony_ci "rgmii_rxen_mfp", 11648c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 11658c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 11668c2ecf20Sopenharmony_ci "rgmii_ref_clk_mfp", 11678c2ecf20Sopenharmony_ci "eth_smi_dummy", 11688c2ecf20Sopenharmony_ci}; 11698c2ecf20Sopenharmony_ci 11708c2ecf20Sopenharmony_cistatic const char * const eth_smii_groups[] = { 11718c2ecf20Sopenharmony_ci "rgmii_txd0_mfp", 11728c2ecf20Sopenharmony_ci "rgmii_txd1_mfp", 11738c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 11748c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 11758c2ecf20Sopenharmony_ci "rgmii_ref_clk_mfp", 11768c2ecf20Sopenharmony_ci "eth_smi_dummy", 11778c2ecf20Sopenharmony_ci}; 11788c2ecf20Sopenharmony_ci 11798c2ecf20Sopenharmony_cistatic const char * const spi0_groups[] = { 11808c2ecf20Sopenharmony_ci "dsi_dn0_mfp", 11818c2ecf20Sopenharmony_ci "dsi_dp2_mfp", 11828c2ecf20Sopenharmony_ci "dsi_dp0_mfp", 11838c2ecf20Sopenharmony_ci "uart2_rx_tx_mfp", 11848c2ecf20Sopenharmony_ci "spi0_i2c_pcm_mfp", 11858c2ecf20Sopenharmony_ci "dsi_dn2_mfp", 11868c2ecf20Sopenharmony_ci}; 11878c2ecf20Sopenharmony_ci 11888c2ecf20Sopenharmony_cistatic const char * const spi1_groups[] = { 11898c2ecf20Sopenharmony_ci "uart0_rx_mfp", 11908c2ecf20Sopenharmony_ci "uart0_tx_mfp", 11918c2ecf20Sopenharmony_ci "i2c0_mfp", 11928c2ecf20Sopenharmony_ci}; 11938c2ecf20Sopenharmony_ci 11948c2ecf20Sopenharmony_cistatic const char * const spi2_groups[] = { 11958c2ecf20Sopenharmony_ci "rgmii_txd01_mfp", 11968c2ecf20Sopenharmony_ci "rgmii_txd0_mfp", 11978c2ecf20Sopenharmony_ci "rgmii_txd1_mfp", 11988c2ecf20Sopenharmony_ci "rgmii_ref_clk_mfp", 11998c2ecf20Sopenharmony_ci "dnand_acle_ce0_mfp", 12008c2ecf20Sopenharmony_ci}; 12018c2ecf20Sopenharmony_ci 12028c2ecf20Sopenharmony_cistatic const char * const spi3_groups[] = { 12038c2ecf20Sopenharmony_ci "rgmii_txen_mfp", 12048c2ecf20Sopenharmony_ci "rgmii_rxen_mfp", 12058c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 12068c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 12078c2ecf20Sopenharmony_ci}; 12088c2ecf20Sopenharmony_ci 12098c2ecf20Sopenharmony_cistatic const char * const sens0_groups[] = { 12108c2ecf20Sopenharmony_ci "csi_cn_cp_mfp", 12118c2ecf20Sopenharmony_ci "sens0_ckout_mfp", 12128c2ecf20Sopenharmony_ci "csi_dn_dp_mfp", 12138c2ecf20Sopenharmony_ci "sen0_pclk_mfp", 12148c2ecf20Sopenharmony_ci}; 12158c2ecf20Sopenharmony_ci 12168c2ecf20Sopenharmony_cistatic const char * const sens1_groups[] = { 12178c2ecf20Sopenharmony_ci "lcd0_d18_mfp", 12188c2ecf20Sopenharmony_ci "ks_in2_mfp", 12198c2ecf20Sopenharmony_ci "ks_in1_mfp", 12208c2ecf20Sopenharmony_ci "ks_in0_mfp", 12218c2ecf20Sopenharmony_ci "ks_in3_mfp", 12228c2ecf20Sopenharmony_ci "ks_out0_mfp", 12238c2ecf20Sopenharmony_ci "ks_out1_mfp", 12248c2ecf20Sopenharmony_ci "ks_out2_mfp", 12258c2ecf20Sopenharmony_ci "sens0_ckout_mfp", 12268c2ecf20Sopenharmony_ci "pcm1_in_mfp", 12278c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 12288c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 12298c2ecf20Sopenharmony_ci "pcm1_out_mfp", 12308c2ecf20Sopenharmony_ci}; 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_cistatic const char * const uart0_groups[] = { 12338c2ecf20Sopenharmony_ci "uart2_rtsb_mfp", 12348c2ecf20Sopenharmony_ci "uart2_ctsb_mfp", 12358c2ecf20Sopenharmony_ci "uart0_rx_mfp", 12368c2ecf20Sopenharmony_ci "uart0_tx_mfp", 12378c2ecf20Sopenharmony_ci}; 12388c2ecf20Sopenharmony_ci 12398c2ecf20Sopenharmony_cistatic const char * const uart1_groups[] = { 12408c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 12418c2ecf20Sopenharmony_ci "i2c0_mfp", 12428c2ecf20Sopenharmony_ci}; 12438c2ecf20Sopenharmony_ci 12448c2ecf20Sopenharmony_cistatic const char * const uart2_groups[] = { 12458c2ecf20Sopenharmony_ci "rgmii_txen_mfp", 12468c2ecf20Sopenharmony_ci "rgmii_rxen_mfp", 12478c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 12488c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 12498c2ecf20Sopenharmony_ci "dsi_dn0_mfp", 12508c2ecf20Sopenharmony_ci "dsi_dp2_mfp", 12518c2ecf20Sopenharmony_ci "dsi_dp0_mfp", 12528c2ecf20Sopenharmony_ci "uart2_rx_tx_mfp", 12538c2ecf20Sopenharmony_ci "dsi_dn2_mfp", 12548c2ecf20Sopenharmony_ci "uart2_rtsb_mfp", 12558c2ecf20Sopenharmony_ci "uart2_ctsb_mfp", 12568c2ecf20Sopenharmony_ci "sd0_d0_mfp", 12578c2ecf20Sopenharmony_ci "sd0_d1_mfp", 12588c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 12598c2ecf20Sopenharmony_ci "uart0_rx_mfp", 12608c2ecf20Sopenharmony_ci "uart0_tx_mfp", 12618c2ecf20Sopenharmony_ci "i2c0_mfp", 12628c2ecf20Sopenharmony_ci "uart2_dummy" 12638c2ecf20Sopenharmony_ci}; 12648c2ecf20Sopenharmony_ci 12658c2ecf20Sopenharmony_cistatic const char * const uart3_groups[] = { 12668c2ecf20Sopenharmony_ci "rgmii_txd23_mfp", 12678c2ecf20Sopenharmony_ci "rgmii_rxd2_mfp", 12688c2ecf20Sopenharmony_ci "rgmii_rxd3_mfp", 12698c2ecf20Sopenharmony_ci "uart3_rtsb_mfp", 12708c2ecf20Sopenharmony_ci "uart3_ctsb_mfp", 12718c2ecf20Sopenharmony_ci "uart3_dummy" 12728c2ecf20Sopenharmony_ci}; 12738c2ecf20Sopenharmony_ci 12748c2ecf20Sopenharmony_cistatic const char * const uart4_groups[] = { 12758c2ecf20Sopenharmony_ci "rgmii_txd01_mfp", 12768c2ecf20Sopenharmony_ci "rgmii_ref_clk_mfp", 12778c2ecf20Sopenharmony_ci "ks_out0_mfp", 12788c2ecf20Sopenharmony_ci "ks_out1_mfp", 12798c2ecf20Sopenharmony_ci}; 12808c2ecf20Sopenharmony_ci 12818c2ecf20Sopenharmony_cistatic const char * const uart5_groups[] = { 12828c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 12838c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 12848c2ecf20Sopenharmony_ci "ks_out0_mfp", 12858c2ecf20Sopenharmony_ci "ks_out2_mfp", 12868c2ecf20Sopenharmony_ci "uart3_rtsb_mfp", 12878c2ecf20Sopenharmony_ci "uart3_ctsb_mfp", 12888c2ecf20Sopenharmony_ci "sd0_d0_mfp", 12898c2ecf20Sopenharmony_ci "sd0_d1_mfp", 12908c2ecf20Sopenharmony_ci}; 12918c2ecf20Sopenharmony_ci 12928c2ecf20Sopenharmony_cistatic const char * const uart6_groups[] = { 12938c2ecf20Sopenharmony_ci "rgmii_txd0_mfp", 12948c2ecf20Sopenharmony_ci "rgmii_txd1_mfp", 12958c2ecf20Sopenharmony_ci}; 12968c2ecf20Sopenharmony_ci 12978c2ecf20Sopenharmony_cistatic const char * const i2s0_groups[] = { 12988c2ecf20Sopenharmony_ci "i2s_d0_mfp", 12998c2ecf20Sopenharmony_ci "i2s_pcm1_mfp", 13008c2ecf20Sopenharmony_ci "i2s0_pcm0_mfp", 13018c2ecf20Sopenharmony_ci}; 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_cistatic const char * const i2s1_groups[] = { 13048c2ecf20Sopenharmony_ci "i2s1_pcm0_mfp", 13058c2ecf20Sopenharmony_ci "i2s_d1_mfp", 13068c2ecf20Sopenharmony_ci "i2s1_dummy", 13078c2ecf20Sopenharmony_ci "spi0_i2c_pcm_mfp", 13088c2ecf20Sopenharmony_ci "uart0_rx_mfp", 13098c2ecf20Sopenharmony_ci "uart0_tx_mfp", 13108c2ecf20Sopenharmony_ci}; 13118c2ecf20Sopenharmony_ci 13128c2ecf20Sopenharmony_cistatic const char * const pcm1_groups[] = { 13138c2ecf20Sopenharmony_ci "i2s_pcm1_mfp", 13148c2ecf20Sopenharmony_ci "spi0_i2c_pcm_mfp", 13158c2ecf20Sopenharmony_ci "uart0_rx_mfp", 13168c2ecf20Sopenharmony_ci "uart0_tx_mfp", 13178c2ecf20Sopenharmony_ci "pcm1_in_mfp", 13188c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 13198c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 13208c2ecf20Sopenharmony_ci "pcm1_out_mfp", 13218c2ecf20Sopenharmony_ci}; 13228c2ecf20Sopenharmony_ci 13238c2ecf20Sopenharmony_cistatic const char * const pcm0_groups[] = { 13248c2ecf20Sopenharmony_ci "i2s0_pcm0_mfp", 13258c2ecf20Sopenharmony_ci "i2s1_pcm0_mfp", 13268c2ecf20Sopenharmony_ci "uart2_rx_tx_mfp", 13278c2ecf20Sopenharmony_ci "spi0_i2c_pcm_mfp", 13288c2ecf20Sopenharmony_ci}; 13298c2ecf20Sopenharmony_ci 13308c2ecf20Sopenharmony_cistatic const char * const ks_groups[] = { 13318c2ecf20Sopenharmony_ci "ks_in2_mfp", 13328c2ecf20Sopenharmony_ci "ks_in1_mfp", 13338c2ecf20Sopenharmony_ci "ks_in0_mfp", 13348c2ecf20Sopenharmony_ci "ks_in3_mfp", 13358c2ecf20Sopenharmony_ci "ks_out0_mfp", 13368c2ecf20Sopenharmony_ci "ks_out1_mfp", 13378c2ecf20Sopenharmony_ci "ks_out2_mfp", 13388c2ecf20Sopenharmony_ci}; 13398c2ecf20Sopenharmony_ci 13408c2ecf20Sopenharmony_cistatic const char * const jtag_groups[] = { 13418c2ecf20Sopenharmony_ci "ks_in2_mfp", 13428c2ecf20Sopenharmony_ci "ks_in1_mfp", 13438c2ecf20Sopenharmony_ci "ks_in0_mfp", 13448c2ecf20Sopenharmony_ci "ks_in3_mfp", 13458c2ecf20Sopenharmony_ci "ks_out1_mfp", 13468c2ecf20Sopenharmony_ci "sd0_d0_mfp", 13478c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 13488c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 13498c2ecf20Sopenharmony_ci "sd0_clk_mfp", 13508c2ecf20Sopenharmony_ci}; 13518c2ecf20Sopenharmony_ci 13528c2ecf20Sopenharmony_cistatic const char * const pwm0_groups[] = { 13538c2ecf20Sopenharmony_ci "rgmii_rxd2_mfp", 13548c2ecf20Sopenharmony_ci "rgmii_txen_mfp", 13558c2ecf20Sopenharmony_ci "ks_in2_mfp", 13568c2ecf20Sopenharmony_ci "sen0_pclk_mfp", 13578c2ecf20Sopenharmony_ci}; 13588c2ecf20Sopenharmony_ci 13598c2ecf20Sopenharmony_cistatic const char * const pwm1_groups[] = { 13608c2ecf20Sopenharmony_ci "rgmii_rxen_mfp", 13618c2ecf20Sopenharmony_ci "ks_in1_mfp", 13628c2ecf20Sopenharmony_ci "ks_in3_mfp", 13638c2ecf20Sopenharmony_ci "sens0_ckout_mfp", 13648c2ecf20Sopenharmony_ci}; 13658c2ecf20Sopenharmony_ci 13668c2ecf20Sopenharmony_cistatic const char * const pwm2_groups[] = { 13678c2ecf20Sopenharmony_ci "lcd0_d18_mfp", 13688c2ecf20Sopenharmony_ci "rgmii_rxd3_mfp", 13698c2ecf20Sopenharmony_ci "rgmii_rxd1_mfp", 13708c2ecf20Sopenharmony_ci "ks_out0_mfp", 13718c2ecf20Sopenharmony_ci "ks_out2_mfp", 13728c2ecf20Sopenharmony_ci}; 13738c2ecf20Sopenharmony_ci 13748c2ecf20Sopenharmony_cistatic const char * const pwm3_groups[] = { 13758c2ecf20Sopenharmony_ci "rgmii_rxd0_mfp", 13768c2ecf20Sopenharmony_ci "ks_out1_mfp", 13778c2ecf20Sopenharmony_ci "lcd0_d2_mfp", 13788c2ecf20Sopenharmony_ci}; 13798c2ecf20Sopenharmony_ci 13808c2ecf20Sopenharmony_cistatic const char * const pwm4_groups[] = { 13818c2ecf20Sopenharmony_ci "lcd0_d18_mfp", 13828c2ecf20Sopenharmony_ci "rgmii_txd01_mfp", 13838c2ecf20Sopenharmony_ci "rgmii_txd0_mfp", 13848c2ecf20Sopenharmony_ci "ks_in0_mfp", 13858c2ecf20Sopenharmony_ci "pcm1_in_mfp", 13868c2ecf20Sopenharmony_ci "nand_ceb3_mfp", 13878c2ecf20Sopenharmony_ci}; 13888c2ecf20Sopenharmony_ci 13898c2ecf20Sopenharmony_cistatic const char * const pwm5_groups[] = { 13908c2ecf20Sopenharmony_ci "rgmii_txd1_mfp", 13918c2ecf20Sopenharmony_ci "ks_in1_mfp", 13928c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 13938c2ecf20Sopenharmony_ci "nand_ceb2_mfp", 13948c2ecf20Sopenharmony_ci}; 13958c2ecf20Sopenharmony_ci 13968c2ecf20Sopenharmony_cistatic const char * const p0_groups[] = { 13978c2ecf20Sopenharmony_ci "ks_in2_mfp", 13988c2ecf20Sopenharmony_ci "ks_in0_mfp", 13998c2ecf20Sopenharmony_ci}; 14008c2ecf20Sopenharmony_ci 14018c2ecf20Sopenharmony_cistatic const char * const sd0_groups[] = { 14028c2ecf20Sopenharmony_ci "ks_out0_mfp", 14038c2ecf20Sopenharmony_ci "ks_out1_mfp", 14048c2ecf20Sopenharmony_ci "ks_out2_mfp", 14058c2ecf20Sopenharmony_ci "lcd0_d2_mfp", 14068c2ecf20Sopenharmony_ci "dsi_dp3_mfp", 14078c2ecf20Sopenharmony_ci "dsi_dp0_mfp", 14088c2ecf20Sopenharmony_ci "sd0_d0_mfp", 14098c2ecf20Sopenharmony_ci "sd0_d1_mfp", 14108c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 14118c2ecf20Sopenharmony_ci "sd1_d0_d3_mfp", 14128c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 14138c2ecf20Sopenharmony_ci "sd0_clk_mfp", 14148c2ecf20Sopenharmony_ci}; 14158c2ecf20Sopenharmony_ci 14168c2ecf20Sopenharmony_cistatic const char * const sd1_groups[] = { 14178c2ecf20Sopenharmony_ci "dsi_dp2_mfp", 14188c2ecf20Sopenharmony_ci "mfp1_16_14_mfp", 14198c2ecf20Sopenharmony_ci "lcd0_d2_mfp", 14208c2ecf20Sopenharmony_ci "mfp1_16_14_d17_mfp", 14218c2ecf20Sopenharmony_ci "dsi_dp3_mfp", 14228c2ecf20Sopenharmony_ci "dsi_dn3_mfp", 14238c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d2_mfp", 14248c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d17_mfp", 14258c2ecf20Sopenharmony_ci "dsi_dn2_mfp", 14268c2ecf20Sopenharmony_ci "sd1_d0_d3_mfp", 14278c2ecf20Sopenharmony_ci "sd1_cmd_mfp", 14288c2ecf20Sopenharmony_ci "sd1_dummy", 14298c2ecf20Sopenharmony_ci}; 14308c2ecf20Sopenharmony_ci 14318c2ecf20Sopenharmony_cistatic const char * const sd2_groups[] = { 14328c2ecf20Sopenharmony_ci "dnand_data_wr_mfp", 14338c2ecf20Sopenharmony_ci}; 14348c2ecf20Sopenharmony_ci 14358c2ecf20Sopenharmony_cistatic const char * const i2c0_groups[] = { 14368c2ecf20Sopenharmony_ci "uart0_rx_mfp", 14378c2ecf20Sopenharmony_ci "uart0_tx_mfp", 14388c2ecf20Sopenharmony_ci "i2c0_mfp", 14398c2ecf20Sopenharmony_ci}; 14408c2ecf20Sopenharmony_ci 14418c2ecf20Sopenharmony_cistatic const char * const i2c1_groups[] = { 14428c2ecf20Sopenharmony_ci "i2c0_mfp", 14438c2ecf20Sopenharmony_ci "i2c1_dummy" 14448c2ecf20Sopenharmony_ci}; 14458c2ecf20Sopenharmony_ci 14468c2ecf20Sopenharmony_cistatic const char * const i2c2_groups[] = { 14478c2ecf20Sopenharmony_ci "i2c2_dummy" 14488c2ecf20Sopenharmony_ci}; 14498c2ecf20Sopenharmony_ci 14508c2ecf20Sopenharmony_cistatic const char * const i2c3_groups[] = { 14518c2ecf20Sopenharmony_ci "uart2_rx_tx_mfp", 14528c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 14538c2ecf20Sopenharmony_ci "pcm1_out_mfp", 14548c2ecf20Sopenharmony_ci}; 14558c2ecf20Sopenharmony_ci 14568c2ecf20Sopenharmony_cistatic const char * const lvds_groups[] = { 14578c2ecf20Sopenharmony_ci "lvds_o_pn_mfp", 14588c2ecf20Sopenharmony_ci "lvds_ee_pn_mfp", 14598c2ecf20Sopenharmony_ci "lvds_e_pn_mfp", 14608c2ecf20Sopenharmony_ci}; 14618c2ecf20Sopenharmony_ci 14628c2ecf20Sopenharmony_cistatic const char * const bt_groups[] = { 14638c2ecf20Sopenharmony_ci "i2s_pcm1_mfp", 14648c2ecf20Sopenharmony_ci "i2s0_pcm0_mfp", 14658c2ecf20Sopenharmony_ci "i2s1_pcm0_mfp", 14668c2ecf20Sopenharmony_ci "ks_in2_mfp", 14678c2ecf20Sopenharmony_ci "ks_in1_mfp", 14688c2ecf20Sopenharmony_ci "ks_in0_mfp", 14698c2ecf20Sopenharmony_ci "ks_in3_mfp", 14708c2ecf20Sopenharmony_ci "ks_out0_mfp", 14718c2ecf20Sopenharmony_ci "ks_out1_mfp", 14728c2ecf20Sopenharmony_ci "ks_out2_mfp", 14738c2ecf20Sopenharmony_ci "lvds_o_pn_mfp", 14748c2ecf20Sopenharmony_ci "lvds_ee_pn_mfp", 14758c2ecf20Sopenharmony_ci "pcm1_in_mfp", 14768c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 14778c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 14788c2ecf20Sopenharmony_ci "pcm1_out_mfp", 14798c2ecf20Sopenharmony_ci}; 14808c2ecf20Sopenharmony_ci 14818c2ecf20Sopenharmony_cistatic const char * const lcd0_groups[] = { 14828c2ecf20Sopenharmony_ci "lcd0_d18_mfp", 14838c2ecf20Sopenharmony_ci "lcd0_d2_mfp", 14848c2ecf20Sopenharmony_ci "mfp1_16_14_d17_mfp", 14858c2ecf20Sopenharmony_ci "lvds_o_pn_mfp", 14868c2ecf20Sopenharmony_ci "dsi_dp3_mfp", 14878c2ecf20Sopenharmony_ci "dsi_dn3_mfp", 14888c2ecf20Sopenharmony_ci "lvds_ee_pn_mfp", 14898c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d2_mfp", 14908c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d17_mfp", 14918c2ecf20Sopenharmony_ci "lvds_e_pn_mfp", 14928c2ecf20Sopenharmony_ci}; 14938c2ecf20Sopenharmony_ci 14948c2ecf20Sopenharmony_ci 14958c2ecf20Sopenharmony_cistatic const char * const usb30_groups[] = { 14968c2ecf20Sopenharmony_ci "ks_in1_mfp", 14978c2ecf20Sopenharmony_ci}; 14988c2ecf20Sopenharmony_ci 14998c2ecf20Sopenharmony_cistatic const char * const clko_25m_groups[] = { 15008c2ecf20Sopenharmony_ci "clko_25m_mfp", 15018c2ecf20Sopenharmony_ci}; 15028c2ecf20Sopenharmony_ci 15038c2ecf20Sopenharmony_cistatic const char * const mipi_csi_groups[] = { 15048c2ecf20Sopenharmony_ci "csi_cn_cp_mfp", 15058c2ecf20Sopenharmony_ci "csi_dn_dp_mfp", 15068c2ecf20Sopenharmony_ci}; 15078c2ecf20Sopenharmony_ci 15088c2ecf20Sopenharmony_cistatic const char * const dsi_groups[] = { 15098c2ecf20Sopenharmony_ci "dsi_dn0_mfp", 15108c2ecf20Sopenharmony_ci "dsi_dp2_mfp", 15118c2ecf20Sopenharmony_ci "dsi_dp3_mfp", 15128c2ecf20Sopenharmony_ci "dsi_dn3_mfp", 15138c2ecf20Sopenharmony_ci "dsi_dp0_mfp", 15148c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d2_mfp", 15158c2ecf20Sopenharmony_ci "dsi_dnp1_cp_d17_mfp", 15168c2ecf20Sopenharmony_ci "dsi_dn2_mfp", 15178c2ecf20Sopenharmony_ci "dsi_dummy", 15188c2ecf20Sopenharmony_ci}; 15198c2ecf20Sopenharmony_ci 15208c2ecf20Sopenharmony_cistatic const char * const nand_groups[] = { 15218c2ecf20Sopenharmony_ci "dnand_data_wr_mfp", 15228c2ecf20Sopenharmony_ci "dnand_acle_ce0_mfp", 15238c2ecf20Sopenharmony_ci "nand_ceb2_mfp", 15248c2ecf20Sopenharmony_ci "nand_ceb3_mfp", 15258c2ecf20Sopenharmony_ci "nand_dummy", 15268c2ecf20Sopenharmony_ci}; 15278c2ecf20Sopenharmony_ci 15288c2ecf20Sopenharmony_cistatic const char * const spdif_groups[] = { 15298c2ecf20Sopenharmony_ci "uart0_tx_mfp", 15308c2ecf20Sopenharmony_ci}; 15318c2ecf20Sopenharmony_ci 15328c2ecf20Sopenharmony_cistatic const char * const sirq0_groups[] = { 15338c2ecf20Sopenharmony_ci "sirq0_dummy", 15348c2ecf20Sopenharmony_ci}; 15358c2ecf20Sopenharmony_ci 15368c2ecf20Sopenharmony_cistatic const char * const sirq1_groups[] = { 15378c2ecf20Sopenharmony_ci "sirq1_dummy", 15388c2ecf20Sopenharmony_ci}; 15398c2ecf20Sopenharmony_ci 15408c2ecf20Sopenharmony_cistatic const char * const sirq2_groups[] = { 15418c2ecf20Sopenharmony_ci "sirq2_dummy", 15428c2ecf20Sopenharmony_ci}; 15438c2ecf20Sopenharmony_ci 15448c2ecf20Sopenharmony_cistatic const struct owl_pinmux_func s700_functions[] = { 15458c2ecf20Sopenharmony_ci [S700_MUX_NOR] = FUNCTION(nor), 15468c2ecf20Sopenharmony_ci [S700_MUX_ETH_RGMII] = FUNCTION(eth_rmii), 15478c2ecf20Sopenharmony_ci [S700_MUX_ETH_SGMII] = FUNCTION(eth_smii), 15488c2ecf20Sopenharmony_ci [S700_MUX_SPI0] = FUNCTION(spi0), 15498c2ecf20Sopenharmony_ci [S700_MUX_SPI1] = FUNCTION(spi1), 15508c2ecf20Sopenharmony_ci [S700_MUX_SPI2] = FUNCTION(spi2), 15518c2ecf20Sopenharmony_ci [S700_MUX_SPI3] = FUNCTION(spi3), 15528c2ecf20Sopenharmony_ci [S700_MUX_SENS0] = FUNCTION(sens0), 15538c2ecf20Sopenharmony_ci [S700_MUX_SENS1] = FUNCTION(sens1), 15548c2ecf20Sopenharmony_ci [S700_MUX_UART0] = FUNCTION(uart0), 15558c2ecf20Sopenharmony_ci [S700_MUX_UART1] = FUNCTION(uart1), 15568c2ecf20Sopenharmony_ci [S700_MUX_UART2] = FUNCTION(uart2), 15578c2ecf20Sopenharmony_ci [S700_MUX_UART3] = FUNCTION(uart3), 15588c2ecf20Sopenharmony_ci [S700_MUX_UART4] = FUNCTION(uart4), 15598c2ecf20Sopenharmony_ci [S700_MUX_UART5] = FUNCTION(uart5), 15608c2ecf20Sopenharmony_ci [S700_MUX_UART6] = FUNCTION(uart6), 15618c2ecf20Sopenharmony_ci [S700_MUX_I2S0] = FUNCTION(i2s0), 15628c2ecf20Sopenharmony_ci [S700_MUX_I2S1] = FUNCTION(i2s1), 15638c2ecf20Sopenharmony_ci [S700_MUX_PCM1] = FUNCTION(pcm1), 15648c2ecf20Sopenharmony_ci [S700_MUX_PCM0] = FUNCTION(pcm0), 15658c2ecf20Sopenharmony_ci [S700_MUX_KS] = FUNCTION(ks), 15668c2ecf20Sopenharmony_ci [S700_MUX_JTAG] = FUNCTION(jtag), 15678c2ecf20Sopenharmony_ci [S700_MUX_PWM0] = FUNCTION(pwm0), 15688c2ecf20Sopenharmony_ci [S700_MUX_PWM1] = FUNCTION(pwm1), 15698c2ecf20Sopenharmony_ci [S700_MUX_PWM2] = FUNCTION(pwm2), 15708c2ecf20Sopenharmony_ci [S700_MUX_PWM3] = FUNCTION(pwm3), 15718c2ecf20Sopenharmony_ci [S700_MUX_PWM4] = FUNCTION(pwm4), 15728c2ecf20Sopenharmony_ci [S700_MUX_PWM5] = FUNCTION(pwm5), 15738c2ecf20Sopenharmony_ci [S700_MUX_P0] = FUNCTION(p0), 15748c2ecf20Sopenharmony_ci [S700_MUX_SD0] = FUNCTION(sd0), 15758c2ecf20Sopenharmony_ci [S700_MUX_SD1] = FUNCTION(sd1), 15768c2ecf20Sopenharmony_ci [S700_MUX_SD2] = FUNCTION(sd2), 15778c2ecf20Sopenharmony_ci [S700_MUX_I2C0] = FUNCTION(i2c0), 15788c2ecf20Sopenharmony_ci [S700_MUX_I2C1] = FUNCTION(i2c1), 15798c2ecf20Sopenharmony_ci [S700_MUX_I2C2] = FUNCTION(i2c2), 15808c2ecf20Sopenharmony_ci [S700_MUX_I2C3] = FUNCTION(i2c3), 15818c2ecf20Sopenharmony_ci [S700_MUX_DSI] = FUNCTION(dsi), 15828c2ecf20Sopenharmony_ci [S700_MUX_LVDS] = FUNCTION(lvds), 15838c2ecf20Sopenharmony_ci [S700_MUX_USB30] = FUNCTION(usb30), 15848c2ecf20Sopenharmony_ci [S700_MUX_CLKO_25M] = FUNCTION(clko_25m), 15858c2ecf20Sopenharmony_ci [S700_MUX_MIPI_CSI] = FUNCTION(mipi_csi), 15868c2ecf20Sopenharmony_ci [S700_MUX_NAND] = FUNCTION(nand), 15878c2ecf20Sopenharmony_ci [S700_MUX_SPDIF] = FUNCTION(spdif), 15888c2ecf20Sopenharmony_ci [S700_MUX_SIRQ0] = FUNCTION(sirq0), 15898c2ecf20Sopenharmony_ci [S700_MUX_SIRQ1] = FUNCTION(sirq1), 15908c2ecf20Sopenharmony_ci [S700_MUX_SIRQ2] = FUNCTION(sirq2), 15918c2ecf20Sopenharmony_ci [S700_MUX_BT] = FUNCTION(bt), 15928c2ecf20Sopenharmony_ci [S700_MUX_LCD0] = FUNCTION(lcd0), 15938c2ecf20Sopenharmony_ci}; 15948c2ecf20Sopenharmony_ci 15958c2ecf20Sopenharmony_ci/* PAD_ST0 */ 15968c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_TX, 0, 31, 1); 15978c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C0_SDATA, 0, 30, 1); 15988c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART0_RX, 0, 29, 1); 15998c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK1, 0, 23, 1); 16008c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_REF_CLK, 0, 22, 1); 16018c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXEN, 0, 21, 1); 16028c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD0, 0, 20, 1); 16038c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK1, 0, 19, 1); 16048c2ecf20Sopenharmony_cistatic PAD_ST_CONF(DSI_DP0, 0, 16, 1); 16058c2ecf20Sopenharmony_cistatic PAD_ST_CONF(DSI_DN0, 0, 15, 1); 16068c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART0_TX, 0, 14, 1); 16078c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SD0_CLK, 0, 12, 1); 16088c2ecf20Sopenharmony_cistatic PAD_ST_CONF(KS_IN0, 0, 11, 1); 16098c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SENSOR0_PCLK, 0, 9, 1); 16108c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C0_SCLK, 0, 7, 1); 16118c2ecf20Sopenharmony_cistatic PAD_ST_CONF(KS_OUT0, 0, 6, 1); 16128c2ecf20Sopenharmony_cistatic PAD_ST_CONF(KS_OUT1, 0, 5, 1); 16138c2ecf20Sopenharmony_cistatic PAD_ST_CONF(KS_OUT2, 0, 4, 1); 16148c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD3, 0, 3, 1); 16158c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD2, 0, 2, 1); 16168c2ecf20Sopenharmony_ci 16178c2ecf20Sopenharmony_ci/* PAD_ST1 */ 16188c2ecf20Sopenharmony_cistatic PAD_ST_CONF(DSI_DP2, 1, 31, 1); 16198c2ecf20Sopenharmony_cistatic PAD_ST_CONF(DSI_DN2, 1, 30, 1); 16208c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK0, 1, 29, 1); 16218c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_CTSB, 1, 27, 1); 16228c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_RTSB, 1, 26, 1); 16238c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_RX, 1, 25, 1); 16248c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_RTSB, 1, 24, 1); 16258c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_CTSB, 1, 23, 1); 16268c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_RX, 1, 22, 1); 16278c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD0, 1, 21, 1); 16288c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD1, 1, 20, 1); 16298c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_CRS_DV, 1, 19, 1); 16308c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXER, 1, 18, 1); 16318c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD1, 1, 17, 1); 16328c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OAP, 1, 12, 1); 16338c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_CLK, 1, 11, 1); 16348c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_IN, 1, 10, 1); 16358c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_SYNC, 1, 9, 1); 16368c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C1_SCLK, 1, 8, 1); 16378c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C1_SDATA, 1, 7, 1); 16388c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C2_SCLK, 1, 6, 1); 16398c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C2_SDATA, 1, 5, 1); 16408c2ecf20Sopenharmony_ci 16418c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_MISO, 1, 3, 1); 16428c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_SS, 1, 2, 1); 16438c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_BCLK0, 1, 1, 1); 16448c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK0, 1, 0, 1); 16458c2ecf20Sopenharmony_ci 16468c2ecf20Sopenharmony_ci/* PAD_PULLCTL0 */ 16478c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_SYNC, 0, 30, 1); 16488c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_OUT, 0, 29, 1); 16498c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT2, 0, 28, 1); 16508c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(LCD0_D2, 0, 27, 1); 16518c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(DSI_DN3, 0, 26, 1); 16528c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_RXER, 0, 16, 1); 16538c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ0, 0, 14, 2); 16548c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ1, 0, 12, 2); 16558c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ2, 0, 10, 2); 16568c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SDATA, 0, 9, 1); 16578c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SCLK, 0, 8, 1); 16588c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN0, 0, 7, 1); 16598c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN1, 0, 6, 1); 16608c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN2, 0, 5, 1); 16618c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_IN3, 0, 4, 1); 16628c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT0, 0, 2, 1); 16638c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(KS_OUT1, 0, 1, 1); 16648c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(DSI_DP1, 0, 0, 1); 16658c2ecf20Sopenharmony_ci 16668c2ecf20Sopenharmony_ci/* PAD_PULLCTL1 */ 16678c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D0, 1, 17, 1); 16688c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D1, 1, 16, 1); 16698c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D2, 1, 15, 1); 16708c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D3, 1, 14, 1); 16718c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CMD, 1, 13, 1); 16728c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CLK, 1, 12, 1); 16738c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_RX, 1, 2, 1); 16748c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_TX, 1, 1, 1); 16758c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(CLKO_25M, 1, 0, 1); 16768c2ecf20Sopenharmony_ci 16778c2ecf20Sopenharmony_ci/* PAD_PULLCTL2 */ 16788c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_TXD2, 2, 18, 1); 16798c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_TXD3, 2, 17, 1); 16808c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_SS, 2, 16, 1); 16818c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_MISO, 2, 15, 1); 16828c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SDATA, 2, 10, 1); 16838c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SCLK, 2, 9, 1); 16848c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SDATA, 2, 8, 1); 16858c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SCLK, 2, 7, 1); 16868c2ecf20Sopenharmony_ci 16878c2ecf20Sopenharmony_ci/* Pad info table for the pinmux subsystem */ 16888c2ecf20Sopenharmony_cistatic const struct owl_padinfo s700_padinfo[NUM_PADS] = { 16898c2ecf20Sopenharmony_ci [ETH_TXD0] = PAD_INFO_ST(ETH_TXD0), 16908c2ecf20Sopenharmony_ci [ETH_TXD1] = PAD_INFO_ST(ETH_TXD1), 16918c2ecf20Sopenharmony_ci [ETH_TXEN] = PAD_INFO_ST(ETH_TXEN), 16928c2ecf20Sopenharmony_ci [ETH_RXER] = PAD_INFO_PULLCTL_ST(ETH_RXER), 16938c2ecf20Sopenharmony_ci [ETH_CRS_DV] = PAD_INFO_ST(ETH_CRS_DV), 16948c2ecf20Sopenharmony_ci [ETH_RXD1] = PAD_INFO_ST(ETH_RXD1), 16958c2ecf20Sopenharmony_ci [ETH_RXD0] = PAD_INFO_ST(ETH_RXD0), 16968c2ecf20Sopenharmony_ci [ETH_REF_CLK] = PAD_INFO_ST(ETH_REF_CLK), 16978c2ecf20Sopenharmony_ci [ETH_MDC] = PAD_INFO(ETH_MDC), 16988c2ecf20Sopenharmony_ci [ETH_MDIO] = PAD_INFO(ETH_MDIO), 16998c2ecf20Sopenharmony_ci [SIRQ0] = PAD_INFO_PULLCTL(SIRQ0), 17008c2ecf20Sopenharmony_ci [SIRQ1] = PAD_INFO_PULLCTL(SIRQ1), 17018c2ecf20Sopenharmony_ci [SIRQ2] = PAD_INFO_PULLCTL(SIRQ2), 17028c2ecf20Sopenharmony_ci [I2S_D0] = PAD_INFO(I2S_D0), 17038c2ecf20Sopenharmony_ci [I2S_BCLK0] = PAD_INFO_ST(I2S_BCLK0), 17048c2ecf20Sopenharmony_ci [I2S_LRCLK0] = PAD_INFO_ST(I2S_LRCLK0), 17058c2ecf20Sopenharmony_ci [I2S_MCLK0] = PAD_INFO_ST(I2S_MCLK0), 17068c2ecf20Sopenharmony_ci [I2S_D1] = PAD_INFO(I2S_D1), 17078c2ecf20Sopenharmony_ci [I2S_BCLK1] = PAD_INFO(I2S_BCLK1), 17088c2ecf20Sopenharmony_ci [I2S_LRCLK1] = PAD_INFO_ST(I2S_LRCLK1), 17098c2ecf20Sopenharmony_ci [I2S_MCLK1] = PAD_INFO_ST(I2S_MCLK1), 17108c2ecf20Sopenharmony_ci [KS_IN0] = PAD_INFO_PULLCTL_ST(KS_IN0), 17118c2ecf20Sopenharmony_ci [KS_IN1] = PAD_INFO_PULLCTL(KS_IN1), 17128c2ecf20Sopenharmony_ci [KS_IN2] = PAD_INFO_PULLCTL(KS_IN2), 17138c2ecf20Sopenharmony_ci [KS_IN3] = PAD_INFO_PULLCTL(KS_IN3), 17148c2ecf20Sopenharmony_ci [KS_OUT0] = PAD_INFO_PULLCTL_ST(KS_OUT0), 17158c2ecf20Sopenharmony_ci [KS_OUT1] = PAD_INFO_PULLCTL_ST(KS_OUT1), 17168c2ecf20Sopenharmony_ci [KS_OUT2] = PAD_INFO_PULLCTL_ST(KS_OUT2), 17178c2ecf20Sopenharmony_ci [LVDS_OEP] = PAD_INFO(LVDS_OEP), 17188c2ecf20Sopenharmony_ci [LVDS_OEN] = PAD_INFO(LVDS_OEN), 17198c2ecf20Sopenharmony_ci [LVDS_ODP] = PAD_INFO(LVDS_ODP), 17208c2ecf20Sopenharmony_ci [LVDS_ODN] = PAD_INFO(LVDS_ODN), 17218c2ecf20Sopenharmony_ci [LVDS_OCP] = PAD_INFO(LVDS_OCP), 17228c2ecf20Sopenharmony_ci [LVDS_OCN] = PAD_INFO(LVDS_OCN), 17238c2ecf20Sopenharmony_ci [LVDS_OBP] = PAD_INFO(LVDS_OBP), 17248c2ecf20Sopenharmony_ci [LVDS_OBN] = PAD_INFO(LVDS_OBN), 17258c2ecf20Sopenharmony_ci [LVDS_OAP] = PAD_INFO_ST(LVDS_OAP), 17268c2ecf20Sopenharmony_ci [LVDS_OAN] = PAD_INFO(LVDS_OAN), 17278c2ecf20Sopenharmony_ci [LVDS_EEP] = PAD_INFO(LVDS_EEP), 17288c2ecf20Sopenharmony_ci [LVDS_EEN] = PAD_INFO(LVDS_EEN), 17298c2ecf20Sopenharmony_ci [LVDS_EDP] = PAD_INFO(LVDS_EDP), 17308c2ecf20Sopenharmony_ci [LVDS_EDN] = PAD_INFO(LVDS_EDN), 17318c2ecf20Sopenharmony_ci [LVDS_ECP] = PAD_INFO(LVDS_ECP), 17328c2ecf20Sopenharmony_ci [LVDS_ECN] = PAD_INFO(LVDS_ECN), 17338c2ecf20Sopenharmony_ci [LVDS_EBP] = PAD_INFO(LVDS_EBP), 17348c2ecf20Sopenharmony_ci [LVDS_EBN] = PAD_INFO(LVDS_EBN), 17358c2ecf20Sopenharmony_ci [LVDS_EAP] = PAD_INFO(LVDS_EAP), 17368c2ecf20Sopenharmony_ci [LVDS_EAN] = PAD_INFO(LVDS_EAN), 17378c2ecf20Sopenharmony_ci [LCD0_D18] = PAD_INFO(LCD0_D18), 17388c2ecf20Sopenharmony_ci [LCD0_D2] = PAD_INFO_PULLCTL(LCD0_D2), 17398c2ecf20Sopenharmony_ci [DSI_DP3] = PAD_INFO(DSI_DP3), 17408c2ecf20Sopenharmony_ci [DSI_DN3] = PAD_INFO_PULLCTL(DSI_DN3), 17418c2ecf20Sopenharmony_ci [DSI_DP1] = PAD_INFO_PULLCTL(DSI_DP1), 17428c2ecf20Sopenharmony_ci [DSI_DN1] = PAD_INFO(DSI_DN1), 17438c2ecf20Sopenharmony_ci [DSI_DP0] = PAD_INFO_ST(DSI_DP0), 17448c2ecf20Sopenharmony_ci [DSI_DN0] = PAD_INFO_ST(DSI_DN0), 17458c2ecf20Sopenharmony_ci [DSI_DP2] = PAD_INFO_ST(DSI_DP2), 17468c2ecf20Sopenharmony_ci [DSI_DN2] = PAD_INFO_ST(DSI_DN2), 17478c2ecf20Sopenharmony_ci [SD0_D0] = PAD_INFO_PULLCTL(SD0_D0), 17488c2ecf20Sopenharmony_ci [SD0_D1] = PAD_INFO_PULLCTL(SD0_D1), 17498c2ecf20Sopenharmony_ci [SD0_D2] = PAD_INFO_PULLCTL(SD0_D2), 17508c2ecf20Sopenharmony_ci [SD0_D3] = PAD_INFO_PULLCTL(SD0_D3), 17518c2ecf20Sopenharmony_ci [SD0_CMD] = PAD_INFO_PULLCTL(SD0_CMD), 17528c2ecf20Sopenharmony_ci [SD0_CLK] = PAD_INFO_PULLCTL_ST(SD0_CLK), 17538c2ecf20Sopenharmony_ci [SD1_CLK] = PAD_INFO(SD1_CLK), 17548c2ecf20Sopenharmony_ci [SPI0_SS] = PAD_INFO_PULLCTL_ST(SPI0_SS), 17558c2ecf20Sopenharmony_ci [SPI0_MISO] = PAD_INFO_PULLCTL_ST(SPI0_MISO), 17568c2ecf20Sopenharmony_ci [UART0_RX] = PAD_INFO_PULLCTL_ST(UART0_RX), 17578c2ecf20Sopenharmony_ci [UART0_TX] = PAD_INFO_PULLCTL_ST(UART0_TX), 17588c2ecf20Sopenharmony_ci [I2C0_SCLK] = PAD_INFO_PULLCTL_ST(I2C0_SCLK), 17598c2ecf20Sopenharmony_ci [I2C0_SDATA] = PAD_INFO_PULLCTL_ST(I2C0_SDATA), 17608c2ecf20Sopenharmony_ci [SENSOR0_PCLK] = PAD_INFO_ST(SENSOR0_PCLK), 17618c2ecf20Sopenharmony_ci [SENSOR0_CKOUT] = PAD_INFO(SENSOR0_CKOUT), 17628c2ecf20Sopenharmony_ci [DNAND_ALE] = PAD_INFO(DNAND_ALE), 17638c2ecf20Sopenharmony_ci [DNAND_CLE] = PAD_INFO(DNAND_CLE), 17648c2ecf20Sopenharmony_ci [DNAND_CEB0] = PAD_INFO(DNAND_CEB0), 17658c2ecf20Sopenharmony_ci [DNAND_CEB1] = PAD_INFO(DNAND_CEB1), 17668c2ecf20Sopenharmony_ci [DNAND_CEB2] = PAD_INFO(DNAND_CEB2), 17678c2ecf20Sopenharmony_ci [DNAND_CEB3] = PAD_INFO(DNAND_CEB3), 17688c2ecf20Sopenharmony_ci [UART2_RX] = PAD_INFO_ST(UART2_RX), 17698c2ecf20Sopenharmony_ci [UART2_TX] = PAD_INFO_ST(UART2_TX), 17708c2ecf20Sopenharmony_ci [UART2_RTSB] = PAD_INFO_ST(UART2_RTSB), 17718c2ecf20Sopenharmony_ci [UART2_CTSB] = PAD_INFO_ST(UART2_CTSB), 17728c2ecf20Sopenharmony_ci [UART3_RX] = PAD_INFO_ST(UART3_RX), 17738c2ecf20Sopenharmony_ci [UART3_TX] = PAD_INFO(UART3_TX), 17748c2ecf20Sopenharmony_ci [UART3_RTSB] = PAD_INFO_ST(UART3_RTSB), 17758c2ecf20Sopenharmony_ci [UART3_CTSB] = PAD_INFO_ST(UART3_CTSB), 17768c2ecf20Sopenharmony_ci [PCM1_IN] = PAD_INFO_ST(PCM1_IN), 17778c2ecf20Sopenharmony_ci [PCM1_CLK] = PAD_INFO_ST(PCM1_CLK), 17788c2ecf20Sopenharmony_ci [PCM1_SYNC] = PAD_INFO_PULLCTL_ST(PCM1_SYNC), 17798c2ecf20Sopenharmony_ci [PCM1_OUT] = PAD_INFO_PULLCTL(PCM1_OUT), 17808c2ecf20Sopenharmony_ci [I2C1_SCLK] = PAD_INFO_PULLCTL_ST(I2C1_SCLK), 17818c2ecf20Sopenharmony_ci [I2C1_SDATA] = PAD_INFO_PULLCTL_ST(I2C1_SDATA), 17828c2ecf20Sopenharmony_ci [I2C2_SCLK] = PAD_INFO_PULLCTL_ST(I2C2_SCLK), 17838c2ecf20Sopenharmony_ci [I2C2_SDATA] = PAD_INFO_PULLCTL_ST(I2C2_SDATA), 17848c2ecf20Sopenharmony_ci [CSI_DN0] = PAD_INFO(CSI_DN0), 17858c2ecf20Sopenharmony_ci [CSI_DP0] = PAD_INFO(CSI_DP0), 17868c2ecf20Sopenharmony_ci [CSI_DN1] = PAD_INFO(CSI_DN1), 17878c2ecf20Sopenharmony_ci [CSI_DP1] = PAD_INFO(CSI_DP1), 17888c2ecf20Sopenharmony_ci [CSI_CN] = PAD_INFO(CSI_CN), 17898c2ecf20Sopenharmony_ci [CSI_CP] = PAD_INFO(CSI_CP), 17908c2ecf20Sopenharmony_ci [CSI_DN2] = PAD_INFO(CSI_DN2), 17918c2ecf20Sopenharmony_ci [CSI_DP2] = PAD_INFO(CSI_DP2), 17928c2ecf20Sopenharmony_ci [CSI_DN3] = PAD_INFO(CSI_DN3), 17938c2ecf20Sopenharmony_ci [CSI_DP3] = PAD_INFO(CSI_DP3), 17948c2ecf20Sopenharmony_ci [DNAND_WRB] = PAD_INFO(DNAND_WRB), 17958c2ecf20Sopenharmony_ci [DNAND_RDB] = PAD_INFO(DNAND_RDB), 17968c2ecf20Sopenharmony_ci [DNAND_RB0] = PAD_INFO(DNAND_RB0), 17978c2ecf20Sopenharmony_ci [PORB] = PAD_INFO(PORB), 17988c2ecf20Sopenharmony_ci [CLKO_25M] = PAD_INFO_PULLCTL(CLKO_25M), 17998c2ecf20Sopenharmony_ci [BSEL] = PAD_INFO(BSEL), 18008c2ecf20Sopenharmony_ci [PKG0] = PAD_INFO(PKG0), 18018c2ecf20Sopenharmony_ci [PKG1] = PAD_INFO(PKG1), 18028c2ecf20Sopenharmony_ci [PKG2] = PAD_INFO(PKG2), 18038c2ecf20Sopenharmony_ci [PKG3] = PAD_INFO(PKG3), 18048c2ecf20Sopenharmony_ci [ETH_TXD2] = PAD_INFO_PULLCTL_ST(ETH_TXD2), 18058c2ecf20Sopenharmony_ci [ETH_TXD3] = PAD_INFO_PULLCTL_ST(ETH_TXD3), 18068c2ecf20Sopenharmony_ci}; 18078c2ecf20Sopenharmony_ci 18088c2ecf20Sopenharmony_cistatic const struct owl_gpio_port s700_gpio_ports[] = { 18098c2ecf20Sopenharmony_ci OWL_GPIO_PORT(A, 0x0000, 32, 0x0, 0x4, 0x8, 0x204, 0x208, 0x20C, 0x230, 0), 18108c2ecf20Sopenharmony_ci OWL_GPIO_PORT(B, 0x000C, 32, 0x0, 0x4, 0x8, 0x204, 0x210, 0x214, 0x238, 1), 18118c2ecf20Sopenharmony_ci OWL_GPIO_PORT(C, 0x0018, 32, 0x0, 0x4, 0x8, 0x204, 0x218, 0x21C, 0x240, 2), 18128c2ecf20Sopenharmony_ci OWL_GPIO_PORT(D, 0x0024, 32, 0x0, 0x4, 0x8, 0x204, 0x220, 0x224, 0x248, 3), 18138c2ecf20Sopenharmony_ci /* 0x24C (INTC_GPIOD_TYPE1) used to tweak the driver to handle generic */ 18148c2ecf20Sopenharmony_ci OWL_GPIO_PORT(E, 0x0030, 8, 0x0, 0x4, 0x8, 0x204, 0x228, 0x22C, 0x24C, 4), 18158c2ecf20Sopenharmony_ci}; 18168c2ecf20Sopenharmony_ci 18178c2ecf20Sopenharmony_cienum s700_pinconf_pull { 18188c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_DOWN, 18198c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_UP, 18208c2ecf20Sopenharmony_ci}; 18218c2ecf20Sopenharmony_ci 18228c2ecf20Sopenharmony_cistatic int s700_pad_pinconf_arg2val(const struct owl_padinfo *info, 18238c2ecf20Sopenharmony_ci unsigned int param, 18248c2ecf20Sopenharmony_ci u32 *arg) 18258c2ecf20Sopenharmony_ci{ 18268c2ecf20Sopenharmony_ci switch (param) { 18278c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_DOWN: 18288c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_DOWN; 18298c2ecf20Sopenharmony_ci break; 18308c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_UP: 18318c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_UP; 18328c2ecf20Sopenharmony_ci break; 18338c2ecf20Sopenharmony_ci case PIN_CONFIG_INPUT_SCHMITT_ENABLE: 18348c2ecf20Sopenharmony_ci *arg = (*arg >= 1 ? 1 : 0); 18358c2ecf20Sopenharmony_ci break; 18368c2ecf20Sopenharmony_ci default: 18378c2ecf20Sopenharmony_ci return -ENOTSUPP; 18388c2ecf20Sopenharmony_ci } 18398c2ecf20Sopenharmony_ci 18408c2ecf20Sopenharmony_ci return 0; 18418c2ecf20Sopenharmony_ci} 18428c2ecf20Sopenharmony_ci 18438c2ecf20Sopenharmony_cistatic int s700_pad_pinconf_val2arg(const struct owl_padinfo *padinfo, 18448c2ecf20Sopenharmony_ci unsigned int param, 18458c2ecf20Sopenharmony_ci u32 *arg) 18468c2ecf20Sopenharmony_ci{ 18478c2ecf20Sopenharmony_ci switch (param) { 18488c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_DOWN: 18498c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_DOWN; 18508c2ecf20Sopenharmony_ci break; 18518c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_UP: 18528c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_UP; 18538c2ecf20Sopenharmony_ci break; 18548c2ecf20Sopenharmony_ci case PIN_CONFIG_INPUT_SCHMITT_ENABLE: 18558c2ecf20Sopenharmony_ci *arg = *arg == 1; 18568c2ecf20Sopenharmony_ci break; 18578c2ecf20Sopenharmony_ci default: 18588c2ecf20Sopenharmony_ci return -ENOTSUPP; 18598c2ecf20Sopenharmony_ci } 18608c2ecf20Sopenharmony_ci 18618c2ecf20Sopenharmony_ci return 0; 18628c2ecf20Sopenharmony_ci} 18638c2ecf20Sopenharmony_ci 18648c2ecf20Sopenharmony_cistatic struct owl_pinctrl_soc_data s700_pinctrl_data = { 18658c2ecf20Sopenharmony_ci .padinfo = s700_padinfo, 18668c2ecf20Sopenharmony_ci .pins = (const struct pinctrl_pin_desc *)s700_pads, 18678c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(s700_pads), 18688c2ecf20Sopenharmony_ci .functions = s700_functions, 18698c2ecf20Sopenharmony_ci .nfunctions = ARRAY_SIZE(s700_functions), 18708c2ecf20Sopenharmony_ci .groups = s700_groups, 18718c2ecf20Sopenharmony_ci .ngroups = ARRAY_SIZE(s700_groups), 18728c2ecf20Sopenharmony_ci .ngpios = NUM_GPIOS, 18738c2ecf20Sopenharmony_ci .ports = s700_gpio_ports, 18748c2ecf20Sopenharmony_ci .nports = ARRAY_SIZE(s700_gpio_ports), 18758c2ecf20Sopenharmony_ci .padctl_arg2val = s700_pad_pinconf_arg2val, 18768c2ecf20Sopenharmony_ci .padctl_val2arg = s700_pad_pinconf_val2arg, 18778c2ecf20Sopenharmony_ci}; 18788c2ecf20Sopenharmony_ci 18798c2ecf20Sopenharmony_cistatic int s700_pinctrl_probe(struct platform_device *pdev) 18808c2ecf20Sopenharmony_ci{ 18818c2ecf20Sopenharmony_ci return owl_pinctrl_probe(pdev, &s700_pinctrl_data); 18828c2ecf20Sopenharmony_ci} 18838c2ecf20Sopenharmony_ci 18848c2ecf20Sopenharmony_cistatic const struct of_device_id s700_pinctrl_of_match[] = { 18858c2ecf20Sopenharmony_ci { .compatible = "actions,s700-pinctrl", }, 18868c2ecf20Sopenharmony_ci {} 18878c2ecf20Sopenharmony_ci}; 18888c2ecf20Sopenharmony_ci 18898c2ecf20Sopenharmony_cistatic struct platform_driver s700_pinctrl_driver = { 18908c2ecf20Sopenharmony_ci .probe = s700_pinctrl_probe, 18918c2ecf20Sopenharmony_ci .driver = { 18928c2ecf20Sopenharmony_ci .name = "pinctrl-s700", 18938c2ecf20Sopenharmony_ci .of_match_table = of_match_ptr(s700_pinctrl_of_match), 18948c2ecf20Sopenharmony_ci }, 18958c2ecf20Sopenharmony_ci}; 18968c2ecf20Sopenharmony_ci 18978c2ecf20Sopenharmony_cistatic int __init s700_pinctrl_init(void) 18988c2ecf20Sopenharmony_ci{ 18998c2ecf20Sopenharmony_ci return platform_driver_register(&s700_pinctrl_driver); 19008c2ecf20Sopenharmony_ci} 19018c2ecf20Sopenharmony_ciarch_initcall(s700_pinctrl_init); 19028c2ecf20Sopenharmony_ci 19038c2ecf20Sopenharmony_cistatic void __exit s700_pinctrl_exit(void) 19048c2ecf20Sopenharmony_ci{ 19058c2ecf20Sopenharmony_ci platform_driver_unregister(&s700_pinctrl_driver); 19068c2ecf20Sopenharmony_ci} 19078c2ecf20Sopenharmony_cimodule_exit(s700_pinctrl_exit); 19088c2ecf20Sopenharmony_ci 19098c2ecf20Sopenharmony_ciMODULE_AUTHOR("Actions Semi Inc."); 19108c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("Actions Semi S700 Soc Pinctrl Driver"); 19118c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL"); 1912