18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * OWL S900 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 * Copyright (c) 2018 Linaro Ltd. 98c2ecf20Sopenharmony_ci * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 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/pinctrl.h> 168c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinconf-generic.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#define PAD_SR0 (0x0270) 348c2ecf20Sopenharmony_ci#define PAD_SR1 (0x0274) 358c2ecf20Sopenharmony_ci#define PAD_SR2 (0x0278) 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define _GPIOA(offset) (offset) 388c2ecf20Sopenharmony_ci#define _GPIOB(offset) (32 + (offset)) 398c2ecf20Sopenharmony_ci#define _GPIOC(offset) (64 + (offset)) 408c2ecf20Sopenharmony_ci#define _GPIOD(offset) (76 + (offset)) 418c2ecf20Sopenharmony_ci#define _GPIOE(offset) (106 + (offset)) 428c2ecf20Sopenharmony_ci#define _GPIOF(offset) (138 + (offset)) 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci#define NUM_GPIOS (_GPIOF(7) + 1) 458c2ecf20Sopenharmony_ci#define _PIN(offset) (NUM_GPIOS + (offset)) 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci#define ETH_TXD0 _GPIOA(0) 488c2ecf20Sopenharmony_ci#define ETH_TXD1 _GPIOA(1) 498c2ecf20Sopenharmony_ci#define ETH_TXEN _GPIOA(2) 508c2ecf20Sopenharmony_ci#define ETH_RXER _GPIOA(3) 518c2ecf20Sopenharmony_ci#define ETH_CRS_DV _GPIOA(4) 528c2ecf20Sopenharmony_ci#define ETH_RXD1 _GPIOA(5) 538c2ecf20Sopenharmony_ci#define ETH_RXD0 _GPIOA(6) 548c2ecf20Sopenharmony_ci#define ETH_REF_CLK _GPIOA(7) 558c2ecf20Sopenharmony_ci#define ETH_MDC _GPIOA(8) 568c2ecf20Sopenharmony_ci#define ETH_MDIO _GPIOA(9) 578c2ecf20Sopenharmony_ci#define SIRQ0 _GPIOA(10) 588c2ecf20Sopenharmony_ci#define SIRQ1 _GPIOA(11) 598c2ecf20Sopenharmony_ci#define SIRQ2 _GPIOA(12) 608c2ecf20Sopenharmony_ci#define I2S_D0 _GPIOA(13) 618c2ecf20Sopenharmony_ci#define I2S_BCLK0 _GPIOA(14) 628c2ecf20Sopenharmony_ci#define I2S_LRCLK0 _GPIOA(15) 638c2ecf20Sopenharmony_ci#define I2S_MCLK0 _GPIOA(16) 648c2ecf20Sopenharmony_ci#define I2S_D1 _GPIOA(17) 658c2ecf20Sopenharmony_ci#define I2S_BCLK1 _GPIOA(18) 668c2ecf20Sopenharmony_ci#define I2S_LRCLK1 _GPIOA(19) 678c2ecf20Sopenharmony_ci#define I2S_MCLK1 _GPIOA(20) 688c2ecf20Sopenharmony_ci#define ERAM_A5 _GPIOA(21) 698c2ecf20Sopenharmony_ci#define ERAM_A6 _GPIOA(22) 708c2ecf20Sopenharmony_ci#define ERAM_A7 _GPIOA(23) 718c2ecf20Sopenharmony_ci#define ERAM_A8 _GPIOA(24) 728c2ecf20Sopenharmony_ci#define ERAM_A9 _GPIOA(25) 738c2ecf20Sopenharmony_ci#define ERAM_A10 _GPIOA(26) 748c2ecf20Sopenharmony_ci#define ERAM_A11 _GPIOA(27) 758c2ecf20Sopenharmony_ci#define SD0_D0 _GPIOA(28) 768c2ecf20Sopenharmony_ci#define SD0_D1 _GPIOA(29) 778c2ecf20Sopenharmony_ci#define SD0_D2 _GPIOA(30) 788c2ecf20Sopenharmony_ci#define SD0_D3 _GPIOA(31) 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci#define SD1_D0 _GPIOB(0) 818c2ecf20Sopenharmony_ci#define SD1_D1 _GPIOB(1) 828c2ecf20Sopenharmony_ci#define SD1_D2 _GPIOB(2) 838c2ecf20Sopenharmony_ci#define SD1_D3 _GPIOB(3) 848c2ecf20Sopenharmony_ci#define SD0_CMD _GPIOB(4) 858c2ecf20Sopenharmony_ci#define SD0_CLK _GPIOB(5) 868c2ecf20Sopenharmony_ci#define SD1_CMD _GPIOB(6) 878c2ecf20Sopenharmony_ci#define SD1_CLK _GPIOB(7) 888c2ecf20Sopenharmony_ci#define SPI0_SCLK _GPIOB(8) 898c2ecf20Sopenharmony_ci#define SPI0_SS _GPIOB(9) 908c2ecf20Sopenharmony_ci#define SPI0_MISO _GPIOB(10) 918c2ecf20Sopenharmony_ci#define SPI0_MOSI _GPIOB(11) 928c2ecf20Sopenharmony_ci#define UART0_RX _GPIOB(12) 938c2ecf20Sopenharmony_ci#define UART0_TX _GPIOB(13) 948c2ecf20Sopenharmony_ci#define UART2_RX _GPIOB(14) 958c2ecf20Sopenharmony_ci#define UART2_TX _GPIOB(15) 968c2ecf20Sopenharmony_ci#define UART2_RTSB _GPIOB(16) 978c2ecf20Sopenharmony_ci#define UART2_CTSB _GPIOB(17) 988c2ecf20Sopenharmony_ci#define UART4_RX _GPIOB(18) 998c2ecf20Sopenharmony_ci#define UART4_TX _GPIOB(19) 1008c2ecf20Sopenharmony_ci#define I2C0_SCLK _GPIOB(20) 1018c2ecf20Sopenharmony_ci#define I2C0_SDATA _GPIOB(21) 1028c2ecf20Sopenharmony_ci#define I2C1_SCLK _GPIOB(22) 1038c2ecf20Sopenharmony_ci#define I2C1_SDATA _GPIOB(23) 1048c2ecf20Sopenharmony_ci#define I2C2_SCLK _GPIOB(24) 1058c2ecf20Sopenharmony_ci#define I2C2_SDATA _GPIOB(25) 1068c2ecf20Sopenharmony_ci#define CSI0_DN0 _GPIOB(26) 1078c2ecf20Sopenharmony_ci#define CSI0_DP0 _GPIOB(27) 1088c2ecf20Sopenharmony_ci#define CSI0_DN1 _GPIOB(28) 1098c2ecf20Sopenharmony_ci#define CSI0_DP1 _GPIOB(29) 1108c2ecf20Sopenharmony_ci#define CSI0_CN _GPIOB(30) 1118c2ecf20Sopenharmony_ci#define CSI0_CP _GPIOB(31) 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci#define CSI0_DN2 _GPIOC(0) 1148c2ecf20Sopenharmony_ci#define CSI0_DP2 _GPIOC(1) 1158c2ecf20Sopenharmony_ci#define CSI0_DN3 _GPIOC(2) 1168c2ecf20Sopenharmony_ci#define CSI0_DP3 _GPIOC(3) 1178c2ecf20Sopenharmony_ci#define SENSOR0_PCLK _GPIOC(4) 1188c2ecf20Sopenharmony_ci#define CSI1_DN0 _GPIOC(5) 1198c2ecf20Sopenharmony_ci#define CSI1_DP0 _GPIOC(6) 1208c2ecf20Sopenharmony_ci#define CSI1_DN1 _GPIOC(7) 1218c2ecf20Sopenharmony_ci#define CSI1_DP1 _GPIOC(8) 1228c2ecf20Sopenharmony_ci#define CSI1_CN _GPIOC(9) 1238c2ecf20Sopenharmony_ci#define CSI1_CP _GPIOC(10) 1248c2ecf20Sopenharmony_ci#define SENSOR0_CKOUT _GPIOC(11) 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci#define LVDS_OEP _GPIOD(0) 1278c2ecf20Sopenharmony_ci#define LVDS_OEN _GPIOD(1) 1288c2ecf20Sopenharmony_ci#define LVDS_ODP _GPIOD(2) 1298c2ecf20Sopenharmony_ci#define LVDS_ODN _GPIOD(3) 1308c2ecf20Sopenharmony_ci#define LVDS_OCP _GPIOD(4) 1318c2ecf20Sopenharmony_ci#define LVDS_OCN _GPIOD(5) 1328c2ecf20Sopenharmony_ci#define LVDS_OBP _GPIOD(6) 1338c2ecf20Sopenharmony_ci#define LVDS_OBN _GPIOD(7) 1348c2ecf20Sopenharmony_ci#define LVDS_OAP _GPIOD(8) 1358c2ecf20Sopenharmony_ci#define LVDS_OAN _GPIOD(9) 1368c2ecf20Sopenharmony_ci#define LVDS_EEP _GPIOD(10) 1378c2ecf20Sopenharmony_ci#define LVDS_EEN _GPIOD(11) 1388c2ecf20Sopenharmony_ci#define LVDS_EDP _GPIOD(12) 1398c2ecf20Sopenharmony_ci#define LVDS_EDN _GPIOD(13) 1408c2ecf20Sopenharmony_ci#define LVDS_ECP _GPIOD(14) 1418c2ecf20Sopenharmony_ci#define LVDS_ECN _GPIOD(15) 1428c2ecf20Sopenharmony_ci#define LVDS_EBP _GPIOD(16) 1438c2ecf20Sopenharmony_ci#define LVDS_EBN _GPIOD(17) 1448c2ecf20Sopenharmony_ci#define LVDS_EAP _GPIOD(18) 1458c2ecf20Sopenharmony_ci#define LVDS_EAN _GPIOD(19) 1468c2ecf20Sopenharmony_ci#define DSI_DP3 _GPIOD(20) 1478c2ecf20Sopenharmony_ci#define DSI_DN3 _GPIOD(21) 1488c2ecf20Sopenharmony_ci#define DSI_DP1 _GPIOD(22) 1498c2ecf20Sopenharmony_ci#define DSI_DN1 _GPIOD(23) 1508c2ecf20Sopenharmony_ci#define DSI_CP _GPIOD(24) 1518c2ecf20Sopenharmony_ci#define DSI_CN _GPIOD(25) 1528c2ecf20Sopenharmony_ci#define DSI_DP0 _GPIOD(26) 1538c2ecf20Sopenharmony_ci#define DSI_DN0 _GPIOD(27) 1548c2ecf20Sopenharmony_ci#define DSI_DP2 _GPIOD(28) 1558c2ecf20Sopenharmony_ci#define DSI_DN2 _GPIOD(29) 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci#define NAND0_D0 _GPIOE(0) 1588c2ecf20Sopenharmony_ci#define NAND0_D1 _GPIOE(1) 1598c2ecf20Sopenharmony_ci#define NAND0_D2 _GPIOE(2) 1608c2ecf20Sopenharmony_ci#define NAND0_D3 _GPIOE(3) 1618c2ecf20Sopenharmony_ci#define NAND0_D4 _GPIOE(4) 1628c2ecf20Sopenharmony_ci#define NAND0_D5 _GPIOE(5) 1638c2ecf20Sopenharmony_ci#define NAND0_D6 _GPIOE(6) 1648c2ecf20Sopenharmony_ci#define NAND0_D7 _GPIOE(7) 1658c2ecf20Sopenharmony_ci#define NAND0_DQS _GPIOE(8) 1668c2ecf20Sopenharmony_ci#define NAND0_DQSN _GPIOE(9) 1678c2ecf20Sopenharmony_ci#define NAND0_ALE _GPIOE(10) 1688c2ecf20Sopenharmony_ci#define NAND0_CLE _GPIOE(11) 1698c2ecf20Sopenharmony_ci#define NAND0_CEB0 _GPIOE(12) 1708c2ecf20Sopenharmony_ci#define NAND0_CEB1 _GPIOE(13) 1718c2ecf20Sopenharmony_ci#define NAND0_CEB2 _GPIOE(14) 1728c2ecf20Sopenharmony_ci#define NAND0_CEB3 _GPIOE(15) 1738c2ecf20Sopenharmony_ci#define NAND1_D0 _GPIOE(16) 1748c2ecf20Sopenharmony_ci#define NAND1_D1 _GPIOE(17) 1758c2ecf20Sopenharmony_ci#define NAND1_D2 _GPIOE(18) 1768c2ecf20Sopenharmony_ci#define NAND1_D3 _GPIOE(19) 1778c2ecf20Sopenharmony_ci#define NAND1_D4 _GPIOE(20) 1788c2ecf20Sopenharmony_ci#define NAND1_D5 _GPIOE(21) 1798c2ecf20Sopenharmony_ci#define NAND1_D6 _GPIOE(22) 1808c2ecf20Sopenharmony_ci#define NAND1_D7 _GPIOE(23) 1818c2ecf20Sopenharmony_ci#define NAND1_DQS _GPIOE(24) 1828c2ecf20Sopenharmony_ci#define NAND1_DQSN _GPIOE(25) 1838c2ecf20Sopenharmony_ci#define NAND1_ALE _GPIOE(26) 1848c2ecf20Sopenharmony_ci#define NAND1_CLE _GPIOE(27) 1858c2ecf20Sopenharmony_ci#define NAND1_CEB0 _GPIOE(28) 1868c2ecf20Sopenharmony_ci#define NAND1_CEB1 _GPIOE(29) 1878c2ecf20Sopenharmony_ci#define NAND1_CEB2 _GPIOE(30) 1888c2ecf20Sopenharmony_ci#define NAND1_CEB3 _GPIOE(31) 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci#define PCM1_IN _GPIOF(0) 1918c2ecf20Sopenharmony_ci#define PCM1_CLK _GPIOF(1) 1928c2ecf20Sopenharmony_ci#define PCM1_SYNC _GPIOF(2) 1938c2ecf20Sopenharmony_ci#define PCM1_OUT _GPIOF(3) 1948c2ecf20Sopenharmony_ci#define UART3_RX _GPIOF(4) 1958c2ecf20Sopenharmony_ci#define UART3_TX _GPIOF(5) 1968c2ecf20Sopenharmony_ci#define UART3_RTSB _GPIOF(6) 1978c2ecf20Sopenharmony_ci#define UART3_CTSB _GPIOF(7) 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci/* System */ 2008c2ecf20Sopenharmony_ci#define SGPIO0 _PIN(0) 2018c2ecf20Sopenharmony_ci#define SGPIO1 _PIN(1) 2028c2ecf20Sopenharmony_ci#define SGPIO2 _PIN(2) 2038c2ecf20Sopenharmony_ci#define SGPIO3 _PIN(3) 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci#define NUM_PADS (_PIN(3) + 1) 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci/* Pad names as specified in datasheet */ 2088c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc s900_pads[] = { 2098c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD0, "eth_txd0"), 2108c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXD1, "eth_txd1"), 2118c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_TXEN, "eth_txen"), 2128c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXER, "eth_rxer"), 2138c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_CRS_DV, "eth_crs_dv"), 2148c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD1, "eth_rxd1"), 2158c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_RXD0, "eth_rxd0"), 2168c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_REF_CLK, "eth_ref_clk"), 2178c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_MDC, "eth_mdc"), 2188c2ecf20Sopenharmony_ci PINCTRL_PIN(ETH_MDIO, "eth_mdio"), 2198c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ0, "sirq0"), 2208c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ1, "sirq1"), 2218c2ecf20Sopenharmony_ci PINCTRL_PIN(SIRQ2, "sirq2"), 2228c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_D0, "i2s_d0"), 2238c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_BCLK0, "i2s_bclk0"), 2248c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_LRCLK0, "i2s_lrclk0"), 2258c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_MCLK0, "i2s_mclk0"), 2268c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_D1, "i2s_d1"), 2278c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_BCLK1, "i2s_bclk1"), 2288c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_LRCLK1, "i2s_lrclk1"), 2298c2ecf20Sopenharmony_ci PINCTRL_PIN(I2S_MCLK1, "i2s_mclk1"), 2308c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_IN, "pcm1_in"), 2318c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_CLK, "pcm1_clk"), 2328c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_SYNC, "pcm1_sync"), 2338c2ecf20Sopenharmony_ci PINCTRL_PIN(PCM1_OUT, "pcm1_out"), 2348c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A5, "eram_a5"), 2358c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A6, "eram_a6"), 2368c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A7, "eram_a7"), 2378c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A8, "eram_a8"), 2388c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A9, "eram_a9"), 2398c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A10, "eram_a10"), 2408c2ecf20Sopenharmony_ci PINCTRL_PIN(ERAM_A11, "eram_a11"), 2418c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OEP, "lvds_oep"), 2428c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OEN, "lvds_oen"), 2438c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ODP, "lvds_odp"), 2448c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ODN, "lvds_odn"), 2458c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OCP, "lvds_ocp"), 2468c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OCN, "lvds_ocn"), 2478c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OBP, "lvds_obp"), 2488c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OBN, "lvds_obn"), 2498c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OAP, "lvds_oap"), 2508c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_OAN, "lvds_oan"), 2518c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EEP, "lvds_eep"), 2528c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EEN, "lvds_een"), 2538c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EDP, "lvds_edp"), 2548c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EDN, "lvds_edn"), 2558c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ECP, "lvds_ecp"), 2568c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_ECN, "lvds_ecn"), 2578c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EBP, "lvds_ebp"), 2588c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EBN, "lvds_ebn"), 2598c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EAP, "lvds_eap"), 2608c2ecf20Sopenharmony_ci PINCTRL_PIN(LVDS_EAN, "lvds_ean"), 2618c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D0, "sd0_d0"), 2628c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D1, "sd0_d1"), 2638c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D2, "sd0_d2"), 2648c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_D3, "sd0_d3"), 2658c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D0, "sd1_d0"), 2668c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D1, "sd1_d1"), 2678c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D2, "sd1_d2"), 2688c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_D3, "sd1_d3"), 2698c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_CMD, "sd0_cmd"), 2708c2ecf20Sopenharmony_ci PINCTRL_PIN(SD0_CLK, "sd0_clk"), 2718c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_CMD, "sd1_cmd"), 2728c2ecf20Sopenharmony_ci PINCTRL_PIN(SD1_CLK, "sd1_clk"), 2738c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_SCLK, "spi0_sclk"), 2748c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_SS, "spi0_ss"), 2758c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_MISO, "spi0_miso"), 2768c2ecf20Sopenharmony_ci PINCTRL_PIN(SPI0_MOSI, "spi0_mosi"), 2778c2ecf20Sopenharmony_ci PINCTRL_PIN(UART0_RX, "uart0_rx"), 2788c2ecf20Sopenharmony_ci PINCTRL_PIN(UART0_TX, "uart0_tx"), 2798c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_RX, "uart2_rx"), 2808c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_TX, "uart2_tx"), 2818c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_RTSB, "uart2_rtsb"), 2828c2ecf20Sopenharmony_ci PINCTRL_PIN(UART2_CTSB, "uart2_ctsb"), 2838c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_RX, "uart3_rx"), 2848c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_TX, "uart3_tx"), 2858c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_RTSB, "uart3_rtsb"), 2868c2ecf20Sopenharmony_ci PINCTRL_PIN(UART3_CTSB, "uart3_ctsb"), 2878c2ecf20Sopenharmony_ci PINCTRL_PIN(UART4_RX, "uart4_rx"), 2888c2ecf20Sopenharmony_ci PINCTRL_PIN(UART4_TX, "uart4_tx"), 2898c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C0_SCLK, "i2c0_sclk"), 2908c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C0_SDATA, "i2c0_sdata"), 2918c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C1_SCLK, "i2c1_sclk"), 2928c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C1_SDATA, "i2c1_sdata"), 2938c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C2_SCLK, "i2c2_sclk"), 2948c2ecf20Sopenharmony_ci PINCTRL_PIN(I2C2_SDATA, "i2c2_sdata"), 2958c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DN0, "csi0_dn0"), 2968c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DP0, "csi0_dp0"), 2978c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DN1, "csi0_dn1"), 2988c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DP1, "csi0_dp1"), 2998c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_CN, "csi0_cn"), 3008c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_CP, "csi0_cp"), 3018c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DN2, "csi0_dn2"), 3028c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DP2, "csi0_dp2"), 3038c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DN3, "csi0_dn3"), 3048c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI0_DP3, "csi0_dp3"), 3058c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP3, "dsi_dp3"), 3068c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN3, "dsi_dn3"), 3078c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP1, "dsi_dp1"), 3088c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN1, "dsi_dn1"), 3098c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_CP, "dsi_cp"), 3108c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_CN, "dsi_cn"), 3118c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP0, "dsi_dp0"), 3128c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN0, "dsi_dn0"), 3138c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DP2, "dsi_dp2"), 3148c2ecf20Sopenharmony_ci PINCTRL_PIN(DSI_DN2, "dsi_dn2"), 3158c2ecf20Sopenharmony_ci PINCTRL_PIN(SENSOR0_PCLK, "sensor0_pclk"), 3168c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_DN0, "csi1_dn0"), 3178c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_DP0, "csi1_dp0"), 3188c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_DN1, "csi1_dn1"), 3198c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_DP1, "csi1_dp1"), 3208c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_CN, "csi1_cn"), 3218c2ecf20Sopenharmony_ci PINCTRL_PIN(CSI1_CP, "csi1_cp"), 3228c2ecf20Sopenharmony_ci PINCTRL_PIN(SENSOR0_CKOUT, "sensor0_ckout"), 3238c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D0, "nand0_d0"), 3248c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D1, "nand0_d1"), 3258c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D2, "nand0_d2"), 3268c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D3, "nand0_d3"), 3278c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D4, "nand0_d4"), 3288c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D5, "nand0_d5"), 3298c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D6, "nand0_d6"), 3308c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_D7, "nand0_d7"), 3318c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_DQS, "nand0_dqs"), 3328c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_DQSN, "nand0_dqsn"), 3338c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_ALE, "nand0_ale"), 3348c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_CLE, "nand0_cle"), 3358c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_CEB0, "nand0_ceb0"), 3368c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_CEB1, "nand0_ceb1"), 3378c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_CEB2, "nand0_ceb2"), 3388c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND0_CEB3, "nand0_ceb3"), 3398c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D0, "nand1_d0"), 3408c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D1, "nand1_d1"), 3418c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D2, "nand1_d2"), 3428c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D3, "nand1_d3"), 3438c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D4, "nand1_d4"), 3448c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D5, "nand1_d5"), 3458c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D6, "nand1_d6"), 3468c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_D7, "nand1_d7"), 3478c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_DQS, "nand1_dqs"), 3488c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_DQSN, "nand1_dqsn"), 3498c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_ALE, "nand1_ale"), 3508c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_CLE, "nand1_cle"), 3518c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_CEB0, "nand1_ceb0"), 3528c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_CEB1, "nand1_ceb1"), 3538c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_CEB2, "nand1_ceb2"), 3548c2ecf20Sopenharmony_ci PINCTRL_PIN(NAND1_CEB3, "nand1_ceb3"), 3558c2ecf20Sopenharmony_ci PINCTRL_PIN(SGPIO0, "sgpio0"), 3568c2ecf20Sopenharmony_ci PINCTRL_PIN(SGPIO1, "sgpio1"), 3578c2ecf20Sopenharmony_ci PINCTRL_PIN(SGPIO2, "sgpio2"), 3588c2ecf20Sopenharmony_ci PINCTRL_PIN(SGPIO3, "sgpio3") 3598c2ecf20Sopenharmony_ci}; 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_cienum s900_pinmux_functions { 3628c2ecf20Sopenharmony_ci S900_MUX_ERAM, 3638c2ecf20Sopenharmony_ci S900_MUX_ETH_RMII, 3648c2ecf20Sopenharmony_ci S900_MUX_ETH_SMII, 3658c2ecf20Sopenharmony_ci S900_MUX_SPI0, 3668c2ecf20Sopenharmony_ci S900_MUX_SPI1, 3678c2ecf20Sopenharmony_ci S900_MUX_SPI2, 3688c2ecf20Sopenharmony_ci S900_MUX_SPI3, 3698c2ecf20Sopenharmony_ci S900_MUX_SENS0, 3708c2ecf20Sopenharmony_ci S900_MUX_UART0, 3718c2ecf20Sopenharmony_ci S900_MUX_UART1, 3728c2ecf20Sopenharmony_ci S900_MUX_UART2, 3738c2ecf20Sopenharmony_ci S900_MUX_UART3, 3748c2ecf20Sopenharmony_ci S900_MUX_UART4, 3758c2ecf20Sopenharmony_ci S900_MUX_UART5, 3768c2ecf20Sopenharmony_ci S900_MUX_UART6, 3778c2ecf20Sopenharmony_ci S900_MUX_I2S0, 3788c2ecf20Sopenharmony_ci S900_MUX_I2S1, 3798c2ecf20Sopenharmony_ci S900_MUX_PCM0, 3808c2ecf20Sopenharmony_ci S900_MUX_PCM1, 3818c2ecf20Sopenharmony_ci S900_MUX_JTAG, 3828c2ecf20Sopenharmony_ci S900_MUX_PWM0, 3838c2ecf20Sopenharmony_ci S900_MUX_PWM1, 3848c2ecf20Sopenharmony_ci S900_MUX_PWM2, 3858c2ecf20Sopenharmony_ci S900_MUX_PWM3, 3868c2ecf20Sopenharmony_ci S900_MUX_PWM4, 3878c2ecf20Sopenharmony_ci S900_MUX_PWM5, 3888c2ecf20Sopenharmony_ci S900_MUX_SD0, 3898c2ecf20Sopenharmony_ci S900_MUX_SD1, 3908c2ecf20Sopenharmony_ci S900_MUX_SD2, 3918c2ecf20Sopenharmony_ci S900_MUX_SD3, 3928c2ecf20Sopenharmony_ci S900_MUX_I2C0, 3938c2ecf20Sopenharmony_ci S900_MUX_I2C1, 3948c2ecf20Sopenharmony_ci S900_MUX_I2C2, 3958c2ecf20Sopenharmony_ci S900_MUX_I2C3, 3968c2ecf20Sopenharmony_ci S900_MUX_I2C4, 3978c2ecf20Sopenharmony_ci S900_MUX_I2C5, 3988c2ecf20Sopenharmony_ci S900_MUX_LVDS, 3998c2ecf20Sopenharmony_ci S900_MUX_USB20, 4008c2ecf20Sopenharmony_ci S900_MUX_USB30, 4018c2ecf20Sopenharmony_ci S900_MUX_GPU, 4028c2ecf20Sopenharmony_ci S900_MUX_MIPI_CSI0, 4038c2ecf20Sopenharmony_ci S900_MUX_MIPI_CSI1, 4048c2ecf20Sopenharmony_ci S900_MUX_MIPI_DSI, 4058c2ecf20Sopenharmony_ci S900_MUX_NAND0, 4068c2ecf20Sopenharmony_ci S900_MUX_NAND1, 4078c2ecf20Sopenharmony_ci S900_MUX_SPDIF, 4088c2ecf20Sopenharmony_ci S900_MUX_SIRQ0, 4098c2ecf20Sopenharmony_ci S900_MUX_SIRQ1, 4108c2ecf20Sopenharmony_ci S900_MUX_SIRQ2, 4118c2ecf20Sopenharmony_ci S900_MUX_AUX_START, 4128c2ecf20Sopenharmony_ci S900_MUX_MAX, 4138c2ecf20Sopenharmony_ci S900_MUX_RESERVED 4148c2ecf20Sopenharmony_ci}; 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ci/* mfp0_22 */ 4178c2ecf20Sopenharmony_cistatic unsigned int lvds_oxx_uart4_mfp_pads[] = { LVDS_OAP, LVDS_OAN }; 4188c2ecf20Sopenharmony_cistatic unsigned int lvds_oxx_uart4_mfp_funcs[] = { S900_MUX_ERAM, 4198c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 4208c2ecf20Sopenharmony_ci/* mfp0_21_20 */ 4218c2ecf20Sopenharmony_cistatic unsigned int rmii_mdc_mfp_pads[] = { ETH_MDC }; 4228c2ecf20Sopenharmony_cistatic unsigned int rmii_mdc_mfp_funcs[] = { S900_MUX_ETH_RMII, 4238c2ecf20Sopenharmony_ci S900_MUX_PWM2, 4248c2ecf20Sopenharmony_ci S900_MUX_UART2, 4258c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 4268c2ecf20Sopenharmony_cistatic unsigned int rmii_mdio_mfp_pads[] = { ETH_MDIO }; 4278c2ecf20Sopenharmony_cistatic unsigned int rmii_mdio_mfp_funcs[] = { S900_MUX_ETH_RMII, 4288c2ecf20Sopenharmony_ci S900_MUX_PWM3, 4298c2ecf20Sopenharmony_ci S900_MUX_UART2, 4308c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 4318c2ecf20Sopenharmony_ci/* mfp0_19 */ 4328c2ecf20Sopenharmony_cistatic unsigned int sirq0_mfp_pads[] = { SIRQ0 }; 4338c2ecf20Sopenharmony_cistatic unsigned int sirq0_mfp_funcs[] = { S900_MUX_SIRQ0, 4348c2ecf20Sopenharmony_ci S900_MUX_PWM0 }; 4358c2ecf20Sopenharmony_cistatic unsigned int sirq1_mfp_pads[] = { SIRQ1 }; 4368c2ecf20Sopenharmony_cistatic unsigned int sirq1_mfp_funcs[] = { S900_MUX_SIRQ1, 4378c2ecf20Sopenharmony_ci S900_MUX_PWM1 }; 4388c2ecf20Sopenharmony_ci/* mfp0_18_16 */ 4398c2ecf20Sopenharmony_cistatic unsigned int rmii_txd0_mfp_pads[] = { ETH_TXD0 }; 4408c2ecf20Sopenharmony_cistatic unsigned int rmii_txd0_mfp_funcs[] = { S900_MUX_ETH_RMII, 4418c2ecf20Sopenharmony_ci S900_MUX_ETH_SMII, 4428c2ecf20Sopenharmony_ci S900_MUX_SPI2, 4438c2ecf20Sopenharmony_ci S900_MUX_UART6, 4448c2ecf20Sopenharmony_ci S900_MUX_SENS0, 4458c2ecf20Sopenharmony_ci S900_MUX_PWM0 }; 4468c2ecf20Sopenharmony_cistatic unsigned int rmii_txd1_mfp_pads[] = { ETH_TXD1 }; 4478c2ecf20Sopenharmony_cistatic unsigned int rmii_txd1_mfp_funcs[] = { S900_MUX_ETH_RMII, 4488c2ecf20Sopenharmony_ci S900_MUX_ETH_SMII, 4498c2ecf20Sopenharmony_ci S900_MUX_SPI2, 4508c2ecf20Sopenharmony_ci S900_MUX_UART6, 4518c2ecf20Sopenharmony_ci S900_MUX_SENS0, 4528c2ecf20Sopenharmony_ci S900_MUX_PWM1 }; 4538c2ecf20Sopenharmony_ci/* mfp0_15_13 */ 4548c2ecf20Sopenharmony_cistatic unsigned int rmii_txen_mfp_pads[] = { ETH_TXEN }; 4558c2ecf20Sopenharmony_cistatic unsigned int rmii_txen_mfp_funcs[] = { S900_MUX_ETH_RMII, 4568c2ecf20Sopenharmony_ci S900_MUX_UART2, 4578c2ecf20Sopenharmony_ci S900_MUX_SPI3, 4588c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4598c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4608c2ecf20Sopenharmony_ci S900_MUX_PWM2, 4618c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 4628c2ecf20Sopenharmony_ci 4638c2ecf20Sopenharmony_cistatic unsigned int rmii_rxer_mfp_pads[] = { ETH_RXER }; 4648c2ecf20Sopenharmony_cistatic unsigned int rmii_rxer_mfp_funcs[] = { S900_MUX_ETH_RMII, 4658c2ecf20Sopenharmony_ci S900_MUX_UART2, 4668c2ecf20Sopenharmony_ci S900_MUX_SPI3, 4678c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4688c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4698c2ecf20Sopenharmony_ci S900_MUX_PWM3, 4708c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 4718c2ecf20Sopenharmony_ci/* mfp0_12_11 */ 4728c2ecf20Sopenharmony_cistatic unsigned int rmii_crs_dv_mfp_pads[] = { ETH_CRS_DV }; 4738c2ecf20Sopenharmony_cistatic unsigned int rmii_crs_dv_mfp_funcs[] = { S900_MUX_ETH_RMII, 4748c2ecf20Sopenharmony_ci S900_MUX_ETH_SMII, 4758c2ecf20Sopenharmony_ci S900_MUX_SPI2, 4768c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 4778c2ecf20Sopenharmony_ci/* mfp0_10_8 */ 4788c2ecf20Sopenharmony_cistatic unsigned int rmii_rxd1_mfp_pads[] = { ETH_RXD1 }; 4798c2ecf20Sopenharmony_cistatic unsigned int rmii_rxd1_mfp_funcs[] = { S900_MUX_ETH_RMII, 4808c2ecf20Sopenharmony_ci S900_MUX_UART2, 4818c2ecf20Sopenharmony_ci S900_MUX_SPI3, 4828c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4838c2ecf20Sopenharmony_ci S900_MUX_UART5, 4848c2ecf20Sopenharmony_ci S900_MUX_PWM0, 4858c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 4868c2ecf20Sopenharmony_cistatic unsigned int rmii_rxd0_mfp_pads[] = { ETH_RXD0 }; 4878c2ecf20Sopenharmony_cistatic unsigned int rmii_rxd0_mfp_funcs[] = { S900_MUX_ETH_RMII, 4888c2ecf20Sopenharmony_ci S900_MUX_UART2, 4898c2ecf20Sopenharmony_ci S900_MUX_SPI3, 4908c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 4918c2ecf20Sopenharmony_ci S900_MUX_UART5, 4928c2ecf20Sopenharmony_ci S900_MUX_PWM1, 4938c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 4948c2ecf20Sopenharmony_ci/* mfp0_7_6 */ 4958c2ecf20Sopenharmony_cistatic unsigned int rmii_ref_clk_mfp_pads[] = { ETH_REF_CLK }; 4968c2ecf20Sopenharmony_cistatic unsigned int rmii_ref_clk_mfp_funcs[] = { S900_MUX_ETH_RMII, 4978c2ecf20Sopenharmony_ci S900_MUX_UART4, 4988c2ecf20Sopenharmony_ci S900_MUX_SPI2, 4998c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 5008c2ecf20Sopenharmony_ci/* mfp0_5 */ 5018c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_mfp_pads[] = { I2S_D0 }; 5028c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_mfp_funcs[] = { S900_MUX_I2S0, 5038c2ecf20Sopenharmony_ci S900_MUX_PCM0 }; 5048c2ecf20Sopenharmony_cistatic unsigned int i2s_d1_mfp_pads[] = { I2S_D1 }; 5058c2ecf20Sopenharmony_cistatic unsigned int i2s_d1_mfp_funcs[] = { S900_MUX_I2S1, 5068c2ecf20Sopenharmony_ci S900_MUX_PCM0 }; 5078c2ecf20Sopenharmony_ci 5088c2ecf20Sopenharmony_ci/* mfp0_4_3 */ 5098c2ecf20Sopenharmony_cistatic unsigned int i2s_lr_m_clk0_mfp_pads[] = { I2S_LRCLK0, 5108c2ecf20Sopenharmony_ci I2S_MCLK0 }; 5118c2ecf20Sopenharmony_cistatic unsigned int i2s_lr_m_clk0_mfp_funcs[] = { S900_MUX_I2S0, 5128c2ecf20Sopenharmony_ci S900_MUX_PCM0, 5138c2ecf20Sopenharmony_ci S900_MUX_PCM1, 5148c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 5158c2ecf20Sopenharmony_ci/* mfp0_2 */ 5168c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk0_mfp_pads[] = { I2S_BCLK0 }; 5178c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk0_mfp_funcs[] = { S900_MUX_I2S0, 5188c2ecf20Sopenharmony_ci S900_MUX_PCM0 }; 5198c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk1_mclk1_mfp_pads[] = { I2S_BCLK1, 5208c2ecf20Sopenharmony_ci I2S_LRCLK1, 5218c2ecf20Sopenharmony_ci I2S_MCLK1 }; 5228c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk1_mclk1_mfp_funcs[] = { S900_MUX_I2S1, 5238c2ecf20Sopenharmony_ci S900_MUX_PCM0 }; 5248c2ecf20Sopenharmony_ci/* mfp0_1_0 */ 5258c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_out_mfp_pads[] = { PCM1_IN, 5268c2ecf20Sopenharmony_ci PCM1_OUT }; 5278c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_out_mfp_funcs[] = { S900_MUX_PCM1, 5288c2ecf20Sopenharmony_ci S900_MUX_SPI1, 5298c2ecf20Sopenharmony_ci S900_MUX_I2C3, 5308c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 5318c2ecf20Sopenharmony_cistatic unsigned int pcm1_clk_mfp_pads[] = { PCM1_CLK }; 5328c2ecf20Sopenharmony_cistatic unsigned int pcm1_clk_mfp_funcs[] = { S900_MUX_PCM1, 5338c2ecf20Sopenharmony_ci S900_MUX_SPI1, 5348c2ecf20Sopenharmony_ci S900_MUX_PWM4, 5358c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 5368c2ecf20Sopenharmony_cistatic unsigned int pcm1_sync_mfp_pads[] = { PCM1_SYNC }; 5378c2ecf20Sopenharmony_cistatic unsigned int pcm1_sync_mfp_funcs[] = { S900_MUX_PCM1, 5388c2ecf20Sopenharmony_ci S900_MUX_SPI1, 5398c2ecf20Sopenharmony_ci S900_MUX_PWM5, 5408c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 5418c2ecf20Sopenharmony_ci/* mfp1_31_29 */ 5428c2ecf20Sopenharmony_cistatic unsigned int eram_a5_mfp_pads[] = { ERAM_A5 }; 5438c2ecf20Sopenharmony_cistatic unsigned int eram_a5_mfp_funcs[] = { S900_MUX_UART4, 5448c2ecf20Sopenharmony_ci S900_MUX_JTAG, 5458c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5468c2ecf20Sopenharmony_ci S900_MUX_PWM0, 5478c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5488c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 5498c2ecf20Sopenharmony_cistatic unsigned int eram_a6_mfp_pads[] = { ERAM_A6 }; 5508c2ecf20Sopenharmony_cistatic unsigned int eram_a6_mfp_funcs[] = { S900_MUX_UART4, 5518c2ecf20Sopenharmony_ci S900_MUX_JTAG, 5528c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5538c2ecf20Sopenharmony_ci S900_MUX_PWM1, 5548c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5558c2ecf20Sopenharmony_ci S900_MUX_SENS0, 5568c2ecf20Sopenharmony_ci}; 5578c2ecf20Sopenharmony_cistatic unsigned int eram_a7_mfp_pads[] = { ERAM_A7 }; 5588c2ecf20Sopenharmony_cistatic unsigned int eram_a7_mfp_funcs[] = { S900_MUX_RESERVED, 5598c2ecf20Sopenharmony_ci S900_MUX_JTAG, 5608c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5618c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5628c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5638c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 5648c2ecf20Sopenharmony_ci/* mfp1_28_26 */ 5658c2ecf20Sopenharmony_cistatic unsigned int eram_a8_mfp_pads[] = { ERAM_A8 }; 5668c2ecf20Sopenharmony_cistatic unsigned int eram_a8_mfp_funcs[] = { S900_MUX_RESERVED, 5678c2ecf20Sopenharmony_ci S900_MUX_JTAG, 5688c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5698c2ecf20Sopenharmony_ci S900_MUX_PWM1, 5708c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5718c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 5728c2ecf20Sopenharmony_cistatic unsigned int eram_a9_mfp_pads[] = { ERAM_A9 }; 5738c2ecf20Sopenharmony_cistatic unsigned int eram_a9_mfp_funcs[] = { S900_MUX_USB20, 5748c2ecf20Sopenharmony_ci S900_MUX_UART5, 5758c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5768c2ecf20Sopenharmony_ci S900_MUX_PWM2, 5778c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5788c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 5798c2ecf20Sopenharmony_cistatic unsigned int eram_a10_mfp_pads[] = { ERAM_A10 }; 5808c2ecf20Sopenharmony_cistatic unsigned int eram_a10_mfp_funcs[] = { S900_MUX_USB30, 5818c2ecf20Sopenharmony_ci S900_MUX_JTAG, 5828c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5838c2ecf20Sopenharmony_ci S900_MUX_PWM3, 5848c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5858c2ecf20Sopenharmony_ci S900_MUX_SENS0, 5868c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5878c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 5888c2ecf20Sopenharmony_ci/* mfp1_25_23 */ 5898c2ecf20Sopenharmony_cistatic unsigned int eram_a11_mfp_pads[] = { ERAM_A11 }; 5908c2ecf20Sopenharmony_cistatic unsigned int eram_a11_mfp_funcs[] = { S900_MUX_RESERVED, 5918c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5928c2ecf20Sopenharmony_ci S900_MUX_ERAM, 5938c2ecf20Sopenharmony_ci S900_MUX_PWM2, 5948c2ecf20Sopenharmony_ci S900_MUX_UART5, 5958c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 5968c2ecf20Sopenharmony_ci S900_MUX_SENS0, 5978c2ecf20Sopenharmony_ci S900_MUX_RESERVED }; 5988c2ecf20Sopenharmony_ci/* mfp1_22 */ 5998c2ecf20Sopenharmony_cistatic unsigned int lvds_oep_odn_mfp_pads[] = { LVDS_OEP, 6008c2ecf20Sopenharmony_ci LVDS_OEN, 6018c2ecf20Sopenharmony_ci LVDS_ODP, 6028c2ecf20Sopenharmony_ci LVDS_ODN }; 6038c2ecf20Sopenharmony_cistatic unsigned int lvds_oep_odn_mfp_funcs[] = { S900_MUX_LVDS, 6048c2ecf20Sopenharmony_ci S900_MUX_UART2 }; 6058c2ecf20Sopenharmony_cistatic unsigned int lvds_ocp_obn_mfp_pads[] = { LVDS_OCP, 6068c2ecf20Sopenharmony_ci LVDS_OCN, 6078c2ecf20Sopenharmony_ci LVDS_OBP, 6088c2ecf20Sopenharmony_ci LVDS_OBN }; 6098c2ecf20Sopenharmony_cistatic unsigned int lvds_ocp_obn_mfp_funcs[] = { S900_MUX_LVDS, 6108c2ecf20Sopenharmony_ci S900_MUX_PCM1 }; 6118c2ecf20Sopenharmony_cistatic unsigned int lvds_oap_oan_mfp_pads[] = { LVDS_OAP, 6128c2ecf20Sopenharmony_ci LVDS_OAN }; 6138c2ecf20Sopenharmony_cistatic unsigned int lvds_oap_oan_mfp_funcs[] = { S900_MUX_LVDS, 6148c2ecf20Sopenharmony_ci S900_MUX_ERAM }; 6158c2ecf20Sopenharmony_ci/* mfp1_21 */ 6168c2ecf20Sopenharmony_cistatic unsigned int lvds_e_mfp_pads[] = { LVDS_EEP, 6178c2ecf20Sopenharmony_ci LVDS_EEN, 6188c2ecf20Sopenharmony_ci LVDS_EDP, 6198c2ecf20Sopenharmony_ci LVDS_EDN, 6208c2ecf20Sopenharmony_ci LVDS_ECP, 6218c2ecf20Sopenharmony_ci LVDS_ECN, 6228c2ecf20Sopenharmony_ci LVDS_EBP, 6238c2ecf20Sopenharmony_ci LVDS_EBN, 6248c2ecf20Sopenharmony_ci LVDS_EAP, 6258c2ecf20Sopenharmony_ci LVDS_EAN }; 6268c2ecf20Sopenharmony_cistatic unsigned int lvds_e_mfp_funcs[] = { S900_MUX_LVDS, 6278c2ecf20Sopenharmony_ci S900_MUX_ERAM }; 6288c2ecf20Sopenharmony_ci/* mfp1_5_4 */ 6298c2ecf20Sopenharmony_cistatic unsigned int spi0_sclk_mosi_mfp_pads[] = { SPI0_SCLK, 6308c2ecf20Sopenharmony_ci SPI0_MOSI }; 6318c2ecf20Sopenharmony_cistatic unsigned int spi0_sclk_mosi_mfp_funcs[] = { S900_MUX_SPI0, 6328c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6338c2ecf20Sopenharmony_ci S900_MUX_I2C3, 6348c2ecf20Sopenharmony_ci S900_MUX_PCM0 }; 6358c2ecf20Sopenharmony_ci/* mfp1_3_1 */ 6368c2ecf20Sopenharmony_cistatic unsigned int spi0_ss_mfp_pads[] = { SPI0_SS }; 6378c2ecf20Sopenharmony_cistatic unsigned int spi0_ss_mfp_funcs[] = { S900_MUX_SPI0, 6388c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6398c2ecf20Sopenharmony_ci S900_MUX_I2S1, 6408c2ecf20Sopenharmony_ci S900_MUX_PCM1, 6418c2ecf20Sopenharmony_ci S900_MUX_PCM0, 6428c2ecf20Sopenharmony_ci S900_MUX_PWM4 }; 6438c2ecf20Sopenharmony_cistatic unsigned int spi0_miso_mfp_pads[] = { SPI0_MISO }; 6448c2ecf20Sopenharmony_cistatic unsigned int spi0_miso_mfp_funcs[] = { S900_MUX_SPI0, 6458c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6468c2ecf20Sopenharmony_ci S900_MUX_I2S1, 6478c2ecf20Sopenharmony_ci S900_MUX_PCM1, 6488c2ecf20Sopenharmony_ci S900_MUX_PCM0, 6498c2ecf20Sopenharmony_ci S900_MUX_PWM5 }; 6508c2ecf20Sopenharmony_ci/* mfp2_23 */ 6518c2ecf20Sopenharmony_cistatic unsigned int uart2_rtsb_mfp_pads[] = { UART2_RTSB }; 6528c2ecf20Sopenharmony_cistatic unsigned int uart2_rtsb_mfp_funcs[] = { S900_MUX_UART2, 6538c2ecf20Sopenharmony_ci S900_MUX_UART0 }; 6548c2ecf20Sopenharmony_ci/* mfp2_22 */ 6558c2ecf20Sopenharmony_cistatic unsigned int uart2_ctsb_mfp_pads[] = { UART2_CTSB }; 6568c2ecf20Sopenharmony_cistatic unsigned int uart2_ctsb_mfp_funcs[] = { S900_MUX_UART2, 6578c2ecf20Sopenharmony_ci S900_MUX_UART0 }; 6588c2ecf20Sopenharmony_ci/* mfp2_21 */ 6598c2ecf20Sopenharmony_cistatic unsigned int uart3_rtsb_mfp_pads[] = { UART3_RTSB }; 6608c2ecf20Sopenharmony_cistatic unsigned int uart3_rtsb_mfp_funcs[] = { S900_MUX_UART3, 6618c2ecf20Sopenharmony_ci S900_MUX_UART5 }; 6628c2ecf20Sopenharmony_ci/* mfp2_20 */ 6638c2ecf20Sopenharmony_cistatic unsigned int uart3_ctsb_mfp_pads[] = { UART3_CTSB }; 6648c2ecf20Sopenharmony_cistatic unsigned int uart3_ctsb_mfp_funcs[] = { S900_MUX_UART3, 6658c2ecf20Sopenharmony_ci S900_MUX_UART5 }; 6668c2ecf20Sopenharmony_ci/* mfp2_19_17 */ 6678c2ecf20Sopenharmony_cistatic unsigned int sd0_d0_mfp_pads[] = { SD0_D0 }; 6688c2ecf20Sopenharmony_cistatic unsigned int sd0_d0_mfp_funcs[] = { S900_MUX_SD0, 6698c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6708c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 6718c2ecf20Sopenharmony_ci S900_MUX_JTAG, 6728c2ecf20Sopenharmony_ci S900_MUX_UART2, 6738c2ecf20Sopenharmony_ci S900_MUX_UART5, 6748c2ecf20Sopenharmony_ci S900_MUX_GPU }; 6758c2ecf20Sopenharmony_ci/* mfp2_16_14 */ 6768c2ecf20Sopenharmony_cistatic unsigned int sd0_d1_mfp_pads[] = { SD0_D1 }; 6778c2ecf20Sopenharmony_cistatic unsigned int sd0_d1_mfp_funcs[] = { S900_MUX_SD0, 6788c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6798c2ecf20Sopenharmony_ci S900_MUX_GPU, 6808c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 6818c2ecf20Sopenharmony_ci S900_MUX_UART2, 6828c2ecf20Sopenharmony_ci S900_MUX_UART5 }; 6838c2ecf20Sopenharmony_ci/* mfp_13_11 */ 6848c2ecf20Sopenharmony_cistatic unsigned int sd0_d2_d3_mfp_pads[] = { SD0_D2, 6858c2ecf20Sopenharmony_ci SD0_D3 }; 6868c2ecf20Sopenharmony_cistatic unsigned int sd0_d2_d3_mfp_funcs[] = { S900_MUX_SD0, 6878c2ecf20Sopenharmony_ci S900_MUX_ERAM, 6888c2ecf20Sopenharmony_ci S900_MUX_RESERVED, 6898c2ecf20Sopenharmony_ci S900_MUX_JTAG, 6908c2ecf20Sopenharmony_ci S900_MUX_UART2, 6918c2ecf20Sopenharmony_ci S900_MUX_UART1, 6928c2ecf20Sopenharmony_ci S900_MUX_GPU }; 6938c2ecf20Sopenharmony_ci/* mfp2_10_9 */ 6948c2ecf20Sopenharmony_cistatic unsigned int sd1_d0_d3_mfp_pads[] = { SD1_D0, SD1_D1, 6958c2ecf20Sopenharmony_ci SD1_D2, SD1_D3 }; 6968c2ecf20Sopenharmony_cistatic unsigned int sd1_d0_d3_mfp_funcs[] = { S900_MUX_SD1, 6978c2ecf20Sopenharmony_ci S900_MUX_ERAM }; 6988c2ecf20Sopenharmony_ci/* mfp2_8_7 */ 6998c2ecf20Sopenharmony_cistatic unsigned int sd0_cmd_mfp_pads[] = { SD0_CMD }; 7008c2ecf20Sopenharmony_cistatic unsigned int sd0_cmd_mfp_funcs[] = { S900_MUX_SD0, 7018c2ecf20Sopenharmony_ci S900_MUX_ERAM, 7028c2ecf20Sopenharmony_ci S900_MUX_GPU, 7038c2ecf20Sopenharmony_ci S900_MUX_JTAG }; 7048c2ecf20Sopenharmony_ci/* mfp2_6_5 */ 7058c2ecf20Sopenharmony_cistatic unsigned int sd0_clk_mfp_pads[] = { SD0_CLK }; 7068c2ecf20Sopenharmony_cistatic unsigned int sd0_clk_mfp_funcs[] = { S900_MUX_SD0, 7078c2ecf20Sopenharmony_ci S900_MUX_ERAM, 7088c2ecf20Sopenharmony_ci S900_MUX_JTAG, 7098c2ecf20Sopenharmony_ci S900_MUX_GPU }; 7108c2ecf20Sopenharmony_ci/* mfp2_4_3 */ 7118c2ecf20Sopenharmony_cistatic unsigned int sd1_cmd_clk_mfp_pads[] = { SD1_CMD, SD1_CLK }; 7128c2ecf20Sopenharmony_cistatic unsigned int sd1_cmd_clk_mfp_funcs[] = { S900_MUX_SD1, 7138c2ecf20Sopenharmony_ci S900_MUX_ERAM }; 7148c2ecf20Sopenharmony_ci/* mfp2_2_0 */ 7158c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_mfp_pads[] = { UART0_RX }; 7168c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_mfp_funcs[] = { S900_MUX_UART0, 7178c2ecf20Sopenharmony_ci S900_MUX_UART2, 7188c2ecf20Sopenharmony_ci S900_MUX_SPI1, 7198c2ecf20Sopenharmony_ci S900_MUX_I2C5, 7208c2ecf20Sopenharmony_ci S900_MUX_PCM1, 7218c2ecf20Sopenharmony_ci S900_MUX_I2S1 }; 7228c2ecf20Sopenharmony_ci/* mfp3_27 */ 7238c2ecf20Sopenharmony_cistatic unsigned int nand0_d0_ceb3_mfp_pads[] = { NAND0_D0, NAND0_D1, 7248c2ecf20Sopenharmony_ci NAND0_D2, NAND0_D3, 7258c2ecf20Sopenharmony_ci NAND0_D4, NAND0_D5, 7268c2ecf20Sopenharmony_ci NAND0_D6, NAND0_D7, 7278c2ecf20Sopenharmony_ci NAND0_DQSN, NAND0_CEB3 }; 7288c2ecf20Sopenharmony_cistatic unsigned int nand0_d0_ceb3_mfp_funcs[] = { S900_MUX_NAND0, 7298c2ecf20Sopenharmony_ci S900_MUX_SD2 }; 7308c2ecf20Sopenharmony_ci/* mfp3_21_19 */ 7318c2ecf20Sopenharmony_cistatic unsigned int uart0_tx_mfp_pads[] = { UART0_TX }; 7328c2ecf20Sopenharmony_cistatic unsigned int uart0_tx_mfp_funcs[] = { S900_MUX_UART0, 7338c2ecf20Sopenharmony_ci S900_MUX_UART2, 7348c2ecf20Sopenharmony_ci S900_MUX_SPI1, 7358c2ecf20Sopenharmony_ci S900_MUX_I2C5, 7368c2ecf20Sopenharmony_ci S900_MUX_SPDIF, 7378c2ecf20Sopenharmony_ci S900_MUX_PCM1, 7388c2ecf20Sopenharmony_ci S900_MUX_I2S1 }; 7398c2ecf20Sopenharmony_ci/* mfp3_18_16 */ 7408c2ecf20Sopenharmony_cistatic unsigned int i2c0_mfp_pads[] = { I2C0_SCLK, I2C0_SDATA }; 7418c2ecf20Sopenharmony_cistatic unsigned int i2c0_mfp_funcs[] = { S900_MUX_I2C0, 7428c2ecf20Sopenharmony_ci S900_MUX_UART2, 7438c2ecf20Sopenharmony_ci S900_MUX_I2C1, 7448c2ecf20Sopenharmony_ci S900_MUX_UART1, 7458c2ecf20Sopenharmony_ci S900_MUX_SPI1 }; 7468c2ecf20Sopenharmony_ci/* mfp3_15 */ 7478c2ecf20Sopenharmony_cistatic unsigned int csi0_cn_cp_mfp_pads[] = { CSI0_CN, CSI0_CP }; 7488c2ecf20Sopenharmony_cistatic unsigned int csi0_cn_cp_mfp_funcs[] = { S900_MUX_SENS0, 7498c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 7508c2ecf20Sopenharmony_ci/* mfp3_14 */ 7518c2ecf20Sopenharmony_cistatic unsigned int csi0_dn0_dp3_mfp_pads[] = { CSI0_DN0, CSI0_DP0, 7528c2ecf20Sopenharmony_ci CSI0_DN1, CSI0_DP1, 7538c2ecf20Sopenharmony_ci CSI0_CN, CSI0_CP, 7548c2ecf20Sopenharmony_ci CSI0_DP2, CSI0_DN2, 7558c2ecf20Sopenharmony_ci CSI0_DN3, CSI0_DP3 }; 7568c2ecf20Sopenharmony_cistatic unsigned int csi0_dn0_dp3_mfp_funcs[] = { S900_MUX_MIPI_CSI0, 7578c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 7588c2ecf20Sopenharmony_ci/* mfp3_13 */ 7598c2ecf20Sopenharmony_cistatic unsigned int csi1_dn0_cp_mfp_pads[] = { CSI1_DN0, CSI1_DP0, 7608c2ecf20Sopenharmony_ci CSI1_DN1, CSI1_DP1, 7618c2ecf20Sopenharmony_ci CSI1_CN, CSI1_CP }; 7628c2ecf20Sopenharmony_cistatic unsigned int csi1_dn0_cp_mfp_funcs[] = { S900_MUX_MIPI_CSI1, 7638c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 7648c2ecf20Sopenharmony_ci/* mfp3_12_dsi */ 7658c2ecf20Sopenharmony_cistatic unsigned int dsi_dp3_dn1_mfp_pads[] = { DSI_DP3, DSI_DN2, 7668c2ecf20Sopenharmony_ci DSI_DP1, DSI_DN1 }; 7678c2ecf20Sopenharmony_cistatic unsigned int dsi_dp3_dn1_mfp_funcs[] = { S900_MUX_MIPI_DSI, 7688c2ecf20Sopenharmony_ci S900_MUX_UART2 }; 7698c2ecf20Sopenharmony_cistatic unsigned int dsi_cp_dn0_mfp_pads[] = { DSI_CP, DSI_CN, 7708c2ecf20Sopenharmony_ci DSI_DP0, DSI_DN0 }; 7718c2ecf20Sopenharmony_cistatic unsigned int dsi_cp_dn0_mfp_funcs[] = { S900_MUX_MIPI_DSI, 7728c2ecf20Sopenharmony_ci S900_MUX_PCM1 }; 7738c2ecf20Sopenharmony_cistatic unsigned int dsi_dp2_dn2_mfp_pads[] = { DSI_DP2, DSI_DN2 }; 7748c2ecf20Sopenharmony_cistatic unsigned int dsi_dp2_dn2_mfp_funcs[] = { S900_MUX_MIPI_DSI, 7758c2ecf20Sopenharmony_ci S900_MUX_UART4 }; 7768c2ecf20Sopenharmony_ci/* mfp3_11 */ 7778c2ecf20Sopenharmony_cistatic unsigned int nand1_d0_ceb1_mfp_pads[] = { NAND1_D0, NAND1_D1, 7788c2ecf20Sopenharmony_ci NAND1_D2, NAND1_D3, 7798c2ecf20Sopenharmony_ci NAND1_D4, NAND1_D5, 7808c2ecf20Sopenharmony_ci NAND1_D6, NAND1_D7, 7818c2ecf20Sopenharmony_ci NAND1_DQSN, NAND1_CEB1 }; 7828c2ecf20Sopenharmony_cistatic unsigned int nand1_d0_ceb1_mfp_funcs[] = { S900_MUX_NAND1, 7838c2ecf20Sopenharmony_ci S900_MUX_SD3 }; 7848c2ecf20Sopenharmony_ci/* mfp3_10 */ 7858c2ecf20Sopenharmony_cistatic unsigned int nand1_ceb3_mfp_pads[] = { NAND1_CEB3 }; 7868c2ecf20Sopenharmony_cistatic unsigned int nand1_ceb3_mfp_funcs[] = { S900_MUX_NAND1, 7878c2ecf20Sopenharmony_ci S900_MUX_PWM0 }; 7888c2ecf20Sopenharmony_cistatic unsigned int nand1_ceb0_mfp_pads[] = { NAND1_CEB0 }; 7898c2ecf20Sopenharmony_cistatic unsigned int nand1_ceb0_mfp_funcs[] = { S900_MUX_NAND1, 7908c2ecf20Sopenharmony_ci S900_MUX_PWM1 }; 7918c2ecf20Sopenharmony_ci/* mfp3_9 */ 7928c2ecf20Sopenharmony_cistatic unsigned int csi1_dn0_dp0_mfp_pads[] = { CSI1_DN0, CSI1_DP0 }; 7938c2ecf20Sopenharmony_cistatic unsigned int csi1_dn0_dp0_mfp_funcs[] = { S900_MUX_SENS0, 7948c2ecf20Sopenharmony_ci S900_MUX_SENS0 }; 7958c2ecf20Sopenharmony_ci/* mfp3_8 */ 7968c2ecf20Sopenharmony_cistatic unsigned int uart4_rx_tx_mfp_pads[] = { UART4_RX, UART4_TX }; 7978c2ecf20Sopenharmony_cistatic unsigned int uart4_rx_tx_mfp_funcs[] = { S900_MUX_UART4, 7988c2ecf20Sopenharmony_ci S900_MUX_I2C4 }; 7998c2ecf20Sopenharmony_ci/* PADDRV group data */ 8008c2ecf20Sopenharmony_ci/* drv0 */ 8018c2ecf20Sopenharmony_cistatic unsigned int sgpio3_drv_pads[] = { SGPIO3 }; 8028c2ecf20Sopenharmony_cistatic unsigned int sgpio2_drv_pads[] = { SGPIO2 }; 8038c2ecf20Sopenharmony_cistatic unsigned int sgpio1_drv_pads[] = { SGPIO1 }; 8048c2ecf20Sopenharmony_cistatic unsigned int sgpio0_drv_pads[] = { SGPIO0 }; 8058c2ecf20Sopenharmony_cistatic unsigned int rmii_tx_d0_d1_drv_pads[] = { ETH_TXD0, ETH_TXD1 }; 8068c2ecf20Sopenharmony_cistatic unsigned int rmii_txen_rxer_drv_pads[] = { ETH_TXEN, ETH_RXER }; 8078c2ecf20Sopenharmony_cistatic unsigned int rmii_crs_dv_drv_pads[] = { ETH_CRS_DV }; 8088c2ecf20Sopenharmony_cistatic unsigned int rmii_rx_d1_d0_drv_pads[] = { ETH_RXD1, ETH_RXD0 }; 8098c2ecf20Sopenharmony_cistatic unsigned int rmii_ref_clk_drv_pads[] = { ETH_REF_CLK }; 8108c2ecf20Sopenharmony_cistatic unsigned int rmii_mdc_mdio_drv_pads[] = { ETH_MDC, ETH_MDIO }; 8118c2ecf20Sopenharmony_cistatic unsigned int sirq_0_1_drv_pads[] = { SIRQ0, SIRQ1 }; 8128c2ecf20Sopenharmony_cistatic unsigned int sirq2_drv_pads[] = { SIRQ2 }; 8138c2ecf20Sopenharmony_cistatic unsigned int i2s_d0_d1_drv_pads[] = { I2S_D0, I2S_D1 }; 8148c2ecf20Sopenharmony_cistatic unsigned int i2s_lr_m_clk0_drv_pads[] = { I2S_LRCLK0, I2S_MCLK0 }; 8158c2ecf20Sopenharmony_cistatic unsigned int i2s_blk1_mclk1_drv_pads[] = { I2S_BCLK0, I2S_BCLK1, 8168c2ecf20Sopenharmony_ci I2S_LRCLK1, I2S_MCLK1 }; 8178c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_out_drv_pads[] = { PCM1_IN, PCM1_CLK, 8188c2ecf20Sopenharmony_ci PCM1_SYNC, PCM1_OUT }; 8198c2ecf20Sopenharmony_ci/* drv1 */ 8208c2ecf20Sopenharmony_cistatic unsigned int lvds_oap_oan_drv_pads[] = { LVDS_OAP, LVDS_OAN }; 8218c2ecf20Sopenharmony_cistatic unsigned int lvds_oep_odn_drv_pads[] = { LVDS_OEP, LVDS_OEN, 8228c2ecf20Sopenharmony_ci LVDS_ODP, LVDS_ODN }; 8238c2ecf20Sopenharmony_cistatic unsigned int lvds_ocp_obn_drv_pads[] = { LVDS_OCP, LVDS_OCN, 8248c2ecf20Sopenharmony_ci LVDS_OBP, LVDS_OBN }; 8258c2ecf20Sopenharmony_cistatic unsigned int lvds_e_drv_pads[] = { LVDS_EEP, LVDS_EEN, 8268c2ecf20Sopenharmony_ci LVDS_EDP, LVDS_EDN, 8278c2ecf20Sopenharmony_ci LVDS_ECP, LVDS_ECN, 8288c2ecf20Sopenharmony_ci LVDS_EBP, LVDS_EBN }; 8298c2ecf20Sopenharmony_cistatic unsigned int sd0_d3_d0_drv_pads[] = { SD0_D3, SD0_D2, 8308c2ecf20Sopenharmony_ci SD0_D1, SD0_D0 }; 8318c2ecf20Sopenharmony_cistatic unsigned int sd1_d3_d0_drv_pads[] = { SD1_D3, SD1_D2, 8328c2ecf20Sopenharmony_ci SD1_D1, SD1_D0 }; 8338c2ecf20Sopenharmony_cistatic unsigned int sd0_sd1_cmd_clk_drv_pads[] = { SD0_CLK, SD0_CMD, 8348c2ecf20Sopenharmony_ci SD1_CLK, SD1_CMD }; 8358c2ecf20Sopenharmony_cistatic unsigned int spi0_sclk_mosi_drv_pads[] = { SPI0_SCLK, SPI0_MOSI }; 8368c2ecf20Sopenharmony_cistatic unsigned int spi0_ss_miso_drv_pads[] = { SPI0_SS, SPI0_MISO }; 8378c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_tx_drv_pads[] = { UART0_RX, UART0_TX }; 8388c2ecf20Sopenharmony_cistatic unsigned int uart4_rx_tx_drv_pads[] = { UART4_RX, UART4_TX }; 8398c2ecf20Sopenharmony_cistatic unsigned int uart2_drv_pads[] = { UART2_RX, UART2_TX, 8408c2ecf20Sopenharmony_ci UART2_RTSB, UART2_CTSB }; 8418c2ecf20Sopenharmony_cistatic unsigned int uart3_drv_pads[] = { UART3_RX, UART3_TX, 8428c2ecf20Sopenharmony_ci UART3_RTSB, UART3_CTSB }; 8438c2ecf20Sopenharmony_ci/* drv2 */ 8448c2ecf20Sopenharmony_cistatic unsigned int i2c0_drv_pads[] = { I2C0_SCLK, I2C0_SDATA }; 8458c2ecf20Sopenharmony_cistatic unsigned int i2c1_drv_pads[] = { I2C1_SCLK, I2C1_SDATA }; 8468c2ecf20Sopenharmony_cistatic unsigned int i2c2_drv_pads[] = { I2C2_SCLK, I2C2_SDATA }; 8478c2ecf20Sopenharmony_cistatic unsigned int sensor0_drv_pads[] = { SENSOR0_PCLK, 8488c2ecf20Sopenharmony_ci SENSOR0_CKOUT }; 8498c2ecf20Sopenharmony_ci/* SR group data */ 8508c2ecf20Sopenharmony_ci/* sr0 */ 8518c2ecf20Sopenharmony_cistatic unsigned int sgpio3_sr_pads[] = { SGPIO3 }; 8528c2ecf20Sopenharmony_cistatic unsigned int sgpio2_sr_pads[] = { SGPIO2 }; 8538c2ecf20Sopenharmony_cistatic unsigned int sgpio1_sr_pads[] = { SGPIO1 }; 8548c2ecf20Sopenharmony_cistatic unsigned int sgpio0_sr_pads[] = { SGPIO0 }; 8558c2ecf20Sopenharmony_cistatic unsigned int rmii_tx_d0_d1_sr_pads[] = { ETH_TXD0, ETH_TXD1 }; 8568c2ecf20Sopenharmony_cistatic unsigned int rmii_txen_rxer_sr_pads[] = { ETH_TXEN, ETH_RXER }; 8578c2ecf20Sopenharmony_cistatic unsigned int rmii_crs_dv_sr_pads[] = { ETH_CRS_DV }; 8588c2ecf20Sopenharmony_cistatic unsigned int rmii_rx_d1_d0_sr_pads[] = { ETH_RXD1, ETH_RXD0 }; 8598c2ecf20Sopenharmony_cistatic unsigned int rmii_ref_clk_sr_pads[] = { ETH_REF_CLK }; 8608c2ecf20Sopenharmony_cistatic unsigned int rmii_mdc_mdio_sr_pads[] = { ETH_MDC, ETH_MDIO }; 8618c2ecf20Sopenharmony_cistatic unsigned int sirq_0_1_sr_pads[] = { SIRQ0, SIRQ1 }; 8628c2ecf20Sopenharmony_cistatic unsigned int sirq2_sr_pads[] = { SIRQ2 }; 8638c2ecf20Sopenharmony_cistatic unsigned int i2s_do_d1_sr_pads[] = { I2S_D0, I2S_D1 }; 8648c2ecf20Sopenharmony_cistatic unsigned int i2s_lr_m_clk0_sr_pads[] = { I2S_LRCLK0, I2S_MCLK0 }; 8658c2ecf20Sopenharmony_cistatic unsigned int i2s_bclk0_mclk1_sr_pads[] = { I2S_BCLK0, I2S_BCLK1, 8668c2ecf20Sopenharmony_ci I2S_LRCLK1, I2S_MCLK1 }; 8678c2ecf20Sopenharmony_cistatic unsigned int pcm1_in_out_sr_pads[] = { PCM1_IN, PCM1_CLK, 8688c2ecf20Sopenharmony_ci PCM1_SYNC, PCM1_OUT }; 8698c2ecf20Sopenharmony_ci/* sr1 */ 8708c2ecf20Sopenharmony_cistatic unsigned int sd1_d3_d0_sr_pads[] = { SD1_D3, SD1_D2, 8718c2ecf20Sopenharmony_ci SD1_D1, SD1_D0 }; 8728c2ecf20Sopenharmony_cistatic unsigned int sd0_sd1_clk_cmd_sr_pads[] = { SD0_CLK, SD0_CMD, 8738c2ecf20Sopenharmony_ci SD1_CLK, SD1_CMD }; 8748c2ecf20Sopenharmony_cistatic unsigned int spi0_sclk_mosi_sr_pads[] = { SPI0_SCLK, SPI0_MOSI }; 8758c2ecf20Sopenharmony_cistatic unsigned int spi0_ss_miso_sr_pads[] = { SPI0_SS, SPI0_MISO }; 8768c2ecf20Sopenharmony_cistatic unsigned int uart0_rx_tx_sr_pads[] = { UART0_RX, UART0_TX }; 8778c2ecf20Sopenharmony_cistatic unsigned int uart4_rx_tx_sr_pads[] = { UART4_RX, UART4_TX }; 8788c2ecf20Sopenharmony_cistatic unsigned int uart2_sr_pads[] = { UART2_RX, UART2_TX, 8798c2ecf20Sopenharmony_ci UART2_RTSB, UART2_CTSB }; 8808c2ecf20Sopenharmony_cistatic unsigned int uart3_sr_pads[] = { UART3_RX, UART3_TX, 8818c2ecf20Sopenharmony_ci UART3_RTSB, UART3_CTSB }; 8828c2ecf20Sopenharmony_ci/* sr2 */ 8838c2ecf20Sopenharmony_cistatic unsigned int i2c0_sr_pads[] = { I2C0_SCLK, I2C0_SDATA }; 8848c2ecf20Sopenharmony_cistatic unsigned int i2c1_sr_pads[] = { I2C1_SCLK, I2C1_SDATA }; 8858c2ecf20Sopenharmony_cistatic unsigned int i2c2_sr_pads[] = { I2C2_SCLK, I2C2_SDATA }; 8868c2ecf20Sopenharmony_cistatic unsigned int sensor0_sr_pads[] = { SENSOR0_PCLK, 8878c2ecf20Sopenharmony_ci SENSOR0_CKOUT }; 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_ci 8908c2ecf20Sopenharmony_ci/* Pinctrl groups */ 8918c2ecf20Sopenharmony_cistatic const struct owl_pingroup s900_groups[] = { 8928c2ecf20Sopenharmony_ci MUX_PG(lvds_oxx_uart4_mfp, 0, 22, 1), 8938c2ecf20Sopenharmony_ci MUX_PG(rmii_mdc_mfp, 0, 20, 2), 8948c2ecf20Sopenharmony_ci MUX_PG(rmii_mdio_mfp, 0, 20, 2), 8958c2ecf20Sopenharmony_ci MUX_PG(sirq0_mfp, 0, 19, 1), 8968c2ecf20Sopenharmony_ci MUX_PG(sirq1_mfp, 0, 19, 1), 8978c2ecf20Sopenharmony_ci MUX_PG(rmii_txd0_mfp, 0, 16, 3), 8988c2ecf20Sopenharmony_ci MUX_PG(rmii_txd1_mfp, 0, 16, 3), 8998c2ecf20Sopenharmony_ci MUX_PG(rmii_txen_mfp, 0, 13, 3), 9008c2ecf20Sopenharmony_ci MUX_PG(rmii_rxer_mfp, 0, 13, 3), 9018c2ecf20Sopenharmony_ci MUX_PG(rmii_crs_dv_mfp, 0, 11, 2), 9028c2ecf20Sopenharmony_ci MUX_PG(rmii_rxd1_mfp, 0, 8, 3), 9038c2ecf20Sopenharmony_ci MUX_PG(rmii_rxd0_mfp, 0, 8, 3), 9048c2ecf20Sopenharmony_ci MUX_PG(rmii_ref_clk_mfp, 0, 6, 2), 9058c2ecf20Sopenharmony_ci MUX_PG(i2s_d0_mfp, 0, 5, 1), 9068c2ecf20Sopenharmony_ci MUX_PG(i2s_d1_mfp, 0, 5, 1), 9078c2ecf20Sopenharmony_ci MUX_PG(i2s_lr_m_clk0_mfp, 0, 3, 2), 9088c2ecf20Sopenharmony_ci MUX_PG(i2s_bclk0_mfp, 0, 2, 1), 9098c2ecf20Sopenharmony_ci MUX_PG(i2s_bclk1_mclk1_mfp, 0, 2, 1), 9108c2ecf20Sopenharmony_ci MUX_PG(pcm1_in_out_mfp, 0, 0, 2), 9118c2ecf20Sopenharmony_ci MUX_PG(pcm1_clk_mfp, 0, 0, 2), 9128c2ecf20Sopenharmony_ci MUX_PG(pcm1_sync_mfp, 0, 0, 2), 9138c2ecf20Sopenharmony_ci MUX_PG(eram_a5_mfp, 1, 29, 3), 9148c2ecf20Sopenharmony_ci MUX_PG(eram_a6_mfp, 1, 29, 3), 9158c2ecf20Sopenharmony_ci MUX_PG(eram_a7_mfp, 1, 29, 3), 9168c2ecf20Sopenharmony_ci MUX_PG(eram_a8_mfp, 1, 26, 3), 9178c2ecf20Sopenharmony_ci MUX_PG(eram_a9_mfp, 1, 26, 3), 9188c2ecf20Sopenharmony_ci MUX_PG(eram_a10_mfp, 1, 26, 3), 9198c2ecf20Sopenharmony_ci MUX_PG(eram_a11_mfp, 1, 23, 3), 9208c2ecf20Sopenharmony_ci MUX_PG(lvds_oep_odn_mfp, 1, 22, 1), 9218c2ecf20Sopenharmony_ci MUX_PG(lvds_ocp_obn_mfp, 1, 22, 1), 9228c2ecf20Sopenharmony_ci MUX_PG(lvds_oap_oan_mfp, 1, 22, 1), 9238c2ecf20Sopenharmony_ci MUX_PG(lvds_e_mfp, 1, 21, 1), 9248c2ecf20Sopenharmony_ci MUX_PG(spi0_sclk_mosi_mfp, 1, 4, 2), 9258c2ecf20Sopenharmony_ci MUX_PG(spi0_ss_mfp, 1, 1, 3), 9268c2ecf20Sopenharmony_ci MUX_PG(spi0_miso_mfp, 1, 1, 3), 9278c2ecf20Sopenharmony_ci MUX_PG(uart2_rtsb_mfp, 2, 23, 1), 9288c2ecf20Sopenharmony_ci MUX_PG(uart2_ctsb_mfp, 2, 22, 1), 9298c2ecf20Sopenharmony_ci MUX_PG(uart3_rtsb_mfp, 2, 21, 1), 9308c2ecf20Sopenharmony_ci MUX_PG(uart3_ctsb_mfp, 2, 20, 1), 9318c2ecf20Sopenharmony_ci MUX_PG(sd0_d0_mfp, 2, 17, 3), 9328c2ecf20Sopenharmony_ci MUX_PG(sd0_d1_mfp, 2, 14, 3), 9338c2ecf20Sopenharmony_ci MUX_PG(sd0_d2_d3_mfp, 2, 11, 3), 9348c2ecf20Sopenharmony_ci MUX_PG(sd1_d0_d3_mfp, 2, 9, 2), 9358c2ecf20Sopenharmony_ci MUX_PG(sd0_cmd_mfp, 2, 7, 2), 9368c2ecf20Sopenharmony_ci MUX_PG(sd0_clk_mfp, 2, 5, 2), 9378c2ecf20Sopenharmony_ci MUX_PG(sd1_cmd_clk_mfp, 2, 3, 2), 9388c2ecf20Sopenharmony_ci MUX_PG(uart0_rx_mfp, 2, 0, 3), 9398c2ecf20Sopenharmony_ci MUX_PG(nand0_d0_ceb3_mfp, 3, 27, 1), 9408c2ecf20Sopenharmony_ci MUX_PG(uart0_tx_mfp, 3, 19, 3), 9418c2ecf20Sopenharmony_ci MUX_PG(i2c0_mfp, 3, 16, 3), 9428c2ecf20Sopenharmony_ci MUX_PG(csi0_cn_cp_mfp, 3, 15, 1), 9438c2ecf20Sopenharmony_ci MUX_PG(csi0_dn0_dp3_mfp, 3, 14, 1), 9448c2ecf20Sopenharmony_ci MUX_PG(csi1_dn0_cp_mfp, 3, 13, 1), 9458c2ecf20Sopenharmony_ci MUX_PG(dsi_dp3_dn1_mfp, 3, 12, 1), 9468c2ecf20Sopenharmony_ci MUX_PG(dsi_cp_dn0_mfp, 3, 12, 1), 9478c2ecf20Sopenharmony_ci MUX_PG(dsi_dp2_dn2_mfp, 3, 12, 1), 9488c2ecf20Sopenharmony_ci MUX_PG(nand1_d0_ceb1_mfp, 3, 11, 1), 9498c2ecf20Sopenharmony_ci MUX_PG(nand1_ceb3_mfp, 3, 10, 1), 9508c2ecf20Sopenharmony_ci MUX_PG(nand1_ceb0_mfp, 3, 10, 1), 9518c2ecf20Sopenharmony_ci MUX_PG(csi1_dn0_dp0_mfp, 3, 9, 1), 9528c2ecf20Sopenharmony_ci MUX_PG(uart4_rx_tx_mfp, 3, 8, 1), 9538c2ecf20Sopenharmony_ci 9548c2ecf20Sopenharmony_ci DRV_PG(sgpio3_drv, 0, 30, 2), 9558c2ecf20Sopenharmony_ci DRV_PG(sgpio2_drv, 0, 28, 2), 9568c2ecf20Sopenharmony_ci DRV_PG(sgpio1_drv, 0, 26, 2), 9578c2ecf20Sopenharmony_ci DRV_PG(sgpio0_drv, 0, 24, 2), 9588c2ecf20Sopenharmony_ci DRV_PG(rmii_tx_d0_d1_drv, 0, 22, 2), 9598c2ecf20Sopenharmony_ci DRV_PG(rmii_txen_rxer_drv, 0, 20, 2), 9608c2ecf20Sopenharmony_ci DRV_PG(rmii_crs_dv_drv, 0, 18, 2), 9618c2ecf20Sopenharmony_ci DRV_PG(rmii_rx_d1_d0_drv, 0, 16, 2), 9628c2ecf20Sopenharmony_ci DRV_PG(rmii_ref_clk_drv, 0, 14, 2), 9638c2ecf20Sopenharmony_ci DRV_PG(rmii_mdc_mdio_drv, 0, 12, 2), 9648c2ecf20Sopenharmony_ci DRV_PG(sirq_0_1_drv, 0, 10, 2), 9658c2ecf20Sopenharmony_ci DRV_PG(sirq2_drv, 0, 8, 2), 9668c2ecf20Sopenharmony_ci DRV_PG(i2s_d0_d1_drv, 0, 6, 2), 9678c2ecf20Sopenharmony_ci DRV_PG(i2s_lr_m_clk0_drv, 0, 4, 2), 9688c2ecf20Sopenharmony_ci DRV_PG(i2s_blk1_mclk1_drv, 0, 2, 2), 9698c2ecf20Sopenharmony_ci DRV_PG(pcm1_in_out_drv, 0, 0, 2), 9708c2ecf20Sopenharmony_ci DRV_PG(lvds_oap_oan_drv, 1, 28, 2), 9718c2ecf20Sopenharmony_ci DRV_PG(lvds_oep_odn_drv, 1, 26, 2), 9728c2ecf20Sopenharmony_ci DRV_PG(lvds_ocp_obn_drv, 1, 24, 2), 9738c2ecf20Sopenharmony_ci DRV_PG(lvds_e_drv, 1, 22, 2), 9748c2ecf20Sopenharmony_ci DRV_PG(sd0_d3_d0_drv, 1, 20, 2), 9758c2ecf20Sopenharmony_ci DRV_PG(sd1_d3_d0_drv, 1, 18, 2), 9768c2ecf20Sopenharmony_ci DRV_PG(sd0_sd1_cmd_clk_drv, 1, 16, 2), 9778c2ecf20Sopenharmony_ci DRV_PG(spi0_sclk_mosi_drv, 1, 14, 2), 9788c2ecf20Sopenharmony_ci DRV_PG(spi0_ss_miso_drv, 1, 12, 2), 9798c2ecf20Sopenharmony_ci DRV_PG(uart0_rx_tx_drv, 1, 10, 2), 9808c2ecf20Sopenharmony_ci DRV_PG(uart4_rx_tx_drv, 1, 8, 2), 9818c2ecf20Sopenharmony_ci DRV_PG(uart2_drv, 1, 6, 2), 9828c2ecf20Sopenharmony_ci DRV_PG(uart3_drv, 1, 4, 2), 9838c2ecf20Sopenharmony_ci DRV_PG(i2c0_drv, 2, 30, 2), 9848c2ecf20Sopenharmony_ci DRV_PG(i2c1_drv, 2, 28, 2), 9858c2ecf20Sopenharmony_ci DRV_PG(i2c2_drv, 2, 26, 2), 9868c2ecf20Sopenharmony_ci DRV_PG(sensor0_drv, 2, 20, 2), 9878c2ecf20Sopenharmony_ci 9888c2ecf20Sopenharmony_ci SR_PG(sgpio3_sr, 0, 15, 1), 9898c2ecf20Sopenharmony_ci SR_PG(sgpio2_sr, 0, 14, 1), 9908c2ecf20Sopenharmony_ci SR_PG(sgpio1_sr, 0, 13, 1), 9918c2ecf20Sopenharmony_ci SR_PG(sgpio0_sr, 0, 12, 1), 9928c2ecf20Sopenharmony_ci SR_PG(rmii_tx_d0_d1_sr, 0, 11, 1), 9938c2ecf20Sopenharmony_ci SR_PG(rmii_txen_rxer_sr, 0, 10, 1), 9948c2ecf20Sopenharmony_ci SR_PG(rmii_crs_dv_sr, 0, 9, 1), 9958c2ecf20Sopenharmony_ci SR_PG(rmii_rx_d1_d0_sr, 0, 8, 1), 9968c2ecf20Sopenharmony_ci SR_PG(rmii_ref_clk_sr, 0, 7, 1), 9978c2ecf20Sopenharmony_ci SR_PG(rmii_mdc_mdio_sr, 0, 6, 1), 9988c2ecf20Sopenharmony_ci SR_PG(sirq_0_1_sr, 0, 5, 1), 9998c2ecf20Sopenharmony_ci SR_PG(sirq2_sr, 0, 4, 1), 10008c2ecf20Sopenharmony_ci SR_PG(i2s_do_d1_sr, 0, 3, 1), 10018c2ecf20Sopenharmony_ci SR_PG(i2s_lr_m_clk0_sr, 0, 2, 1), 10028c2ecf20Sopenharmony_ci SR_PG(i2s_bclk0_mclk1_sr, 0, 1, 1), 10038c2ecf20Sopenharmony_ci SR_PG(pcm1_in_out_sr, 0, 0, 1), 10048c2ecf20Sopenharmony_ci SR_PG(sd1_d3_d0_sr, 1, 25, 1), 10058c2ecf20Sopenharmony_ci SR_PG(sd0_sd1_clk_cmd_sr, 1, 24, 1), 10068c2ecf20Sopenharmony_ci SR_PG(spi0_sclk_mosi_sr, 1, 23, 1), 10078c2ecf20Sopenharmony_ci SR_PG(spi0_ss_miso_sr, 1, 22, 1), 10088c2ecf20Sopenharmony_ci SR_PG(uart0_rx_tx_sr, 1, 21, 1), 10098c2ecf20Sopenharmony_ci SR_PG(uart4_rx_tx_sr, 1, 20, 1), 10108c2ecf20Sopenharmony_ci SR_PG(uart2_sr, 1, 19, 1), 10118c2ecf20Sopenharmony_ci SR_PG(uart3_sr, 1, 18, 1), 10128c2ecf20Sopenharmony_ci SR_PG(i2c0_sr, 2, 31, 1), 10138c2ecf20Sopenharmony_ci SR_PG(i2c1_sr, 2, 30, 1), 10148c2ecf20Sopenharmony_ci SR_PG(i2c2_sr, 2, 29, 1), 10158c2ecf20Sopenharmony_ci SR_PG(sensor0_sr, 2, 25, 1) 10168c2ecf20Sopenharmony_ci}; 10178c2ecf20Sopenharmony_ci 10188c2ecf20Sopenharmony_cistatic const char * const eram_groups[] = { 10198c2ecf20Sopenharmony_ci "lvds_oxx_uart4_mfp", 10208c2ecf20Sopenharmony_ci "eram_a5_mfp", 10218c2ecf20Sopenharmony_ci "eram_a6_mfp", 10228c2ecf20Sopenharmony_ci "eram_a7_mfp", 10238c2ecf20Sopenharmony_ci "eram_a8_mfp", 10248c2ecf20Sopenharmony_ci "eram_a9_mfp", 10258c2ecf20Sopenharmony_ci "eram_a10_mfp", 10268c2ecf20Sopenharmony_ci "eram_a11_mfp", 10278c2ecf20Sopenharmony_ci "lvds_oap_oan_mfp", 10288c2ecf20Sopenharmony_ci "lvds_e_mfp", 10298c2ecf20Sopenharmony_ci "spi0_sclk_mosi_mfp", 10308c2ecf20Sopenharmony_ci "spi0_ss_mfp", 10318c2ecf20Sopenharmony_ci "spi0_miso_mfp", 10328c2ecf20Sopenharmony_ci "sd0_d0_mfp", 10338c2ecf20Sopenharmony_ci "sd0_d1_mfp", 10348c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 10358c2ecf20Sopenharmony_ci "sd1_d0_d3_mfp", 10368c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 10378c2ecf20Sopenharmony_ci "sd0_clk_mfp", 10388c2ecf20Sopenharmony_ci "sd1_cmd_clk_mfp", 10398c2ecf20Sopenharmony_ci}; 10408c2ecf20Sopenharmony_ci 10418c2ecf20Sopenharmony_cistatic const char * const eth_rmii_groups[] = { 10428c2ecf20Sopenharmony_ci "rmii_mdc_mfp", 10438c2ecf20Sopenharmony_ci "rmii_mdio_mfp", 10448c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 10458c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 10468c2ecf20Sopenharmony_ci "rmii_txen_mfp", 10478c2ecf20Sopenharmony_ci "rmii_rxer_mfp", 10488c2ecf20Sopenharmony_ci "rmii_crs_dv_mfp", 10498c2ecf20Sopenharmony_ci "rmii_rxd1_mfp", 10508c2ecf20Sopenharmony_ci "rmii_rxd0_mfp", 10518c2ecf20Sopenharmony_ci "rmii_ref_clk_mfp", 10528c2ecf20Sopenharmony_ci "eth_smi_dummy", 10538c2ecf20Sopenharmony_ci}; 10548c2ecf20Sopenharmony_ci 10558c2ecf20Sopenharmony_cistatic const char * const eth_smii_groups[] = { 10568c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 10578c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 10588c2ecf20Sopenharmony_ci "rmii_crs_dv_mfp", 10598c2ecf20Sopenharmony_ci "eth_smi_dummy", 10608c2ecf20Sopenharmony_ci}; 10618c2ecf20Sopenharmony_ci 10628c2ecf20Sopenharmony_cistatic const char * const spi0_groups[] = { 10638c2ecf20Sopenharmony_ci "spi0_sclk_mosi_mfp", 10648c2ecf20Sopenharmony_ci "spi0_ss_mfp", 10658c2ecf20Sopenharmony_ci "spi0_miso_mfp", 10668c2ecf20Sopenharmony_ci "spi0_sclk_mosi_mfp", 10678c2ecf20Sopenharmony_ci "spi0_ss_mfp", 10688c2ecf20Sopenharmony_ci "spi0_miso_mfp", 10698c2ecf20Sopenharmony_ci}; 10708c2ecf20Sopenharmony_ci 10718c2ecf20Sopenharmony_cistatic const char * const spi1_groups[] = { 10728c2ecf20Sopenharmony_ci "pcm1_in_out_mfp", 10738c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 10748c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 10758c2ecf20Sopenharmony_ci "uart0_rx_mfp", 10768c2ecf20Sopenharmony_ci "uart0_tx_mfp", 10778c2ecf20Sopenharmony_ci "i2c0_mfp", 10788c2ecf20Sopenharmony_ci}; 10798c2ecf20Sopenharmony_ci 10808c2ecf20Sopenharmony_cistatic const char * const spi2_groups[] = { 10818c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 10828c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 10838c2ecf20Sopenharmony_ci "rmii_crs_dv_mfp", 10848c2ecf20Sopenharmony_ci "rmii_ref_clk_mfp", 10858c2ecf20Sopenharmony_ci}; 10868c2ecf20Sopenharmony_ci 10878c2ecf20Sopenharmony_cistatic const char * const spi3_groups[] = { 10888c2ecf20Sopenharmony_ci "rmii_txen_mfp", 10898c2ecf20Sopenharmony_ci "rmii_rxer_mfp", 10908c2ecf20Sopenharmony_ci}; 10918c2ecf20Sopenharmony_ci 10928c2ecf20Sopenharmony_cistatic const char * const sens0_groups[] = { 10938c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 10948c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 10958c2ecf20Sopenharmony_ci "rmii_txen_mfp", 10968c2ecf20Sopenharmony_ci "rmii_rxer_mfp", 10978c2ecf20Sopenharmony_ci "rmii_rxd1_mfp", 10988c2ecf20Sopenharmony_ci "rmii_rxd0_mfp", 10998c2ecf20Sopenharmony_ci "eram_a5_mfp", 11008c2ecf20Sopenharmony_ci "eram_a6_mfp", 11018c2ecf20Sopenharmony_ci "eram_a7_mfp", 11028c2ecf20Sopenharmony_ci "eram_a8_mfp", 11038c2ecf20Sopenharmony_ci "eram_a9_mfp", 11048c2ecf20Sopenharmony_ci "csi0_cn_cp_mfp", 11058c2ecf20Sopenharmony_ci "csi0_dn0_dp3_mfp", 11068c2ecf20Sopenharmony_ci "csi1_dn0_cp_mfp", 11078c2ecf20Sopenharmony_ci "csi1_dn0_dp0_mfp", 11088c2ecf20Sopenharmony_ci}; 11098c2ecf20Sopenharmony_ci 11108c2ecf20Sopenharmony_cistatic const char * const uart0_groups[] = { 11118c2ecf20Sopenharmony_ci "uart2_rtsb_mfp", 11128c2ecf20Sopenharmony_ci "uart2_ctsb_mfp", 11138c2ecf20Sopenharmony_ci "uart0_rx_mfp", 11148c2ecf20Sopenharmony_ci "uart0_tx_mfp", 11158c2ecf20Sopenharmony_ci}; 11168c2ecf20Sopenharmony_ci 11178c2ecf20Sopenharmony_cistatic const char * const uart1_groups[] = { 11188c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 11198c2ecf20Sopenharmony_ci "i2c0_mfp", 11208c2ecf20Sopenharmony_ci}; 11218c2ecf20Sopenharmony_ci 11228c2ecf20Sopenharmony_cistatic const char * const uart2_groups[] = { 11238c2ecf20Sopenharmony_ci "rmii_mdc_mfp", 11248c2ecf20Sopenharmony_ci "rmii_mdio_mfp", 11258c2ecf20Sopenharmony_ci "rmii_txen_mfp", 11268c2ecf20Sopenharmony_ci "rmii_rxer_mfp", 11278c2ecf20Sopenharmony_ci "rmii_rxd1_mfp", 11288c2ecf20Sopenharmony_ci "rmii_rxd0_mfp", 11298c2ecf20Sopenharmony_ci "lvds_oep_odn_mfp", 11308c2ecf20Sopenharmony_ci "uart2_rtsb_mfp", 11318c2ecf20Sopenharmony_ci "uart2_ctsb_mfp", 11328c2ecf20Sopenharmony_ci "sd0_d0_mfp", 11338c2ecf20Sopenharmony_ci "sd0_d1_mfp", 11348c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 11358c2ecf20Sopenharmony_ci "uart0_rx_mfp", 11368c2ecf20Sopenharmony_ci "uart0_tx_mfp_pads", 11378c2ecf20Sopenharmony_ci "i2c0_mfp_pads", 11388c2ecf20Sopenharmony_ci "dsi_dp3_dn1_mfp", 11398c2ecf20Sopenharmony_ci "uart2_dummy" 11408c2ecf20Sopenharmony_ci}; 11418c2ecf20Sopenharmony_ci 11428c2ecf20Sopenharmony_cistatic const char * const uart3_groups[] = { 11438c2ecf20Sopenharmony_ci "uart3_rtsb_mfp", 11448c2ecf20Sopenharmony_ci "uart3_ctsb_mfp", 11458c2ecf20Sopenharmony_ci "uart3_dummy" 11468c2ecf20Sopenharmony_ci}; 11478c2ecf20Sopenharmony_ci 11488c2ecf20Sopenharmony_cistatic const char * const uart4_groups[] = { 11498c2ecf20Sopenharmony_ci "lvds_oxx_uart4_mfp", 11508c2ecf20Sopenharmony_ci "rmii_crs_dv_mfp", 11518c2ecf20Sopenharmony_ci "rmii_ref_clk_mfp", 11528c2ecf20Sopenharmony_ci "pcm1_in_out_mfp", 11538c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 11548c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 11558c2ecf20Sopenharmony_ci "eram_a5_mfp", 11568c2ecf20Sopenharmony_ci "eram_a6_mfp", 11578c2ecf20Sopenharmony_ci "dsi_dp2_dn2_mfp", 11588c2ecf20Sopenharmony_ci "uart4_rx_tx_mfp_pads", 11598c2ecf20Sopenharmony_ci "uart4_dummy" 11608c2ecf20Sopenharmony_ci}; 11618c2ecf20Sopenharmony_ci 11628c2ecf20Sopenharmony_cistatic const char * const uart5_groups[] = { 11638c2ecf20Sopenharmony_ci "rmii_rxd1_mfp", 11648c2ecf20Sopenharmony_ci "rmii_rxd0_mfp", 11658c2ecf20Sopenharmony_ci "eram_a9_mfp", 11668c2ecf20Sopenharmony_ci "eram_a11_mfp", 11678c2ecf20Sopenharmony_ci "uart3_rtsb_mfp", 11688c2ecf20Sopenharmony_ci "uart3_ctsb_mfp", 11698c2ecf20Sopenharmony_ci "sd0_d0_mfp", 11708c2ecf20Sopenharmony_ci "sd0_d1_mfp", 11718c2ecf20Sopenharmony_ci}; 11728c2ecf20Sopenharmony_ci 11738c2ecf20Sopenharmony_cistatic const char * const uart6_groups[] = { 11748c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 11758c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 11768c2ecf20Sopenharmony_ci}; 11778c2ecf20Sopenharmony_ci 11788c2ecf20Sopenharmony_cistatic const char * const i2s0_groups[] = { 11798c2ecf20Sopenharmony_ci "i2s_d0_mfp", 11808c2ecf20Sopenharmony_ci "i2s_lr_m_clk0_mfp", 11818c2ecf20Sopenharmony_ci "i2s_bclk0_mfp", 11828c2ecf20Sopenharmony_ci "i2s0_dummy", 11838c2ecf20Sopenharmony_ci}; 11848c2ecf20Sopenharmony_ci 11858c2ecf20Sopenharmony_cistatic const char * const i2s1_groups[] = { 11868c2ecf20Sopenharmony_ci "i2s_d1_mfp", 11878c2ecf20Sopenharmony_ci "i2s_bclk1_mclk1_mfp", 11888c2ecf20Sopenharmony_ci "spi0_ss_mfp", 11898c2ecf20Sopenharmony_ci "spi0_miso_mfp", 11908c2ecf20Sopenharmony_ci "uart0_rx_mfp", 11918c2ecf20Sopenharmony_ci "uart0_tx_mfp", 11928c2ecf20Sopenharmony_ci "i2s1_dummy", 11938c2ecf20Sopenharmony_ci}; 11948c2ecf20Sopenharmony_ci 11958c2ecf20Sopenharmony_cistatic const char * const pcm0_groups[] = { 11968c2ecf20Sopenharmony_ci "i2s_d0_mfp", 11978c2ecf20Sopenharmony_ci "i2s_d1_mfp", 11988c2ecf20Sopenharmony_ci "i2s_lr_m_clk0_mfp", 11998c2ecf20Sopenharmony_ci "i2s_bclk0_mfp", 12008c2ecf20Sopenharmony_ci "i2s_bclk1_mclk1_mfp", 12018c2ecf20Sopenharmony_ci "spi0_sclk_mosi_mfp", 12028c2ecf20Sopenharmony_ci "spi0_ss_mfp", 12038c2ecf20Sopenharmony_ci "spi0_miso_mfp", 12048c2ecf20Sopenharmony_ci}; 12058c2ecf20Sopenharmony_ci 12068c2ecf20Sopenharmony_cistatic const char * const pcm1_groups[] = { 12078c2ecf20Sopenharmony_ci "i2s_lr_m_clk0_mfp", 12088c2ecf20Sopenharmony_ci "pcm1_in_out_mfp", 12098c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 12108c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 12118c2ecf20Sopenharmony_ci "lvds_oep_odn_mfp", 12128c2ecf20Sopenharmony_ci "spi0_ss_mfp", 12138c2ecf20Sopenharmony_ci "spi0_miso_mfp", 12148c2ecf20Sopenharmony_ci "uart0_rx_mfp", 12158c2ecf20Sopenharmony_ci "uart0_tx_mfp", 12168c2ecf20Sopenharmony_ci "dsi_cp_dn0_mfp", 12178c2ecf20Sopenharmony_ci "pcm1_dummy", 12188c2ecf20Sopenharmony_ci}; 12198c2ecf20Sopenharmony_ci 12208c2ecf20Sopenharmony_cistatic const char * const jtag_groups[] = { 12218c2ecf20Sopenharmony_ci "eram_a5_mfp", 12228c2ecf20Sopenharmony_ci "eram_a6_mfp", 12238c2ecf20Sopenharmony_ci "eram_a7_mfp", 12248c2ecf20Sopenharmony_ci "eram_a8_mfp", 12258c2ecf20Sopenharmony_ci "eram_a10_mfp", 12268c2ecf20Sopenharmony_ci "eram_a10_mfp", 12278c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 12288c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 12298c2ecf20Sopenharmony_ci "sd0_clk_mfp", 12308c2ecf20Sopenharmony_ci}; 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_cistatic const char * const pwm0_groups[] = { 12338c2ecf20Sopenharmony_ci "sirq0_mfp", 12348c2ecf20Sopenharmony_ci "rmii_txd0_mfp", 12358c2ecf20Sopenharmony_ci "rmii_rxd1_mfp", 12368c2ecf20Sopenharmony_ci "eram_a5_mfp", 12378c2ecf20Sopenharmony_ci "nand1_ceb3_mfp", 12388c2ecf20Sopenharmony_ci}; 12398c2ecf20Sopenharmony_ci 12408c2ecf20Sopenharmony_cistatic const char * const pwm1_groups[] = { 12418c2ecf20Sopenharmony_ci "sirq1_mfp", 12428c2ecf20Sopenharmony_ci "rmii_txd1_mfp", 12438c2ecf20Sopenharmony_ci "rmii_rxd0_mfp", 12448c2ecf20Sopenharmony_ci "eram_a6_mfp", 12458c2ecf20Sopenharmony_ci "eram_a8_mfp", 12468c2ecf20Sopenharmony_ci "nand1_ceb0_mfp", 12478c2ecf20Sopenharmony_ci}; 12488c2ecf20Sopenharmony_ci 12498c2ecf20Sopenharmony_cistatic const char * const pwm2_groups[] = { 12508c2ecf20Sopenharmony_ci "rmii_mdc_mfp", 12518c2ecf20Sopenharmony_ci "rmii_txen_mfp", 12528c2ecf20Sopenharmony_ci "eram_a9_mfp", 12538c2ecf20Sopenharmony_ci "eram_a11_mfp", 12548c2ecf20Sopenharmony_ci}; 12558c2ecf20Sopenharmony_ci 12568c2ecf20Sopenharmony_cistatic const char * const pwm3_groups[] = { 12578c2ecf20Sopenharmony_ci "rmii_mdio_mfp", 12588c2ecf20Sopenharmony_ci "rmii_rxer_mfp", 12598c2ecf20Sopenharmony_ci "eram_a10_mfp", 12608c2ecf20Sopenharmony_ci}; 12618c2ecf20Sopenharmony_ci 12628c2ecf20Sopenharmony_cistatic const char * const pwm4_groups[] = { 12638c2ecf20Sopenharmony_ci "pcm1_clk_mfp", 12648c2ecf20Sopenharmony_ci "spi0_ss_mfp", 12658c2ecf20Sopenharmony_ci}; 12668c2ecf20Sopenharmony_ci 12678c2ecf20Sopenharmony_cistatic const char * const pwm5_groups[] = { 12688c2ecf20Sopenharmony_ci "pcm1_sync_mfp", 12698c2ecf20Sopenharmony_ci "spi0_miso_mfp", 12708c2ecf20Sopenharmony_ci}; 12718c2ecf20Sopenharmony_ci 12728c2ecf20Sopenharmony_cistatic const char * const sd0_groups[] = { 12738c2ecf20Sopenharmony_ci "sd0_d0_mfp", 12748c2ecf20Sopenharmony_ci "sd0_d1_mfp", 12758c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 12768c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 12778c2ecf20Sopenharmony_ci "sd0_clk_mfp", 12788c2ecf20Sopenharmony_ci}; 12798c2ecf20Sopenharmony_ci 12808c2ecf20Sopenharmony_cistatic const char * const sd1_groups[] = { 12818c2ecf20Sopenharmony_ci "sd1_d0_d3_mfp", 12828c2ecf20Sopenharmony_ci "sd1_cmd_clk_mfp", 12838c2ecf20Sopenharmony_ci "sd1_dummy", 12848c2ecf20Sopenharmony_ci}; 12858c2ecf20Sopenharmony_ci 12868c2ecf20Sopenharmony_cistatic const char * const sd2_groups[] = { 12878c2ecf20Sopenharmony_ci "nand0_d0_ceb3_mfp", 12888c2ecf20Sopenharmony_ci}; 12898c2ecf20Sopenharmony_ci 12908c2ecf20Sopenharmony_cistatic const char * const sd3_groups[] = { 12918c2ecf20Sopenharmony_ci "nand1_d0_ceb1_mfp", 12928c2ecf20Sopenharmony_ci}; 12938c2ecf20Sopenharmony_ci 12948c2ecf20Sopenharmony_cistatic const char * const i2c0_groups[] = { 12958c2ecf20Sopenharmony_ci "i2c0_mfp", 12968c2ecf20Sopenharmony_ci}; 12978c2ecf20Sopenharmony_ci 12988c2ecf20Sopenharmony_cistatic const char * const i2c1_groups[] = { 12998c2ecf20Sopenharmony_ci "i2c0_mfp", 13008c2ecf20Sopenharmony_ci "i2c1_dummy" 13018c2ecf20Sopenharmony_ci}; 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_cistatic const char * const i2c2_groups[] = { 13048c2ecf20Sopenharmony_ci "i2c2_dummy" 13058c2ecf20Sopenharmony_ci}; 13068c2ecf20Sopenharmony_ci 13078c2ecf20Sopenharmony_cistatic const char * const i2c3_groups[] = { 13088c2ecf20Sopenharmony_ci "pcm1_in_out_mfp", 13098c2ecf20Sopenharmony_ci "spi0_sclk_mosi_mfp", 13108c2ecf20Sopenharmony_ci}; 13118c2ecf20Sopenharmony_ci 13128c2ecf20Sopenharmony_cistatic const char * const i2c4_groups[] = { 13138c2ecf20Sopenharmony_ci "uart4_rx_tx_mfp", 13148c2ecf20Sopenharmony_ci}; 13158c2ecf20Sopenharmony_ci 13168c2ecf20Sopenharmony_cistatic const char * const i2c5_groups[] = { 13178c2ecf20Sopenharmony_ci "uart0_rx_mfp", 13188c2ecf20Sopenharmony_ci "uart0_tx_mfp", 13198c2ecf20Sopenharmony_ci}; 13208c2ecf20Sopenharmony_ci 13218c2ecf20Sopenharmony_ci 13228c2ecf20Sopenharmony_cistatic const char * const lvds_groups[] = { 13238c2ecf20Sopenharmony_ci "lvds_oep_odn_mfp", 13248c2ecf20Sopenharmony_ci "lvds_ocp_obn_mfp", 13258c2ecf20Sopenharmony_ci "lvds_oap_oan_mfp", 13268c2ecf20Sopenharmony_ci "lvds_e_mfp", 13278c2ecf20Sopenharmony_ci}; 13288c2ecf20Sopenharmony_ci 13298c2ecf20Sopenharmony_cistatic const char * const usb20_groups[] = { 13308c2ecf20Sopenharmony_ci "eram_a9_mfp", 13318c2ecf20Sopenharmony_ci}; 13328c2ecf20Sopenharmony_ci 13338c2ecf20Sopenharmony_cistatic const char * const usb30_groups[] = { 13348c2ecf20Sopenharmony_ci "eram_a10_mfp", 13358c2ecf20Sopenharmony_ci}; 13368c2ecf20Sopenharmony_ci 13378c2ecf20Sopenharmony_cistatic const char * const gpu_groups[] = { 13388c2ecf20Sopenharmony_ci "sd0_d0_mfp", 13398c2ecf20Sopenharmony_ci "sd0_d1_mfp", 13408c2ecf20Sopenharmony_ci "sd0_d2_d3_mfp", 13418c2ecf20Sopenharmony_ci "sd0_cmd_mfp", 13428c2ecf20Sopenharmony_ci "sd0_clk_mfp", 13438c2ecf20Sopenharmony_ci}; 13448c2ecf20Sopenharmony_ci 13458c2ecf20Sopenharmony_cistatic const char * const mipi_csi0_groups[] = { 13468c2ecf20Sopenharmony_ci "csi0_dn0_dp3_mfp", 13478c2ecf20Sopenharmony_ci}; 13488c2ecf20Sopenharmony_ci 13498c2ecf20Sopenharmony_cistatic const char * const mipi_csi1_groups[] = { 13508c2ecf20Sopenharmony_ci "csi1_dn0_cp_mfp", 13518c2ecf20Sopenharmony_ci}; 13528c2ecf20Sopenharmony_ci 13538c2ecf20Sopenharmony_cistatic const char * const mipi_dsi_groups[] = { 13548c2ecf20Sopenharmony_ci "dsi_dp3_dn1_mfp", 13558c2ecf20Sopenharmony_ci "dsi_cp_dn0_mfp", 13568c2ecf20Sopenharmony_ci "dsi_dp2_dn2_mfp", 13578c2ecf20Sopenharmony_ci "mipi_dsi_dummy", 13588c2ecf20Sopenharmony_ci}; 13598c2ecf20Sopenharmony_ci 13608c2ecf20Sopenharmony_cistatic const char * const nand0_groups[] = { 13618c2ecf20Sopenharmony_ci "nand0_d0_ceb3_mfp", 13628c2ecf20Sopenharmony_ci "nand0_dummy", 13638c2ecf20Sopenharmony_ci}; 13648c2ecf20Sopenharmony_ci 13658c2ecf20Sopenharmony_cistatic const char * const nand1_groups[] = { 13668c2ecf20Sopenharmony_ci "nand1_d0_ceb1_mfp", 13678c2ecf20Sopenharmony_ci "nand1_ceb3_mfp", 13688c2ecf20Sopenharmony_ci "nand1_ceb0_mfp", 13698c2ecf20Sopenharmony_ci "nand1_dummy", 13708c2ecf20Sopenharmony_ci}; 13718c2ecf20Sopenharmony_ci 13728c2ecf20Sopenharmony_cistatic const char * const spdif_groups[] = { 13738c2ecf20Sopenharmony_ci "uart0_tx_mfp", 13748c2ecf20Sopenharmony_ci}; 13758c2ecf20Sopenharmony_ci 13768c2ecf20Sopenharmony_cistatic const char * const sirq0_groups[] = { 13778c2ecf20Sopenharmony_ci "sirq0_mfp", 13788c2ecf20Sopenharmony_ci "sirq0_dummy", 13798c2ecf20Sopenharmony_ci}; 13808c2ecf20Sopenharmony_ci 13818c2ecf20Sopenharmony_cistatic const char * const sirq1_groups[] = { 13828c2ecf20Sopenharmony_ci "sirq1_mfp", 13838c2ecf20Sopenharmony_ci "sirq1_dummy", 13848c2ecf20Sopenharmony_ci}; 13858c2ecf20Sopenharmony_ci 13868c2ecf20Sopenharmony_cistatic const char * const sirq2_groups[] = { 13878c2ecf20Sopenharmony_ci "sirq2_dummy", 13888c2ecf20Sopenharmony_ci}; 13898c2ecf20Sopenharmony_ci 13908c2ecf20Sopenharmony_cistatic const struct owl_pinmux_func s900_functions[] = { 13918c2ecf20Sopenharmony_ci [S900_MUX_ERAM] = FUNCTION(eram), 13928c2ecf20Sopenharmony_ci [S900_MUX_ETH_RMII] = FUNCTION(eth_rmii), 13938c2ecf20Sopenharmony_ci [S900_MUX_ETH_SMII] = FUNCTION(eth_smii), 13948c2ecf20Sopenharmony_ci [S900_MUX_SPI0] = FUNCTION(spi0), 13958c2ecf20Sopenharmony_ci [S900_MUX_SPI1] = FUNCTION(spi1), 13968c2ecf20Sopenharmony_ci [S900_MUX_SPI2] = FUNCTION(spi2), 13978c2ecf20Sopenharmony_ci [S900_MUX_SPI3] = FUNCTION(spi3), 13988c2ecf20Sopenharmony_ci [S900_MUX_SENS0] = FUNCTION(sens0), 13998c2ecf20Sopenharmony_ci [S900_MUX_UART0] = FUNCTION(uart0), 14008c2ecf20Sopenharmony_ci [S900_MUX_UART1] = FUNCTION(uart1), 14018c2ecf20Sopenharmony_ci [S900_MUX_UART2] = FUNCTION(uart2), 14028c2ecf20Sopenharmony_ci [S900_MUX_UART3] = FUNCTION(uart3), 14038c2ecf20Sopenharmony_ci [S900_MUX_UART4] = FUNCTION(uart4), 14048c2ecf20Sopenharmony_ci [S900_MUX_UART5] = FUNCTION(uart5), 14058c2ecf20Sopenharmony_ci [S900_MUX_UART6] = FUNCTION(uart6), 14068c2ecf20Sopenharmony_ci [S900_MUX_I2S0] = FUNCTION(i2s0), 14078c2ecf20Sopenharmony_ci [S900_MUX_I2S1] = FUNCTION(i2s1), 14088c2ecf20Sopenharmony_ci [S900_MUX_PCM0] = FUNCTION(pcm0), 14098c2ecf20Sopenharmony_ci [S900_MUX_PCM1] = FUNCTION(pcm1), 14108c2ecf20Sopenharmony_ci [S900_MUX_JTAG] = FUNCTION(jtag), 14118c2ecf20Sopenharmony_ci [S900_MUX_PWM0] = FUNCTION(pwm0), 14128c2ecf20Sopenharmony_ci [S900_MUX_PWM1] = FUNCTION(pwm1), 14138c2ecf20Sopenharmony_ci [S900_MUX_PWM2] = FUNCTION(pwm2), 14148c2ecf20Sopenharmony_ci [S900_MUX_PWM3] = FUNCTION(pwm3), 14158c2ecf20Sopenharmony_ci [S900_MUX_PWM4] = FUNCTION(pwm4), 14168c2ecf20Sopenharmony_ci [S900_MUX_PWM5] = FUNCTION(pwm5), 14178c2ecf20Sopenharmony_ci [S900_MUX_SD0] = FUNCTION(sd0), 14188c2ecf20Sopenharmony_ci [S900_MUX_SD1] = FUNCTION(sd1), 14198c2ecf20Sopenharmony_ci [S900_MUX_SD2] = FUNCTION(sd2), 14208c2ecf20Sopenharmony_ci [S900_MUX_SD3] = FUNCTION(sd3), 14218c2ecf20Sopenharmony_ci [S900_MUX_I2C0] = FUNCTION(i2c0), 14228c2ecf20Sopenharmony_ci [S900_MUX_I2C1] = FUNCTION(i2c1), 14238c2ecf20Sopenharmony_ci [S900_MUX_I2C2] = FUNCTION(i2c2), 14248c2ecf20Sopenharmony_ci [S900_MUX_I2C3] = FUNCTION(i2c3), 14258c2ecf20Sopenharmony_ci [S900_MUX_I2C4] = FUNCTION(i2c4), 14268c2ecf20Sopenharmony_ci [S900_MUX_I2C5] = FUNCTION(i2c5), 14278c2ecf20Sopenharmony_ci [S900_MUX_LVDS] = FUNCTION(lvds), 14288c2ecf20Sopenharmony_ci [S900_MUX_USB30] = FUNCTION(usb30), 14298c2ecf20Sopenharmony_ci [S900_MUX_USB20] = FUNCTION(usb20), 14308c2ecf20Sopenharmony_ci [S900_MUX_GPU] = FUNCTION(gpu), 14318c2ecf20Sopenharmony_ci [S900_MUX_MIPI_CSI0] = FUNCTION(mipi_csi0), 14328c2ecf20Sopenharmony_ci [S900_MUX_MIPI_CSI1] = FUNCTION(mipi_csi1), 14338c2ecf20Sopenharmony_ci [S900_MUX_MIPI_DSI] = FUNCTION(mipi_dsi), 14348c2ecf20Sopenharmony_ci [S900_MUX_NAND0] = FUNCTION(nand0), 14358c2ecf20Sopenharmony_ci [S900_MUX_NAND1] = FUNCTION(nand1), 14368c2ecf20Sopenharmony_ci [S900_MUX_SPDIF] = FUNCTION(spdif), 14378c2ecf20Sopenharmony_ci [S900_MUX_SIRQ0] = FUNCTION(sirq0), 14388c2ecf20Sopenharmony_ci [S900_MUX_SIRQ1] = FUNCTION(sirq1), 14398c2ecf20Sopenharmony_ci [S900_MUX_SIRQ2] = FUNCTION(sirq2) 14408c2ecf20Sopenharmony_ci}; 14418c2ecf20Sopenharmony_ci 14428c2ecf20Sopenharmony_ci/* PAD_PULLCTL0 */ 14438c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ETH_RXER, 0, 18, 2); 14448c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ0, 0, 16, 2); 14458c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ1, 0, 14, 2); 14468c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SIRQ2, 0, 12, 2); 14478c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SDATA, 0, 10, 2); 14488c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C0_SCLK, 0, 8, 2); 14498c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ERAM_A5, 0, 6, 2); 14508c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ERAM_A6, 0, 4, 2); 14518c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ERAM_A7, 0, 2, 2); 14528c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(ERAM_A10, 0, 0, 2); 14538c2ecf20Sopenharmony_ci 14548c2ecf20Sopenharmony_ci/* PAD_PULLCTL1 */ 14558c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_IN, 1, 30, 2); 14568c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(PCM1_OUT, 1, 28, 2); 14578c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D0, 1, 26, 2); 14588c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D1, 1, 24, 2); 14598c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D2, 1, 22, 2); 14608c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_D3, 1, 20, 2); 14618c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CMD, 1, 18, 2); 14628c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD0_CLK, 1, 16, 2); 14638c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD1_CMD, 1, 14, 2); 14648c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD1_D0, 1, 12, 2); 14658c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD1_D1, 1, 10, 2); 14668c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD1_D2, 1, 8, 2); 14678c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SD1_D3, 1, 6, 2); 14688c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_RX, 1, 4, 2); 14698c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART0_TX, 1, 2, 2); 14708c2ecf20Sopenharmony_ci 14718c2ecf20Sopenharmony_ci/* PAD_PULLCTL2 */ 14728c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SDATA, 2, 26, 2); 14738c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C2_SCLK, 2, 24, 2); 14748c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_SCLK, 2, 22, 2); 14758c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SPI0_MOSI, 2, 20, 2); 14768c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SDATA, 2, 18, 2); 14778c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(I2C1_SCLK, 2, 16, 2); 14788c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D0, 2, 15, 1); 14798c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D1, 2, 15, 1); 14808c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D2, 2, 15, 1); 14818c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D3, 2, 15, 1); 14828c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D4, 2, 15, 1); 14838c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D5, 2, 15, 1); 14848c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D6, 2, 15, 1); 14858c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_D7, 2, 15, 1); 14868c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_DQSN, 2, 14, 1); 14878c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND0_DQS, 2, 13, 1); 14888c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D0, 2, 12, 1); 14898c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D1, 2, 12, 1); 14908c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D2, 2, 12, 1); 14918c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D3, 2, 12, 1); 14928c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D4, 2, 12, 1); 14938c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D5, 2, 12, 1); 14948c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D6, 2, 12, 1); 14958c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_D7, 2, 12, 1); 14968c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_DQSN, 2, 11, 1); 14978c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(NAND1_DQS, 2, 10, 1); 14988c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SGPIO2, 2, 8, 2); 14998c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(SGPIO3, 2, 6, 2); 15008c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART4_RX, 2, 4, 2); 15018c2ecf20Sopenharmony_cistatic PAD_PULLCTL_CONF(UART4_TX, 2, 2, 2); 15028c2ecf20Sopenharmony_ci 15038c2ecf20Sopenharmony_ci/* PAD_ST0 */ 15048c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C0_SDATA, 0, 30, 1); 15058c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART0_RX, 0, 29, 1); 15068c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_MDC, 0, 28, 1); 15078c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK1, 0, 23, 1); 15088c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_REF_CLK, 0, 22, 1); 15098c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXEN, 0, 21, 1); 15108c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD0, 0, 20, 1); 15118c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK1, 0, 19, 1); 15128c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SGPIO2, 0, 18, 1); 15138c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SGPIO3, 0, 17, 1); 15148c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART4_TX, 0, 16, 1); 15158c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_D1, 0, 15, 1); 15168c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART0_TX, 0, 14, 1); 15178c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_SCLK, 0, 13, 1); 15188c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SD0_CLK, 0, 12, 1); 15198c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ERAM_A5, 0, 11, 1); 15208c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C0_SCLK, 0, 7, 1); 15218c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ERAM_A9, 0, 6, 1); 15228c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OEP, 0, 5, 1); 15238c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_ODN, 0, 4, 1); 15248c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OAP, 0, 3, 1); 15258c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_BCLK1, 0, 2, 1); 15268c2ecf20Sopenharmony_ci 15278c2ecf20Sopenharmony_ci/* PAD_ST1 */ 15288c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_LRCLK0, 1, 29, 1); 15298c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART4_RX, 1, 28, 1); 15308c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_CTSB, 1, 27, 1); 15318c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_RTSB, 1, 26, 1); 15328c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART3_RX, 1, 25, 1); 15338c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_RTSB, 1, 24, 1); 15348c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_CTSB, 1, 23, 1); 15358c2ecf20Sopenharmony_cistatic PAD_ST_CONF(UART2_RX, 1, 22, 1); 15368c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD0, 1, 21, 1); 15378c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXD1, 1, 20, 1); 15388c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_CRS_DV, 1, 19, 1); 15398c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_RXER, 1, 18, 1); 15408c2ecf20Sopenharmony_cistatic PAD_ST_CONF(ETH_TXD1, 1, 17, 1); 15418c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OCP, 1, 16, 1); 15428c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OBP, 1, 15, 1); 15438c2ecf20Sopenharmony_cistatic PAD_ST_CONF(LVDS_OBN, 1, 14, 1); 15448c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_OUT, 1, 12, 1); 15458c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_CLK, 1, 11, 1); 15468c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_IN, 1, 10, 1); 15478c2ecf20Sopenharmony_cistatic PAD_ST_CONF(PCM1_SYNC, 1, 9, 1); 15488c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C1_SCLK, 1, 8, 1); 15498c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C1_SDATA, 1, 7, 1); 15508c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C2_SCLK, 1, 6, 1); 15518c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2C2_SDATA, 1, 5, 1); 15528c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_MOSI, 1, 4, 1); 15538c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_MISO, 1, 3, 1); 15548c2ecf20Sopenharmony_cistatic PAD_ST_CONF(SPI0_SS, 1, 2, 1); 15558c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_BCLK0, 1, 1, 1); 15568c2ecf20Sopenharmony_cistatic PAD_ST_CONF(I2S_MCLK0, 1, 0, 1); 15578c2ecf20Sopenharmony_ci 15588c2ecf20Sopenharmony_ci/* Pad info table */ 15598c2ecf20Sopenharmony_cistatic const struct owl_padinfo s900_padinfo[NUM_PADS] = { 15608c2ecf20Sopenharmony_ci [ETH_TXD0] = PAD_INFO_ST(ETH_TXD0), 15618c2ecf20Sopenharmony_ci [ETH_TXD1] = PAD_INFO_ST(ETH_TXD1), 15628c2ecf20Sopenharmony_ci [ETH_TXEN] = PAD_INFO_ST(ETH_TXEN), 15638c2ecf20Sopenharmony_ci [ETH_RXER] = PAD_INFO_PULLCTL_ST(ETH_RXER), 15648c2ecf20Sopenharmony_ci [ETH_CRS_DV] = PAD_INFO_ST(ETH_CRS_DV), 15658c2ecf20Sopenharmony_ci [ETH_RXD1] = PAD_INFO_ST(ETH_RXD1), 15668c2ecf20Sopenharmony_ci [ETH_RXD0] = PAD_INFO_ST(ETH_RXD0), 15678c2ecf20Sopenharmony_ci [ETH_REF_CLK] = PAD_INFO_ST(ETH_REF_CLK), 15688c2ecf20Sopenharmony_ci [ETH_MDC] = PAD_INFO_ST(ETH_MDC), 15698c2ecf20Sopenharmony_ci [ETH_MDIO] = PAD_INFO(ETH_MDIO), 15708c2ecf20Sopenharmony_ci [SIRQ0] = PAD_INFO_PULLCTL(SIRQ0), 15718c2ecf20Sopenharmony_ci [SIRQ1] = PAD_INFO_PULLCTL(SIRQ1), 15728c2ecf20Sopenharmony_ci [SIRQ2] = PAD_INFO_PULLCTL(SIRQ2), 15738c2ecf20Sopenharmony_ci [I2S_D0] = PAD_INFO(I2S_D0), 15748c2ecf20Sopenharmony_ci [I2S_BCLK0] = PAD_INFO_ST(I2S_BCLK0), 15758c2ecf20Sopenharmony_ci [I2S_LRCLK0] = PAD_INFO_ST(I2S_LRCLK0), 15768c2ecf20Sopenharmony_ci [I2S_MCLK0] = PAD_INFO_ST(I2S_MCLK0), 15778c2ecf20Sopenharmony_ci [I2S_D1] = PAD_INFO_ST(I2S_D1), 15788c2ecf20Sopenharmony_ci [I2S_BCLK1] = PAD_INFO_ST(I2S_BCLK1), 15798c2ecf20Sopenharmony_ci [I2S_LRCLK1] = PAD_INFO_ST(I2S_LRCLK1), 15808c2ecf20Sopenharmony_ci [I2S_MCLK1] = PAD_INFO_ST(I2S_MCLK1), 15818c2ecf20Sopenharmony_ci [PCM1_IN] = PAD_INFO_PULLCTL_ST(PCM1_IN), 15828c2ecf20Sopenharmony_ci [PCM1_CLK] = PAD_INFO_ST(PCM1_CLK), 15838c2ecf20Sopenharmony_ci [PCM1_SYNC] = PAD_INFO_ST(PCM1_SYNC), 15848c2ecf20Sopenharmony_ci [PCM1_OUT] = PAD_INFO_PULLCTL_ST(PCM1_OUT), 15858c2ecf20Sopenharmony_ci [ERAM_A5] = PAD_INFO_PULLCTL_ST(ERAM_A5), 15868c2ecf20Sopenharmony_ci [ERAM_A6] = PAD_INFO_PULLCTL(ERAM_A6), 15878c2ecf20Sopenharmony_ci [ERAM_A7] = PAD_INFO_PULLCTL(ERAM_A7), 15888c2ecf20Sopenharmony_ci [ERAM_A8] = PAD_INFO(ERAM_A8), 15898c2ecf20Sopenharmony_ci [ERAM_A9] = PAD_INFO_ST(ERAM_A9), 15908c2ecf20Sopenharmony_ci [ERAM_A10] = PAD_INFO_PULLCTL(ERAM_A10), 15918c2ecf20Sopenharmony_ci [ERAM_A11] = PAD_INFO(ERAM_A11), 15928c2ecf20Sopenharmony_ci [LVDS_OEP] = PAD_INFO_ST(LVDS_OEP), 15938c2ecf20Sopenharmony_ci [LVDS_OEN] = PAD_INFO(LVDS_OEN), 15948c2ecf20Sopenharmony_ci [LVDS_ODP] = PAD_INFO(LVDS_ODP), 15958c2ecf20Sopenharmony_ci [LVDS_ODN] = PAD_INFO_ST(LVDS_ODN), 15968c2ecf20Sopenharmony_ci [LVDS_OCP] = PAD_INFO_ST(LVDS_OCP), 15978c2ecf20Sopenharmony_ci [LVDS_OCN] = PAD_INFO(LVDS_OCN), 15988c2ecf20Sopenharmony_ci [LVDS_OBP] = PAD_INFO_ST(LVDS_OBP), 15998c2ecf20Sopenharmony_ci [LVDS_OBN] = PAD_INFO_ST(LVDS_OBN), 16008c2ecf20Sopenharmony_ci [LVDS_OAP] = PAD_INFO_ST(LVDS_OAP), 16018c2ecf20Sopenharmony_ci [LVDS_OAN] = PAD_INFO(LVDS_OAN), 16028c2ecf20Sopenharmony_ci [LVDS_EEP] = PAD_INFO(LVDS_EEP), 16038c2ecf20Sopenharmony_ci [LVDS_EEN] = PAD_INFO(LVDS_EEN), 16048c2ecf20Sopenharmony_ci [LVDS_EDP] = PAD_INFO(LVDS_EDP), 16058c2ecf20Sopenharmony_ci [LVDS_EDN] = PAD_INFO(LVDS_EDN), 16068c2ecf20Sopenharmony_ci [LVDS_ECP] = PAD_INFO(LVDS_ECP), 16078c2ecf20Sopenharmony_ci [LVDS_ECN] = PAD_INFO(LVDS_ECN), 16088c2ecf20Sopenharmony_ci [LVDS_EBP] = PAD_INFO(LVDS_EBP), 16098c2ecf20Sopenharmony_ci [LVDS_EBN] = PAD_INFO(LVDS_EBN), 16108c2ecf20Sopenharmony_ci [LVDS_EAP] = PAD_INFO(LVDS_EAP), 16118c2ecf20Sopenharmony_ci [LVDS_EAN] = PAD_INFO(LVDS_EAN), 16128c2ecf20Sopenharmony_ci [SD0_D0] = PAD_INFO_PULLCTL(SD0_D0), 16138c2ecf20Sopenharmony_ci [SD0_D1] = PAD_INFO_PULLCTL(SD0_D1), 16148c2ecf20Sopenharmony_ci [SD0_D2] = PAD_INFO_PULLCTL(SD0_D2), 16158c2ecf20Sopenharmony_ci [SD0_D3] = PAD_INFO_PULLCTL(SD0_D3), 16168c2ecf20Sopenharmony_ci [SD1_D0] = PAD_INFO_PULLCTL(SD1_D0), 16178c2ecf20Sopenharmony_ci [SD1_D1] = PAD_INFO_PULLCTL(SD1_D1), 16188c2ecf20Sopenharmony_ci [SD1_D2] = PAD_INFO_PULLCTL(SD1_D2), 16198c2ecf20Sopenharmony_ci [SD1_D3] = PAD_INFO_PULLCTL(SD1_D3), 16208c2ecf20Sopenharmony_ci [SD0_CMD] = PAD_INFO_PULLCTL(SD0_CMD), 16218c2ecf20Sopenharmony_ci [SD0_CLK] = PAD_INFO_PULLCTL_ST(SD0_CLK), 16228c2ecf20Sopenharmony_ci [SD1_CMD] = PAD_INFO_PULLCTL(SD1_CMD), 16238c2ecf20Sopenharmony_ci [SD1_CLK] = PAD_INFO(SD1_CLK), 16248c2ecf20Sopenharmony_ci [SPI0_SCLK] = PAD_INFO_PULLCTL_ST(SPI0_SCLK), 16258c2ecf20Sopenharmony_ci [SPI0_SS] = PAD_INFO_ST(SPI0_SS), 16268c2ecf20Sopenharmony_ci [SPI0_MISO] = PAD_INFO_ST(SPI0_MISO), 16278c2ecf20Sopenharmony_ci [SPI0_MOSI] = PAD_INFO_PULLCTL_ST(SPI0_MOSI), 16288c2ecf20Sopenharmony_ci [UART0_RX] = PAD_INFO_PULLCTL_ST(UART0_RX), 16298c2ecf20Sopenharmony_ci [UART0_TX] = PAD_INFO_PULLCTL_ST(UART0_TX), 16308c2ecf20Sopenharmony_ci [UART2_RX] = PAD_INFO_ST(UART2_RX), 16318c2ecf20Sopenharmony_ci [UART2_TX] = PAD_INFO(UART2_TX), 16328c2ecf20Sopenharmony_ci [UART2_RTSB] = PAD_INFO_ST(UART2_RTSB), 16338c2ecf20Sopenharmony_ci [UART2_CTSB] = PAD_INFO_ST(UART2_CTSB), 16348c2ecf20Sopenharmony_ci [UART3_RX] = PAD_INFO_ST(UART3_RX), 16358c2ecf20Sopenharmony_ci [UART3_TX] = PAD_INFO(UART3_TX), 16368c2ecf20Sopenharmony_ci [UART3_RTSB] = PAD_INFO_ST(UART3_RTSB), 16378c2ecf20Sopenharmony_ci [UART3_CTSB] = PAD_INFO_ST(UART3_CTSB), 16388c2ecf20Sopenharmony_ci [UART4_RX] = PAD_INFO_PULLCTL_ST(UART4_RX), 16398c2ecf20Sopenharmony_ci [UART4_TX] = PAD_INFO_PULLCTL_ST(UART4_TX), 16408c2ecf20Sopenharmony_ci [I2C0_SCLK] = PAD_INFO_PULLCTL_ST(I2C0_SCLK), 16418c2ecf20Sopenharmony_ci [I2C0_SDATA] = PAD_INFO_PULLCTL_ST(I2C0_SDATA), 16428c2ecf20Sopenharmony_ci [I2C1_SCLK] = PAD_INFO_PULLCTL_ST(I2C1_SCLK), 16438c2ecf20Sopenharmony_ci [I2C1_SDATA] = PAD_INFO_PULLCTL_ST(I2C1_SDATA), 16448c2ecf20Sopenharmony_ci [I2C2_SCLK] = PAD_INFO_PULLCTL_ST(I2C2_SCLK), 16458c2ecf20Sopenharmony_ci [I2C2_SDATA] = PAD_INFO_PULLCTL_ST(I2C2_SDATA), 16468c2ecf20Sopenharmony_ci [CSI0_DN0] = PAD_INFO(CSI0_DN0), 16478c2ecf20Sopenharmony_ci [CSI0_DP0] = PAD_INFO(CSI0_DP0), 16488c2ecf20Sopenharmony_ci [CSI0_DN1] = PAD_INFO(CSI0_DN1), 16498c2ecf20Sopenharmony_ci [CSI0_DP1] = PAD_INFO(CSI0_DP1), 16508c2ecf20Sopenharmony_ci [CSI0_CN] = PAD_INFO(CSI0_CN), 16518c2ecf20Sopenharmony_ci [CSI0_CP] = PAD_INFO(CSI0_CP), 16528c2ecf20Sopenharmony_ci [CSI0_DN2] = PAD_INFO(CSI0_DN2), 16538c2ecf20Sopenharmony_ci [CSI0_DP2] = PAD_INFO(CSI0_DP2), 16548c2ecf20Sopenharmony_ci [CSI0_DN3] = PAD_INFO(CSI0_DN3), 16558c2ecf20Sopenharmony_ci [CSI0_DP3] = PAD_INFO(CSI0_DP3), 16568c2ecf20Sopenharmony_ci [DSI_DP3] = PAD_INFO(DSI_DP3), 16578c2ecf20Sopenharmony_ci [DSI_DN3] = PAD_INFO(DSI_DN3), 16588c2ecf20Sopenharmony_ci [DSI_DP1] = PAD_INFO(DSI_DP1), 16598c2ecf20Sopenharmony_ci [DSI_DN1] = PAD_INFO(DSI_DN1), 16608c2ecf20Sopenharmony_ci [DSI_CP] = PAD_INFO(DSI_CP), 16618c2ecf20Sopenharmony_ci [DSI_CN] = PAD_INFO(DSI_CN), 16628c2ecf20Sopenharmony_ci [DSI_DP0] = PAD_INFO(DSI_DP0), 16638c2ecf20Sopenharmony_ci [DSI_DN0] = PAD_INFO(DSI_DN0), 16648c2ecf20Sopenharmony_ci [DSI_DP2] = PAD_INFO(DSI_DP2), 16658c2ecf20Sopenharmony_ci [DSI_DN2] = PAD_INFO(DSI_DN2), 16668c2ecf20Sopenharmony_ci [SENSOR0_PCLK] = PAD_INFO(SENSOR0_PCLK), 16678c2ecf20Sopenharmony_ci [CSI1_DN0] = PAD_INFO(CSI1_DN0), 16688c2ecf20Sopenharmony_ci [CSI1_DP0] = PAD_INFO(CSI1_DP0), 16698c2ecf20Sopenharmony_ci [CSI1_DN1] = PAD_INFO(CSI1_DN1), 16708c2ecf20Sopenharmony_ci [CSI1_DP1] = PAD_INFO(CSI1_DP1), 16718c2ecf20Sopenharmony_ci [CSI1_CN] = PAD_INFO(CSI1_CN), 16728c2ecf20Sopenharmony_ci [CSI1_CP] = PAD_INFO(CSI1_CP), 16738c2ecf20Sopenharmony_ci [SENSOR0_CKOUT] = PAD_INFO(SENSOR0_CKOUT), 16748c2ecf20Sopenharmony_ci [NAND0_D0] = PAD_INFO_PULLCTL(NAND0_D0), 16758c2ecf20Sopenharmony_ci [NAND0_D1] = PAD_INFO_PULLCTL(NAND0_D1), 16768c2ecf20Sopenharmony_ci [NAND0_D2] = PAD_INFO_PULLCTL(NAND0_D2), 16778c2ecf20Sopenharmony_ci [NAND0_D3] = PAD_INFO_PULLCTL(NAND0_D3), 16788c2ecf20Sopenharmony_ci [NAND0_D4] = PAD_INFO_PULLCTL(NAND0_D4), 16798c2ecf20Sopenharmony_ci [NAND0_D5] = PAD_INFO_PULLCTL(NAND0_D5), 16808c2ecf20Sopenharmony_ci [NAND0_D6] = PAD_INFO_PULLCTL(NAND0_D6), 16818c2ecf20Sopenharmony_ci [NAND0_D7] = PAD_INFO_PULLCTL(NAND0_D7), 16828c2ecf20Sopenharmony_ci [NAND0_DQS] = PAD_INFO_PULLCTL(NAND0_DQS), 16838c2ecf20Sopenharmony_ci [NAND0_DQSN] = PAD_INFO_PULLCTL(NAND0_DQSN), 16848c2ecf20Sopenharmony_ci [NAND0_ALE] = PAD_INFO(NAND0_ALE), 16858c2ecf20Sopenharmony_ci [NAND0_CLE] = PAD_INFO(NAND0_CLE), 16868c2ecf20Sopenharmony_ci [NAND0_CEB0] = PAD_INFO(NAND0_CEB0), 16878c2ecf20Sopenharmony_ci [NAND0_CEB1] = PAD_INFO(NAND0_CEB1), 16888c2ecf20Sopenharmony_ci [NAND0_CEB2] = PAD_INFO(NAND0_CEB2), 16898c2ecf20Sopenharmony_ci [NAND0_CEB3] = PAD_INFO(NAND0_CEB3), 16908c2ecf20Sopenharmony_ci [NAND1_D0] = PAD_INFO_PULLCTL(NAND1_D0), 16918c2ecf20Sopenharmony_ci [NAND1_D1] = PAD_INFO_PULLCTL(NAND1_D1), 16928c2ecf20Sopenharmony_ci [NAND1_D2] = PAD_INFO_PULLCTL(NAND1_D2), 16938c2ecf20Sopenharmony_ci [NAND1_D3] = PAD_INFO_PULLCTL(NAND1_D3), 16948c2ecf20Sopenharmony_ci [NAND1_D4] = PAD_INFO_PULLCTL(NAND1_D4), 16958c2ecf20Sopenharmony_ci [NAND1_D5] = PAD_INFO_PULLCTL(NAND1_D5), 16968c2ecf20Sopenharmony_ci [NAND1_D6] = PAD_INFO_PULLCTL(NAND1_D6), 16978c2ecf20Sopenharmony_ci [NAND1_D7] = PAD_INFO_PULLCTL(NAND1_D7), 16988c2ecf20Sopenharmony_ci [NAND1_DQS] = PAD_INFO_PULLCTL(NAND1_DQS), 16998c2ecf20Sopenharmony_ci [NAND1_DQSN] = PAD_INFO_PULLCTL(NAND1_DQSN), 17008c2ecf20Sopenharmony_ci [NAND1_ALE] = PAD_INFO(NAND1_ALE), 17018c2ecf20Sopenharmony_ci [NAND1_CLE] = PAD_INFO(NAND1_CLE), 17028c2ecf20Sopenharmony_ci [NAND1_CEB0] = PAD_INFO(NAND1_CEB0), 17038c2ecf20Sopenharmony_ci [NAND1_CEB1] = PAD_INFO(NAND1_CEB1), 17048c2ecf20Sopenharmony_ci [NAND1_CEB2] = PAD_INFO(NAND1_CEB2), 17058c2ecf20Sopenharmony_ci [NAND1_CEB3] = PAD_INFO(NAND1_CEB3), 17068c2ecf20Sopenharmony_ci [SGPIO0] = PAD_INFO(SGPIO0), 17078c2ecf20Sopenharmony_ci [SGPIO1] = PAD_INFO(SGPIO1), 17088c2ecf20Sopenharmony_ci [SGPIO2] = PAD_INFO_PULLCTL_ST(SGPIO2), 17098c2ecf20Sopenharmony_ci [SGPIO3] = PAD_INFO_PULLCTL_ST(SGPIO3) 17108c2ecf20Sopenharmony_ci}; 17118c2ecf20Sopenharmony_ci 17128c2ecf20Sopenharmony_cistatic const struct owl_gpio_port s900_gpio_ports[] = { 17138c2ecf20Sopenharmony_ci OWL_GPIO_PORT(A, 0x0000, 32, 0x0, 0x4, 0x8, 0x204, 0x208, 0x20C, 0x240, 0), 17148c2ecf20Sopenharmony_ci OWL_GPIO_PORT(B, 0x000C, 32, 0x0, 0x4, 0x8, 0x534, 0x204, 0x208, 0x23C, 0), 17158c2ecf20Sopenharmony_ci OWL_GPIO_PORT(C, 0x0018, 12, 0x0, 0x4, 0x8, 0x52C, 0x200, 0x204, 0x238, 0), 17168c2ecf20Sopenharmony_ci OWL_GPIO_PORT(D, 0x0024, 30, 0x0, 0x4, 0x8, 0x524, 0x1FC, 0x200, 0x234, 0), 17178c2ecf20Sopenharmony_ci OWL_GPIO_PORT(E, 0x0030, 32, 0x0, 0x4, 0x8, 0x51C, 0x1F8, 0x1FC, 0x230, 0), 17188c2ecf20Sopenharmony_ci OWL_GPIO_PORT(F, 0x00F0, 8, 0x0, 0x4, 0x8, 0x460, 0x140, 0x144, 0x178, 0) 17198c2ecf20Sopenharmony_ci}; 17208c2ecf20Sopenharmony_ci 17218c2ecf20Sopenharmony_cienum s900_pinconf_pull { 17228c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_HIZ, 17238c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_DOWN, 17248c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_UP, 17258c2ecf20Sopenharmony_ci OWL_PINCONF_PULL_HOLD, 17268c2ecf20Sopenharmony_ci}; 17278c2ecf20Sopenharmony_ci 17288c2ecf20Sopenharmony_cistatic int s900_pad_pinconf_arg2val(const struct owl_padinfo *info, 17298c2ecf20Sopenharmony_ci unsigned int param, 17308c2ecf20Sopenharmony_ci u32 *arg) 17318c2ecf20Sopenharmony_ci{ 17328c2ecf20Sopenharmony_ci switch (param) { 17338c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_BUS_HOLD: 17348c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_HOLD; 17358c2ecf20Sopenharmony_ci break; 17368c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_HIGH_IMPEDANCE: 17378c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_HIZ; 17388c2ecf20Sopenharmony_ci break; 17398c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_DOWN: 17408c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_DOWN; 17418c2ecf20Sopenharmony_ci break; 17428c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_UP: 17438c2ecf20Sopenharmony_ci *arg = OWL_PINCONF_PULL_UP; 17448c2ecf20Sopenharmony_ci break; 17458c2ecf20Sopenharmony_ci case PIN_CONFIG_INPUT_SCHMITT_ENABLE: 17468c2ecf20Sopenharmony_ci *arg = (*arg >= 1 ? 1 : 0); 17478c2ecf20Sopenharmony_ci break; 17488c2ecf20Sopenharmony_ci default: 17498c2ecf20Sopenharmony_ci return -ENOTSUPP; 17508c2ecf20Sopenharmony_ci } 17518c2ecf20Sopenharmony_ci 17528c2ecf20Sopenharmony_ci return 0; 17538c2ecf20Sopenharmony_ci} 17548c2ecf20Sopenharmony_ci 17558c2ecf20Sopenharmony_cistatic int s900_pad_pinconf_val2arg(const struct owl_padinfo *padinfo, 17568c2ecf20Sopenharmony_ci unsigned int param, 17578c2ecf20Sopenharmony_ci u32 *arg) 17588c2ecf20Sopenharmony_ci{ 17598c2ecf20Sopenharmony_ci switch (param) { 17608c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_BUS_HOLD: 17618c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_HOLD; 17628c2ecf20Sopenharmony_ci break; 17638c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_HIGH_IMPEDANCE: 17648c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_HIZ; 17658c2ecf20Sopenharmony_ci break; 17668c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_DOWN: 17678c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_DOWN; 17688c2ecf20Sopenharmony_ci break; 17698c2ecf20Sopenharmony_ci case PIN_CONFIG_BIAS_PULL_UP: 17708c2ecf20Sopenharmony_ci *arg = *arg == OWL_PINCONF_PULL_UP; 17718c2ecf20Sopenharmony_ci break; 17728c2ecf20Sopenharmony_ci case PIN_CONFIG_INPUT_SCHMITT_ENABLE: 17738c2ecf20Sopenharmony_ci *arg = *arg == 1; 17748c2ecf20Sopenharmony_ci break; 17758c2ecf20Sopenharmony_ci default: 17768c2ecf20Sopenharmony_ci return -ENOTSUPP; 17778c2ecf20Sopenharmony_ci } 17788c2ecf20Sopenharmony_ci 17798c2ecf20Sopenharmony_ci return 0; 17808c2ecf20Sopenharmony_ci} 17818c2ecf20Sopenharmony_ci 17828c2ecf20Sopenharmony_cistatic struct owl_pinctrl_soc_data s900_pinctrl_data = { 17838c2ecf20Sopenharmony_ci .padinfo = s900_padinfo, 17848c2ecf20Sopenharmony_ci .pins = (const struct pinctrl_pin_desc *)s900_pads, 17858c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(s900_pads), 17868c2ecf20Sopenharmony_ci .functions = s900_functions, 17878c2ecf20Sopenharmony_ci .nfunctions = ARRAY_SIZE(s900_functions), 17888c2ecf20Sopenharmony_ci .groups = s900_groups, 17898c2ecf20Sopenharmony_ci .ngroups = ARRAY_SIZE(s900_groups), 17908c2ecf20Sopenharmony_ci .ngpios = NUM_GPIOS, 17918c2ecf20Sopenharmony_ci .ports = s900_gpio_ports, 17928c2ecf20Sopenharmony_ci .nports = ARRAY_SIZE(s900_gpio_ports), 17938c2ecf20Sopenharmony_ci .padctl_arg2val = s900_pad_pinconf_arg2val, 17948c2ecf20Sopenharmony_ci .padctl_val2arg = s900_pad_pinconf_val2arg, 17958c2ecf20Sopenharmony_ci}; 17968c2ecf20Sopenharmony_ci 17978c2ecf20Sopenharmony_cistatic int s900_pinctrl_probe(struct platform_device *pdev) 17988c2ecf20Sopenharmony_ci{ 17998c2ecf20Sopenharmony_ci return owl_pinctrl_probe(pdev, &s900_pinctrl_data); 18008c2ecf20Sopenharmony_ci} 18018c2ecf20Sopenharmony_ci 18028c2ecf20Sopenharmony_cistatic const struct of_device_id s900_pinctrl_of_match[] = { 18038c2ecf20Sopenharmony_ci { .compatible = "actions,s900-pinctrl", }, 18048c2ecf20Sopenharmony_ci { } 18058c2ecf20Sopenharmony_ci}; 18068c2ecf20Sopenharmony_ci 18078c2ecf20Sopenharmony_cistatic struct platform_driver s900_pinctrl_driver = { 18088c2ecf20Sopenharmony_ci .driver = { 18098c2ecf20Sopenharmony_ci .name = "pinctrl-s900", 18108c2ecf20Sopenharmony_ci .of_match_table = of_match_ptr(s900_pinctrl_of_match), 18118c2ecf20Sopenharmony_ci }, 18128c2ecf20Sopenharmony_ci .probe = s900_pinctrl_probe, 18138c2ecf20Sopenharmony_ci}; 18148c2ecf20Sopenharmony_ci 18158c2ecf20Sopenharmony_cistatic int __init s900_pinctrl_init(void) 18168c2ecf20Sopenharmony_ci{ 18178c2ecf20Sopenharmony_ci return platform_driver_register(&s900_pinctrl_driver); 18188c2ecf20Sopenharmony_ci} 18198c2ecf20Sopenharmony_ciarch_initcall(s900_pinctrl_init); 18208c2ecf20Sopenharmony_ci 18218c2ecf20Sopenharmony_cistatic void __exit s900_pinctrl_exit(void) 18228c2ecf20Sopenharmony_ci{ 18238c2ecf20Sopenharmony_ci platform_driver_unregister(&s900_pinctrl_driver); 18248c2ecf20Sopenharmony_ci} 18258c2ecf20Sopenharmony_cimodule_exit(s900_pinctrl_exit); 18268c2ecf20Sopenharmony_ci 18278c2ecf20Sopenharmony_ciMODULE_AUTHOR("Actions Semi Inc."); 18288c2ecf20Sopenharmony_ciMODULE_AUTHOR("Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>"); 18298c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("Actions Semi S900 SoC Pinctrl Driver"); 18308c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL"); 1831