18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2017 Sanechips Technology Co., Ltd.
48c2ecf20Sopenharmony_ci * Copyright 2017 Linaro Ltd.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <linux/module.h>
88c2ecf20Sopenharmony_ci#include <linux/of.h>
98c2ecf20Sopenharmony_ci#include <linux/of_address.h>
108c2ecf20Sopenharmony_ci#include <linux/of_device.h>
118c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h>
128c2ecf20Sopenharmony_ci#include <linux/platform_device.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#include "pinctrl-zx.h"
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#define TOP_REG0	0x00
178c2ecf20Sopenharmony_ci#define TOP_REG1	0x04
188c2ecf20Sopenharmony_ci#define TOP_REG2	0x08
198c2ecf20Sopenharmony_ci#define TOP_REG3	0x0c
208c2ecf20Sopenharmony_ci#define TOP_REG4	0x10
218c2ecf20Sopenharmony_ci#define TOP_REG5	0x14
228c2ecf20Sopenharmony_ci#define TOP_REG6	0x18
238c2ecf20Sopenharmony_ci#define TOP_REG7	0x1c
248c2ecf20Sopenharmony_ci#define TOP_REG8	0x20
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci/*
278c2ecf20Sopenharmony_ci * The pin numbering starts from AON pins with reserved ones included,
288c2ecf20Sopenharmony_ci * so that register data like offset and bit position for AON pins can
298c2ecf20Sopenharmony_ci * be calculated from pin number.
308c2ecf20Sopenharmony_ci */
318c2ecf20Sopenharmony_cienum zx296718_pin {
328c2ecf20Sopenharmony_ci	/* aon_pmm_reg_0 */
338c2ecf20Sopenharmony_ci	I2C3_SCL = 0,
348c2ecf20Sopenharmony_ci	I2C3_SDA = 1,
358c2ecf20Sopenharmony_ci	AON_RESERVED0 = 2,
368c2ecf20Sopenharmony_ci	AON_RESERVED1 = 3,
378c2ecf20Sopenharmony_ci	SEC_EN = 4,
388c2ecf20Sopenharmony_ci	UART0_RXD = 5,
398c2ecf20Sopenharmony_ci	UART0_TXD = 6,
408c2ecf20Sopenharmony_ci	IR_IN = 7,
418c2ecf20Sopenharmony_ci	SPI0_CLK = 8,
428c2ecf20Sopenharmony_ci	SPI0_CS = 9,
438c2ecf20Sopenharmony_ci	SPI0_TXD = 10,
448c2ecf20Sopenharmony_ci	SPI0_RXD = 11,
458c2ecf20Sopenharmony_ci	KEY_COL0 = 12,
468c2ecf20Sopenharmony_ci	KEY_COL1 = 13,
478c2ecf20Sopenharmony_ci	KEY_COL2 = 14,
488c2ecf20Sopenharmony_ci	KEY_ROW0 = 15,
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	/* aon_pmm_reg_1 */
518c2ecf20Sopenharmony_ci	KEY_ROW1 = 16,
528c2ecf20Sopenharmony_ci	KEY_ROW2 = 17,
538c2ecf20Sopenharmony_ci	HDMI_SCL = 18,
548c2ecf20Sopenharmony_ci	HDMI_SDA = 19,
558c2ecf20Sopenharmony_ci	JTAG_TCK = 20,
568c2ecf20Sopenharmony_ci	JTAG_TRSTN = 21,
578c2ecf20Sopenharmony_ci	JTAG_TMS = 22,
588c2ecf20Sopenharmony_ci	JTAG_TDI = 23,
598c2ecf20Sopenharmony_ci	JTAG_TDO = 24,
608c2ecf20Sopenharmony_ci	I2C0_SCL = 25,
618c2ecf20Sopenharmony_ci	I2C0_SDA = 26,
628c2ecf20Sopenharmony_ci	I2C1_SCL = 27,
638c2ecf20Sopenharmony_ci	I2C1_SDA = 28,
648c2ecf20Sopenharmony_ci	AON_RESERVED2 = 29,
658c2ecf20Sopenharmony_ci	AON_RESERVED3 = 30,
668c2ecf20Sopenharmony_ci	AON_RESERVED4 = 31,
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci	/* aon_pmm_reg_2 */
698c2ecf20Sopenharmony_ci	SPI1_CLK = 32,
708c2ecf20Sopenharmony_ci	SPI1_CS = 33,
718c2ecf20Sopenharmony_ci	SPI1_TXD = 34,
728c2ecf20Sopenharmony_ci	SPI1_RXD = 35,
738c2ecf20Sopenharmony_ci	AON_RESERVED5 = 36,
748c2ecf20Sopenharmony_ci	AON_RESERVED6 = 37,
758c2ecf20Sopenharmony_ci	AUDIO_DET = 38,
768c2ecf20Sopenharmony_ci	SPDIF_OUT = 39,
778c2ecf20Sopenharmony_ci	HDMI_CEC = 40,
788c2ecf20Sopenharmony_ci	HDMI_HPD = 41,
798c2ecf20Sopenharmony_ci	GMAC_25M_OUT = 42,
808c2ecf20Sopenharmony_ci	BOOT_SEL0 = 43,
818c2ecf20Sopenharmony_ci	BOOT_SEL1 = 44,
828c2ecf20Sopenharmony_ci	BOOT_SEL2 = 45,
838c2ecf20Sopenharmony_ci	DEEP_SLEEP_OUT_N = 46,
848c2ecf20Sopenharmony_ci	AON_RESERVED7 = 47,
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	/* top_pmm_reg_0 */
878c2ecf20Sopenharmony_ci	GMII_GTX_CLK = 48,
888c2ecf20Sopenharmony_ci	GMII_TX_CLK = 49,
898c2ecf20Sopenharmony_ci	GMII_TXD0 = 50,
908c2ecf20Sopenharmony_ci	GMII_TXD1 = 51,
918c2ecf20Sopenharmony_ci	GMII_TXD2 = 52,
928c2ecf20Sopenharmony_ci	GMII_TXD3 = 53,
938c2ecf20Sopenharmony_ci	GMII_TXD4 = 54,
948c2ecf20Sopenharmony_ci	GMII_TXD5 = 55,
958c2ecf20Sopenharmony_ci	GMII_TXD6 = 56,
968c2ecf20Sopenharmony_ci	GMII_TXD7 = 57,
978c2ecf20Sopenharmony_ci	GMII_TX_ER = 58,
988c2ecf20Sopenharmony_ci	GMII_TX_EN = 59,
998c2ecf20Sopenharmony_ci	GMII_RX_CLK = 60,
1008c2ecf20Sopenharmony_ci	GMII_RXD0 = 61,
1018c2ecf20Sopenharmony_ci	GMII_RXD1 = 62,
1028c2ecf20Sopenharmony_ci	GMII_RXD2 = 63,
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci	/* top_pmm_reg_1 */
1058c2ecf20Sopenharmony_ci	GMII_RXD3 = 64,
1068c2ecf20Sopenharmony_ci	GMII_RXD4 = 65,
1078c2ecf20Sopenharmony_ci	GMII_RXD5 = 66,
1088c2ecf20Sopenharmony_ci	GMII_RXD6 = 67,
1098c2ecf20Sopenharmony_ci	GMII_RXD7 = 68,
1108c2ecf20Sopenharmony_ci	GMII_RX_ER = 69,
1118c2ecf20Sopenharmony_ci	GMII_RX_DV = 70,
1128c2ecf20Sopenharmony_ci	GMII_COL = 71,
1138c2ecf20Sopenharmony_ci	GMII_CRS = 72,
1148c2ecf20Sopenharmony_ci	GMII_MDC = 73,
1158c2ecf20Sopenharmony_ci	GMII_MDIO = 74,
1168c2ecf20Sopenharmony_ci	SDIO1_CLK = 75,
1178c2ecf20Sopenharmony_ci	SDIO1_CMD = 76,
1188c2ecf20Sopenharmony_ci	SDIO1_DATA0 = 77,
1198c2ecf20Sopenharmony_ci	SDIO1_DATA1 = 78,
1208c2ecf20Sopenharmony_ci	SDIO1_DATA2 = 79,
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci	/* top_pmm_reg_2 */
1238c2ecf20Sopenharmony_ci	SDIO1_DATA3 = 80,
1248c2ecf20Sopenharmony_ci	SDIO1_CD = 81,
1258c2ecf20Sopenharmony_ci	SDIO1_WP = 82,
1268c2ecf20Sopenharmony_ci	USIM1_CD = 83,
1278c2ecf20Sopenharmony_ci	USIM1_CLK = 84,
1288c2ecf20Sopenharmony_ci	USIM1_RST = 85,
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ci	/* top_pmm_reg_3 */
1318c2ecf20Sopenharmony_ci	USIM1_DATA = 86,
1328c2ecf20Sopenharmony_ci	SDIO0_CLK = 87,
1338c2ecf20Sopenharmony_ci	SDIO0_CMD = 88,
1348c2ecf20Sopenharmony_ci	SDIO0_DATA0 = 89,
1358c2ecf20Sopenharmony_ci	SDIO0_DATA1 = 90,
1368c2ecf20Sopenharmony_ci	SDIO0_DATA2 = 91,
1378c2ecf20Sopenharmony_ci	SDIO0_DATA3 = 92,
1388c2ecf20Sopenharmony_ci	SDIO0_CD = 93,
1398c2ecf20Sopenharmony_ci	SDIO0_WP = 94,
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci	/* top_pmm_reg_4 */
1428c2ecf20Sopenharmony_ci	TSI0_DATA0 = 95,
1438c2ecf20Sopenharmony_ci	SPINOR_CLK = 96,
1448c2ecf20Sopenharmony_ci	TSI2_DATA = 97,
1458c2ecf20Sopenharmony_ci	TSI2_CLK = 98,
1468c2ecf20Sopenharmony_ci	TSI2_SYNC = 99,
1478c2ecf20Sopenharmony_ci	TSI2_VALID = 100,
1488c2ecf20Sopenharmony_ci	SPINOR_CS = 101,
1498c2ecf20Sopenharmony_ci	SPINOR_DQ0 = 102,
1508c2ecf20Sopenharmony_ci	SPINOR_DQ1 = 103,
1518c2ecf20Sopenharmony_ci	SPINOR_DQ2 = 104,
1528c2ecf20Sopenharmony_ci	SPINOR_DQ3 = 105,
1538c2ecf20Sopenharmony_ci	VGA_HS = 106,
1548c2ecf20Sopenharmony_ci	VGA_VS = 107,
1558c2ecf20Sopenharmony_ci	TSI3_DATA = 108,
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ci	/* top_pmm_reg_5 */
1588c2ecf20Sopenharmony_ci	TSI3_CLK = 109,
1598c2ecf20Sopenharmony_ci	TSI3_SYNC = 110,
1608c2ecf20Sopenharmony_ci	TSI3_VALID = 111,
1618c2ecf20Sopenharmony_ci	I2S1_WS = 112,
1628c2ecf20Sopenharmony_ci	I2S1_BCLK = 113,
1638c2ecf20Sopenharmony_ci	I2S1_MCLK = 114,
1648c2ecf20Sopenharmony_ci	I2S1_DIN0 = 115,
1658c2ecf20Sopenharmony_ci	I2S1_DOUT0 = 116,
1668c2ecf20Sopenharmony_ci	SPI3_CLK = 117,
1678c2ecf20Sopenharmony_ci	SPI3_CS = 118,
1688c2ecf20Sopenharmony_ci	SPI3_TXD = 119,
1698c2ecf20Sopenharmony_ci	NAND_LDO_MS18_SEL = 120,
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci	/* top_pmm_reg_6 */
1728c2ecf20Sopenharmony_ci	SPI3_RXD = 121,
1738c2ecf20Sopenharmony_ci	I2S0_MCLK = 122,
1748c2ecf20Sopenharmony_ci	I2S0_BCLK = 123,
1758c2ecf20Sopenharmony_ci	I2S0_WS = 124,
1768c2ecf20Sopenharmony_ci	I2S0_DIN0 = 125,
1778c2ecf20Sopenharmony_ci	I2S0_DOUT0 = 126,
1788c2ecf20Sopenharmony_ci	I2C5_SCL = 127,
1798c2ecf20Sopenharmony_ci	I2C5_SDA = 128,
1808c2ecf20Sopenharmony_ci	SPI2_CLK = 129,
1818c2ecf20Sopenharmony_ci	SPI2_CS = 130,
1828c2ecf20Sopenharmony_ci	SPI2_TXD = 131,
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	/* top_pmm_reg_7 */
1858c2ecf20Sopenharmony_ci	SPI2_RXD = 132,
1868c2ecf20Sopenharmony_ci	NAND_WP_N = 133,
1878c2ecf20Sopenharmony_ci	NAND_PAGE_SIZE0 = 134,
1888c2ecf20Sopenharmony_ci	NAND_PAGE_SIZE1 = 135,
1898c2ecf20Sopenharmony_ci	NAND_ADDR_CYCLE = 136,
1908c2ecf20Sopenharmony_ci	NAND_RB0 = 137,
1918c2ecf20Sopenharmony_ci	NAND_RB1 = 138,
1928c2ecf20Sopenharmony_ci	NAND_RB2 = 139,
1938c2ecf20Sopenharmony_ci	NAND_RB3 = 140,
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci	/* top_pmm_reg_8 */
1968c2ecf20Sopenharmony_ci	GMAC_125M_IN = 141,
1978c2ecf20Sopenharmony_ci	GMAC_50M_OUT = 142,
1988c2ecf20Sopenharmony_ci	SPINOR_SSCLK_LOOPBACK = 143,
1998c2ecf20Sopenharmony_ci	SPINOR_SDIO1CLK_LOOPBACK = 144,
2008c2ecf20Sopenharmony_ci};
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc zx296718_pins[] = {
2038c2ecf20Sopenharmony_ci	/* aon_pmm_reg_0 */
2048c2ecf20Sopenharmony_ci	AON_PIN(I2C3_SCL, TOP_REG2, 18, 2, 0x48, 0,
2058c2ecf20Sopenharmony_ci		AON_MUX(0x0, "ANMI"),		/* anmi */
2068c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio29 */
2078c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin0 */
2088c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int4 */
2098c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2C3"),		/* scl */
2108c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "SPI2"),		/* txd */
2118c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "I2S1")),		/* din0 */
2128c2ecf20Sopenharmony_ci	AON_PIN(I2C3_SDA, TOP_REG2, 20, 2, 0x48, 9,
2138c2ecf20Sopenharmony_ci		AON_MUX(0x0, "WD"),		/* rst_b */
2148c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio30 */
2158c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin1 */
2168c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int5 */
2178c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2C3"),		/* sda */
2188c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "SPI2"),		/* rxd */
2198c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "I2S0")),		/* mclk */
2208c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED0),
2218c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED1),
2228c2ecf20Sopenharmony_ci	AON_PIN(SEC_EN, TOP_REG3, 5, 1, 0x50, 0,
2238c2ecf20Sopenharmony_ci		AON_MUX(0x0, "SEC"),		/* en */
2248c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio28 */
2258c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin3 */
2268c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int7 */
2278c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2C2"),		/* sda */
2288c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "SPI2")),		/* cs */
2298c2ecf20Sopenharmony_ci	AON_PIN(UART0_RXD, 0, 0, 0, 0x50, 9,
2308c2ecf20Sopenharmony_ci		AON_MUX(0x0, "UART0"),		/* rxd */
2318c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio20 */
2328c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin34 */
2338c2ecf20Sopenharmony_ci	AON_PIN(UART0_TXD, 0, 0, 0, 0x50, 18,
2348c2ecf20Sopenharmony_ci		AON_MUX(0x0, "UART0"),		/* txd */
2358c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio21 */
2368c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin32 */
2378c2ecf20Sopenharmony_ci	AON_PIN(IR_IN, 0, 0, 0, 0x64, 0,
2388c2ecf20Sopenharmony_ci		AON_MUX(0x0, "IR"),		/* in */
2398c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio0 */
2408c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin27 */
2418c2ecf20Sopenharmony_ci	AON_PIN(SPI0_CLK, TOP_REG3, 16, 1, 0x64, 9,
2428c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int0 */
2438c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio23 */
2448c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin5 */
2458c2ecf20Sopenharmony_ci		AON_MUX(0x3, "PCU"),		/* test6 */
2468c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI0"),		/* clk */
2478c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "ISP")),		/* flash_trig */
2488c2ecf20Sopenharmony_ci	AON_PIN(SPI0_CS, TOP_REG3, 17, 1, 0x64, 18,
2498c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int1 */
2508c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio24 */
2518c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin6 */
2528c2ecf20Sopenharmony_ci		AON_MUX(0x3, "PCU"),		/* test0 */
2538c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI0"),		/* cs */
2548c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "ISP")),		/* prelight_trig */
2558c2ecf20Sopenharmony_ci	AON_PIN(SPI0_TXD, TOP_REG3, 18, 1, 0x68, 0,
2568c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int2 */
2578c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio25 */
2588c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin7 */
2598c2ecf20Sopenharmony_ci		AON_MUX(0x3, "PCU"),		/* test1 */
2608c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI0"),		/* txd */
2618c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "ISP")),		/* shutter_trig */
2628c2ecf20Sopenharmony_ci	AON_PIN(SPI0_RXD, TOP_REG3, 19, 1, 0x68, 9,
2638c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int3 */
2648c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio26 */
2658c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin8 */
2668c2ecf20Sopenharmony_ci		AON_MUX(0x3, "PCU"),		/* test2 */
2678c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI0"),		/* rxd */
2688c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "ISP")),		/* shutter_open */
2698c2ecf20Sopenharmony_ci	AON_PIN(KEY_COL0, TOP_REG3, 20, 1, 0x68, 18,
2708c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* col0 */
2718c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio5 */
2728c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin9 */
2738c2ecf20Sopenharmony_ci		AON_MUX(0x3, "PCU"),		/* test3 */
2748c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "UART3"),		/* rxd */
2758c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2S0")),		/* din1 */
2768c2ecf20Sopenharmony_ci	AON_PIN(KEY_COL1, TOP_REG3, 21, 2, 0x6c, 0,
2778c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* col1 */
2788c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio6 */
2798c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin10 */
2808c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "UART3"),		/* txd */
2818c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2S0"),		/* din2 */
2828c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "VGA")),		/* scl */
2838c2ecf20Sopenharmony_ci	AON_PIN(KEY_COL2, TOP_REG3, 23, 2, 0x6c, 9,
2848c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* col2 */
2858c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio7 */
2868c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin11 */
2878c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "PWM"),		/* out1 */
2888c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2S0"),		/* din3 */
2898c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "VGA")),		/* sda */
2908c2ecf20Sopenharmony_ci	AON_PIN(KEY_ROW0, 0, 0, 0, 0x6c, 18,
2918c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* row0 */
2928c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio8 */
2938c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin33 */
2948c2ecf20Sopenharmony_ci		AON_MUX(0x3, "WD")),		/* rst_b */
2958c2ecf20Sopenharmony_ci
2968c2ecf20Sopenharmony_ci	/* aon_pmm_reg_1 */
2978c2ecf20Sopenharmony_ci	AON_PIN(KEY_ROW1, TOP_REG3, 25, 2, 0x70, 0,
2988c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* row1 */
2998c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio9 */
3008c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin12 */
3018c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "LCD"),		/* port0 lcd_te */
3028c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2S0"),		/* dout2 */
3038c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "PWM"),		/* out2 */
3048c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "VGA")),		/* hs1 */
3058c2ecf20Sopenharmony_ci	AON_PIN(KEY_ROW2, TOP_REG3, 27, 2, 0x70, 9,
3068c2ecf20Sopenharmony_ci		AON_MUX(0x0, "KEY"),		/* row2 */
3078c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio10 */
3088c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin13 */
3098c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "LCD"),		/* port1 lcd_te */
3108c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2S0"),		/* dout3 */
3118c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "PWM"),		/* out3 */
3128c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "VGA")),		/* vs1 */
3138c2ecf20Sopenharmony_ci	AON_PIN(HDMI_SCL, TOP_REG3, 29, 1, 0x70, 18,
3148c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test7 */
3158c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio3 */
3168c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin14 */
3178c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "HDMI"),		/* scl */
3188c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART3")),		/* rxd */
3198c2ecf20Sopenharmony_ci	AON_PIN(HDMI_SDA, TOP_REG3, 30, 1, 0x74, 0,
3208c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test8 */
3218c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio4 */
3228c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin15 */
3238c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "HDMI"),		/* sda */
3248c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART3")),		/* txd */
3258c2ecf20Sopenharmony_ci	AON_PIN(JTAG_TCK, TOP_REG7, 3, 1, 0x78, 18,
3268c2ecf20Sopenharmony_ci		AON_MUX(0x0, "JTAG"),		/* tck */
3278c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio11 */
3288c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin22 */
3298c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int4 */
3308c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI4"),		/* clk */
3318c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART1")),		/* rxd */
3328c2ecf20Sopenharmony_ci	AON_PIN(JTAG_TRSTN, TOP_REG7, 4, 1, 0xac, 0,
3338c2ecf20Sopenharmony_ci		AON_MUX(0x0, "JTAG"),		/* trstn */
3348c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio12 */
3358c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin23 */
3368c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int5 */
3378c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI4"),		/* cs */
3388c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART1")),		/* txd */
3398c2ecf20Sopenharmony_ci	AON_PIN(JTAG_TMS, TOP_REG7, 5, 1, 0xac, 9,
3408c2ecf20Sopenharmony_ci		AON_MUX(0x0, "JTAG"),		/* tms */
3418c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio13 */
3428c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin24 */
3438c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int6 */
3448c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI4"),		/* txd */
3458c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART2")),		/* rxd */
3468c2ecf20Sopenharmony_ci	AON_PIN(JTAG_TDI, TOP_REG7, 6, 1, 0xac, 18,
3478c2ecf20Sopenharmony_ci		AON_MUX(0x0, "JTAG"),		/* tdi */
3488c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio14 */
3498c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin25 */
3508c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int7 */
3518c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI4"),		/* rxd */
3528c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART2")),		/* txd */
3538c2ecf20Sopenharmony_ci	AON_PIN(JTAG_TDO, 0, 0, 0, 0xb0, 0,
3548c2ecf20Sopenharmony_ci		AON_MUX(0x0, "JTAG"),		/* tdo */
3558c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio15 */
3568c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin26 */
3578c2ecf20Sopenharmony_ci	AON_PIN(I2C0_SCL, 0, 0, 0, 0xb0, 9,
3588c2ecf20Sopenharmony_ci		AON_MUX(0x0, "I2C0"),		/* scl */
3598c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio16 */
3608c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin28 */
3618c2ecf20Sopenharmony_ci	AON_PIN(I2C0_SDA, 0, 0, 0, 0xb0, 18,
3628c2ecf20Sopenharmony_ci		AON_MUX(0x0, "I2C0"),		/* sda */
3638c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio17 */
3648c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin29 */
3658c2ecf20Sopenharmony_ci	AON_PIN(I2C1_SCL, TOP_REG8, 4, 1, 0xb4, 0,
3668c2ecf20Sopenharmony_ci		AON_MUX(0x0, "I2C1"),		/* scl */
3678c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio18 */
3688c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin30 */
3698c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "LCD")),		/* port0 lcd_te */
3708c2ecf20Sopenharmony_ci	AON_PIN(I2C1_SDA, TOP_REG8, 5, 1, 0xb4, 9,
3718c2ecf20Sopenharmony_ci		AON_MUX(0x0, "I2C1"),		/* sda */
3728c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio19 */
3738c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin31 */
3748c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "LCD")),		/* port1 lcd_te */
3758c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED2),
3768c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED3),
3778c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED4),
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci	/* aon_pmm_reg_2 */
3808c2ecf20Sopenharmony_ci	AON_PIN(SPI1_CLK, TOP_REG2, 6, 3, 0x40, 9,
3818c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int0 */
3828c2ecf20Sopenharmony_ci		AON_MUX(0x1, "PCU"),		/* test12 */
3838c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin39 */
3848c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI1"),		/* clk */
3858c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PCM"),		/* clk */
3868c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio35 */
3878c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "I2C4"),		/* scl */
3888c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* mclk */
3898c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "ISP")),		/* flash_trig */
3908c2ecf20Sopenharmony_ci	AON_PIN(SPI1_CS, TOP_REG2, 9, 3, 0x40, 18,
3918c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int1 */
3928c2ecf20Sopenharmony_ci		AON_MUX(0x1, "PCU"),		/* test13 */
3938c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin40 */
3948c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI1"),		/* cs */
3958c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PCM"),		/* fs */
3968c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio36 */
3978c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "I2C4"),		/* sda */
3988c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* bclk */
3998c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "ISP")),		/* prelight_trig */
4008c2ecf20Sopenharmony_ci	AON_PIN(SPI1_TXD, TOP_REG2, 12, 3, 0x44, 0,
4018c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int2 */
4028c2ecf20Sopenharmony_ci		AON_MUX(0x1, "PCU"),		/* test14 */
4038c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin41 */
4048c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI1"),		/* txd */
4058c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PCM"),		/* txd */
4068c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio37 */
4078c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "UART5"),		/* rxd */
4088c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* ws */
4098c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "ISP")),		/* shutter_trig */
4108c2ecf20Sopenharmony_ci	AON_PIN(SPI1_RXD, TOP_REG2, 15, 3, 0x44, 9,
4118c2ecf20Sopenharmony_ci		AON_MUX(0x0, "EXT_INT"),	/* int3 */
4128c2ecf20Sopenharmony_ci		AON_MUX(0x1, "PCU"),		/* test15 */
4138c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin42 */
4148c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI1"),		/* rxd */
4158c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PCM"),		/* rxd */
4168c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio38 */
4178c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "UART5"),		/* txd */
4188c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* dout0 */
4198c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "ISP")),		/* shutter_open */
4208c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED5),
4218c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED6),
4228c2ecf20Sopenharmony_ci	AON_PIN(AUDIO_DET, TOP_REG3, 3, 2, 0x48, 18,
4238c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test4 */
4248c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio27 */
4258c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin2 */
4268c2ecf20Sopenharmony_ci		AON_MUX(0x3, "EXT_INT"),	/* int16 */
4278c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "AUDIO"),		/* detect */
4288c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2C2"),		/* scl */
4298c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPI2")),		/* clk */
4308c2ecf20Sopenharmony_ci	AON_PIN(SPDIF_OUT, TOP_REG3, 14, 2, 0x78, 9,
4318c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test5 */
4328c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio22 */
4338c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON"),		/* pin4 */
4348c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPDIF"),		/* out */
4358c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PWM"),		/* out0 */
4368c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "ISP")),		/* fl_trig */
4378c2ecf20Sopenharmony_ci	AON_PIN(HDMI_CEC, 0, 0, 0, 0x74, 9,
4388c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test9 */
4398c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio1 */
4408c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin16 */
4418c2ecf20Sopenharmony_ci	AON_PIN(HDMI_HPD, 0, 0, 0, 0x74, 18,
4428c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test10 */
4438c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio2 */
4448c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin17 */
4458c2ecf20Sopenharmony_ci	AON_PIN(GMAC_25M_OUT, 0, 0, 0, 0x78, 0,
4468c2ecf20Sopenharmony_ci		AON_MUX(0x0, "PCU"),		/* test11 */
4478c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio31 */
4488c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin43 */
4498c2ecf20Sopenharmony_ci	AON_PIN(BOOT_SEL0, 0, 0, 0, 0xc0, 9,
4508c2ecf20Sopenharmony_ci		AON_MUX(0x0, "BOOT"),		/* sel0 */
4518c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio18 */
4528c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin18 */
4538c2ecf20Sopenharmony_ci	AON_PIN(BOOT_SEL1, 0, 0, 0, 0xc0, 18,
4548c2ecf20Sopenharmony_ci		AON_MUX(0x0, "BOOT"),		/* sel1 */
4558c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio19 */
4568c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin19 */
4578c2ecf20Sopenharmony_ci	AON_PIN(BOOT_SEL2, 0, 0, 0, 0xc4, 0,
4588c2ecf20Sopenharmony_ci		AON_MUX(0x0, "BOOT"),		/* sel2 */
4598c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio20 */
4608c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin20 */
4618c2ecf20Sopenharmony_ci	AON_PIN(DEEP_SLEEP_OUT_N, 0, 0, 0, 0xc4, 9,
4628c2ecf20Sopenharmony_ci		AON_MUX(0x0, "DEEPSLP"),	/* deep sleep out_n */
4638c2ecf20Sopenharmony_ci		AON_MUX(0x1, "AGPIO"),		/* agpio21 */
4648c2ecf20Sopenharmony_ci		AON_MUX(0x2, "nonAON")),	/* pin21 */
4658c2ecf20Sopenharmony_ci	ZX_RESERVED(AON_RESERVED7),
4668c2ecf20Sopenharmony_ci
4678c2ecf20Sopenharmony_ci	/* top_pmm_reg_0 */
4688c2ecf20Sopenharmony_ci	TOP_PIN(GMII_GTX_CLK, TOP_REG0, 0, 2, 0x10, 0,
4698c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* gtx_clk */
4708c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* clk */
4718c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio0 */
4728c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TX_CLK, TOP_REG0, 2, 2, 0x10, 9,
4738c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* tx_clk */
4748c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* vs */
4758c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio1 */
4768c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD0, TOP_REG0, 4, 2, 0x10, 18,
4778c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd0 */
4788c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* hs */
4798c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio2 */
4808c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD1, TOP_REG0, 6, 2, 0x14, 0,
4818c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd1 */
4828c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d0 */
4838c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio3 */
4848c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD2, TOP_REG0, 8, 2, 0x14, 9,
4858c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd2 */
4868c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d1 */
4878c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio4 */
4888c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD3, TOP_REG0, 10, 2, 0x14, 18,
4898c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd3 */
4908c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d2 */
4918c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio5 */
4928c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD4, TOP_REG0, 12, 2, 0x18, 0,
4938c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd4 */
4948c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d3 */
4958c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio6 */
4968c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD5, TOP_REG0, 14, 2, 0x18, 9,
4978c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd5 */
4988c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d4 */
4998c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio7 */
5008c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD6, TOP_REG0, 16, 2, 0x18, 18,
5018c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd6 */
5028c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d5 */
5038c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio8 */
5048c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TXD7, TOP_REG0, 18, 2, 0x1c, 0,
5058c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* txd7 */
5068c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d6 */
5078c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio9 */
5088c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TX_ER, TOP_REG0, 20, 2, 0x1c, 9,
5098c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* tx_er */
5108c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d7 */
5118c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio10 */
5128c2ecf20Sopenharmony_ci	TOP_PIN(GMII_TX_EN, TOP_REG0, 22, 2, 0x1c, 18,
5138c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* tx_en */
5148c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d8 */
5158c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio11 */
5168c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RX_CLK, TOP_REG0, 24, 2, 0x20, 0,
5178c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rx_clk */
5188c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d9 */
5198c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio12 */
5208c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD0, TOP_REG0, 26, 2, 0x20, 9,
5218c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd0 */
5228c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d10 */
5238c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio13 */
5248c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD1, TOP_REG0, 28, 2, 0x20, 18,
5258c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd1 */
5268c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI0"),		/* d11 */
5278c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio14 */
5288c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD2, TOP_REG0, 30, 2, 0x24, 0,
5298c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd2 */
5308c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* clk */
5318c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio15 */
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_ci	/* top_pmm_reg_1 */
5348c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD3, TOP_REG1, 0, 2, 0x24, 9,
5358c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd3 */
5368c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* hs */
5378c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio16 */
5388c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD4, TOP_REG1, 2, 2, 0x24, 18,
5398c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd4 */
5408c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* vs */
5418c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio17 */
5428c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD5, TOP_REG1, 4, 2, 0x28, 0,
5438c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd5 */
5448c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d0 */
5458c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio18 */
5468c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI0")),		/* dat0 */
5478c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD6, TOP_REG1, 6, 2, 0x28, 9,
5488c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd6 */
5498c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d1 */
5508c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio19 */
5518c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI0")),		/* clk */
5528c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RXD7, TOP_REG1, 8, 2, 0x28, 18,
5538c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rxd7 */
5548c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d2 */
5558c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio20 */
5568c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI0")),		/* sync */
5578c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RX_ER, TOP_REG1, 10, 2, 0x2c, 0,
5588c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rx_er */
5598c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d3 */
5608c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio21 */
5618c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI0")),		/* valid */
5628c2ecf20Sopenharmony_ci	TOP_PIN(GMII_RX_DV, TOP_REG1, 12, 2, 0x2c, 9,
5638c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* rx_dv */
5648c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d4 */
5658c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio22 */
5668c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI1")),		/* dat0 */
5678c2ecf20Sopenharmony_ci	TOP_PIN(GMII_COL, TOP_REG1, 14, 2, 0x2c, 18,
5688c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* col */
5698c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d5 */
5708c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio23 */
5718c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI1")),		/* clk */
5728c2ecf20Sopenharmony_ci	TOP_PIN(GMII_CRS, TOP_REG1, 16, 2, 0x30, 0,
5738c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* crs */
5748c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d6 */
5758c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio24 */
5768c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI1")),		/* sync */
5778c2ecf20Sopenharmony_ci	TOP_PIN(GMII_MDC, TOP_REG1, 18, 2, 0x30, 9,
5788c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* mdc */
5798c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "DVI1"),		/* d7 */
5808c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio25 */
5818c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "TSI1")),		/* valid */
5828c2ecf20Sopenharmony_ci	TOP_PIN(GMII_MDIO, TOP_REG1, 20, 1, 0x30, 18,
5838c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* mdio */
5848c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio26 */
5858c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_CLK, TOP_REG1, 21, 2, 0x34, 18,
5868c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* clk */
5878c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USIM0"),		/* clk */
5888c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio27 */
5898c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPINOR")),	/* clk */
5908c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_CMD, TOP_REG1, 23, 2, 0x38, 0,
5918c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* cmd */
5928c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USIM0"),		/* cd */
5938c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio28 */
5948c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPINOR")),	/* cs */
5958c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_DATA0, TOP_REG1, 25, 2, 0x38, 9,
5968c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* dat0 */
5978c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USIM0"),		/* rst */
5988c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio29 */
5998c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPINOR")),	/* dq0 */
6008c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_DATA1, TOP_REG1, 27, 2, 0x38, 18,
6018c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* dat1 */
6028c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USIM0"),		/* data */
6038c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio30 */
6048c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPINOR")),	/* dq1 */
6058c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_DATA2, TOP_REG1, 29, 2, 0x3c, 0,
6068c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* dat2 */
6078c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "BGPIO"),		/* gpio31 */
6088c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPINOR")),	/* dq2 */
6098c2ecf20Sopenharmony_ci
6108c2ecf20Sopenharmony_ci	/* top_pmm_reg_2 */
6118c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_DATA3, TOP_REG2, 0, 2, 0x3c, 9,
6128c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* dat3 */
6138c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "BGPIO"),		/* gpio32 */
6148c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPINOR")),	/* dq3 */
6158c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_CD, TOP_REG2, 2, 2, 0x3c, 18,
6168c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* cd */
6178c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "BGPIO"),		/* gpio33 */
6188c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "ISP")),		/* fl_trig */
6198c2ecf20Sopenharmony_ci	TOP_PIN(SDIO1_WP, TOP_REG2, 4, 2, 0x40, 0,
6208c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO1"),		/* wp */
6218c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "BGPIO"),		/* gpio34 */
6228c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "ISP")),		/* ref_clk */
6238c2ecf20Sopenharmony_ci	TOP_PIN(USIM1_CD, TOP_REG2, 22, 3, 0x44, 18,
6248c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "USIM1"),		/* cd */
6258c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART4"),		/* rxd */
6268c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio39 */
6278c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPI3"),		/* clk */
6288c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S0"),		/* bclk */
6298c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d8 */
6308c2ecf20Sopenharmony_ci	TOP_PIN(USIM1_CLK, TOP_REG2, 25, 3, 0x4c, 18,
6318c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "USIM1"),		/* clk */
6328c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART4"),		/* txd */
6338c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio40 */
6348c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPI3"),		/* cs */
6358c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S0"),		/* ws */
6368c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d9 */
6378c2ecf20Sopenharmony_ci	TOP_PIN(USIM1_RST, TOP_REG2, 28, 3, 0x4c, 0,
6388c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "USIM1"),		/* rst */
6398c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART4"),		/* cts */
6408c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio41 */
6418c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPI3"),		/* txd */
6428c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S0"),		/* dout0 */
6438c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d10 */
6448c2ecf20Sopenharmony_ci
6458c2ecf20Sopenharmony_ci	/* top_pmm_reg_3 */
6468c2ecf20Sopenharmony_ci	TOP_PIN(USIM1_DATA, TOP_REG3, 0, 3, 0x4c, 9,
6478c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "USIM1"),		/* dat */
6488c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART4"),		/* rst */
6498c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio42 */
6508c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "SPI3"),		/* rxd */
6518c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S0"),		/* din0 */
6528c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d11 */
6538c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_CLK, TOP_REG3, 6, 1, 0x58, 0,
6548c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* clk */
6558c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio43 */
6568c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_CMD, TOP_REG3, 7, 1, 0x58, 9,
6578c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* cmd */
6588c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio44 */
6598c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_DATA0, TOP_REG3, 8, 1, 0x58, 18,
6608c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* dat0 */
6618c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio45 */
6628c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_DATA1, TOP_REG3, 9, 1, 0x5c, 0,
6638c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* dat1 */
6648c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio46 */
6658c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_DATA2, TOP_REG3, 10, 1, 0x5c, 9,
6668c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* dat2 */
6678c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio47 */
6688c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_DATA3, TOP_REG3, 11, 1, 0x5c, 18,
6698c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* dat3 */
6708c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio48 */
6718c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_CD, TOP_REG3, 12, 1, 0x60, 0,
6728c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* cd */
6738c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio49 */
6748c2ecf20Sopenharmony_ci	TOP_PIN(SDIO0_WP, TOP_REG3, 13, 1, 0x60, 9,
6758c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SDIO0"),		/* wp */
6768c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "GPIO")),		/* gpio50 */
6778c2ecf20Sopenharmony_ci
6788c2ecf20Sopenharmony_ci	/* top_pmm_reg_4 */
6798c2ecf20Sopenharmony_ci	TOP_PIN(TSI0_DATA0, TOP_REG4, 0, 2, 0x60, 18,
6808c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI0"),		/* dat0 */
6818c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "LCD"),		/* clk */
6828c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO")),		/* gpio51 */
6838c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_CLK, TOP_REG4, 2, 2, 0xa8, 18,
6848c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* clk */
6858c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat1 */
6868c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat0 */
6878c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio52 */
6888c2ecf20Sopenharmony_ci	TOP_PIN(TSI2_DATA, TOP_REG4, 4, 2, 0x7c, 0,
6898c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI2"),		/* dat */
6908c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat2 */
6918c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat1 */
6928c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio53 */
6938c2ecf20Sopenharmony_ci	TOP_PIN(TSI2_CLK, TOP_REG4, 6, 2, 0x7c, 9,
6948c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI2"),		/* clk */
6958c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat3 */
6968c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat2 */
6978c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio54 */
6988c2ecf20Sopenharmony_ci	TOP_PIN(TSI2_SYNC, TOP_REG4, 8, 2, 0x7c, 18,
6998c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI2"),		/* sync */
7008c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat4 */
7018c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat3 */
7028c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio55 */
7038c2ecf20Sopenharmony_ci	TOP_PIN(TSI2_VALID, TOP_REG4, 10, 2, 0x80, 0,
7048c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI2"),		/* valid */
7058c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat5 */
7068c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat4 */
7078c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio56 */
7088c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_CS, TOP_REG4, 12, 2, 0x80, 9,
7098c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* cs */
7108c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat6 */
7118c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat5 */
7128c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio57 */
7138c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_DQ0, TOP_REG4, 14, 2, 0x80, 18,
7148c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* dq0 */
7158c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* dat7 */
7168c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat6 */
7178c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio58 */
7188c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_DQ1, TOP_REG4, 16, 2, 0x84, 0,
7198c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* dq1 */
7208c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* clk */
7218c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat7 */
7228c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio59 */
7238c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_DQ2, TOP_REG4, 18, 2, 0x84, 9,
7248c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* dq2 */
7258c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* sync */
7268c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat8 */
7278c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio60 */
7288c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_DQ3, TOP_REG4, 20, 2, 0x84, 18,
7298c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR"),		/* dq3 */
7308c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI0"),		/* valid */
7318c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat9 */
7328c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio61 */
7338c2ecf20Sopenharmony_ci	TOP_PIN(VGA_HS, TOP_REG4, 22, 3, 0x88, 0,
7348c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "VGA"),		/* hs */
7358c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat0 */
7368c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat10 */
7378c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio62 */
7388c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* din1 */
7398c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* clk */
7408c2ecf20Sopenharmony_ci	TOP_PIN(VGA_VS, TOP_REG4, 25, 3, 0x88, 9,
7418c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "VGA"),		/* vs0 */
7428c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat1 */
7438c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat11 */
7448c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio63 */
7458c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* din2 */
7468c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* vs */
7478c2ecf20Sopenharmony_ci	TOP_PIN(TSI3_DATA, TOP_REG4, 28, 3, 0x88, 18,
7488c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI3"),		/* dat */
7498c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat2 */
7508c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat12 */
7518c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio64 */
7528c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* din3 */
7538c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* hs */
7548c2ecf20Sopenharmony_ci
7558c2ecf20Sopenharmony_ci	/* top_pmm_reg_5 */
7568c2ecf20Sopenharmony_ci	TOP_PIN(TSI3_CLK, TOP_REG5, 0, 3, 0x8c, 0,
7578c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI3"),		/* clk */
7588c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat3 */
7598c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat13 */
7608c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio65 */
7618c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* dout1 */
7628c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d0 */
7638c2ecf20Sopenharmony_ci	TOP_PIN(TSI3_SYNC, TOP_REG5, 3, 3, 0x8c, 9,
7648c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI3"),		/* sync */
7658c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat4 */
7668c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat14 */
7678c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio66 */
7688c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* dout2 */
7698c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d1 */
7708c2ecf20Sopenharmony_ci	TOP_PIN(TSI3_VALID, TOP_REG5, 6, 3, 0x8c, 18,
7718c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "TSI3"),		/* valid */
7728c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat5 */
7738c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat15 */
7748c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio67 */
7758c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1"),		/* dout3 */
7768c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d2 */
7778c2ecf20Sopenharmony_ci	TOP_PIN(I2S1_WS, TOP_REG5, 9, 3, 0x90, 0,
7788c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S1"),		/* ws */
7798c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat6 */
7808c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat16 */
7818c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio68 */
7828c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "VGA"),		/* scl */
7838c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d3 */
7848c2ecf20Sopenharmony_ci	TOP_PIN(I2S1_BCLK, TOP_REG5, 12, 3, 0x90, 9,
7858c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S1"),		/* bclk */
7868c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* dat7 */
7878c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat17 */
7888c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio69 */
7898c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "VGA"),		/* sda */
7908c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI0")),	/* d4 */
7918c2ecf20Sopenharmony_ci	TOP_PIN(I2S1_MCLK, TOP_REG5, 15, 2, 0x90, 18,
7928c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S1"),		/* mclk */
7938c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* clk */
7948c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat18 */
7958c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio70 */
7968c2ecf20Sopenharmony_ci	TOP_PIN(I2S1_DIN0, TOP_REG5, 17, 2, 0x94, 0,
7978c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S1"),		/* din0 */
7988c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* sync */
7998c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat19 */
8008c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio71 */
8018c2ecf20Sopenharmony_ci	TOP_PIN(I2S1_DOUT0, TOP_REG5, 19, 2, 0x94, 9,
8028c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S1"),		/* dout0 */
8038c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSI1"),		/* valid */
8048c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat20 */
8058c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio72 */
8068c2ecf20Sopenharmony_ci	TOP_PIN(SPI3_CLK, TOP_REG5, 21, 3, 0x94, 18,
8078c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI3"),		/* clk */
8088c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* clk */
8098c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat21 */
8108c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio73 */
8118c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "UART5"),		/* rxd */
8128c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "PCM"),		/* fs */
8138c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "I2S0"),		/* din1 */
8148c2ecf20Sopenharmony_ci		TOP_MUX(0x7, "B_DVI0")),	/* d5 */
8158c2ecf20Sopenharmony_ci	TOP_PIN(SPI3_CS, TOP_REG5, 24, 3, 0x98, 0,
8168c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI3"),		/* cs */
8178c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat0 */
8188c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat22 */
8198c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio74 */
8208c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "UART5"),		/* txd */
8218c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "PCM"),		/* clk */
8228c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "I2S0"),		/* din2 */
8238c2ecf20Sopenharmony_ci		TOP_MUX(0x7, "B_DVI0")),	/* d6 */
8248c2ecf20Sopenharmony_ci	TOP_PIN(SPI3_TXD, TOP_REG5, 27, 3, 0x98, 9,
8258c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI3"),		/* txd */
8268c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat1 */
8278c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* dat23 */
8288c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio75 */
8298c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "UART5"),		/* cts */
8308c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "PCM"),		/* txd */
8318c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "I2S0"),		/* din3 */
8328c2ecf20Sopenharmony_ci		TOP_MUX(0x7, "B_DVI0")),	/* d7 */
8338c2ecf20Sopenharmony_ci	TOP_PIN(NAND_LDO_MS18_SEL, TOP_REG5, 30, 1, 0xe4, 0,
8348c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* ldo_ms18_sel */
8358c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "BGPIO")),		/* gpio99 */
8368c2ecf20Sopenharmony_ci
8378c2ecf20Sopenharmony_ci	/* top_pmm_reg_6 */
8388c2ecf20Sopenharmony_ci	TOP_PIN(SPI3_RXD, TOP_REG6, 0, 3, 0x98, 18,
8398c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI3"),		/* rxd */
8408c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat2 */
8418c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* stvu_vsync */
8428c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio76 */
8438c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "UART5"),		/* rts */
8448c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "PCM"),		/* rxd */
8458c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "I2S0"),		/* dout1 */
8468c2ecf20Sopenharmony_ci		TOP_MUX(0x7, "B_DVI1")),	/* clk */
8478c2ecf20Sopenharmony_ci	TOP_PIN(I2S0_MCLK, TOP_REG6, 3, 3, 0x9c, 0,
8488c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S0"),		/* mclk */
8498c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat3 */
8508c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* stvd */
8518c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio77 */
8528c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "USIM0"),		/* cd */
8538c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* vs */
8548c2ecf20Sopenharmony_ci	TOP_PIN(I2S0_BCLK, TOP_REG6, 6, 3, 0x9c, 9,
8558c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S0"),		/* bclk */
8568c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat4 */
8578c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* sthl_hsync */
8588c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio78 */
8598c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "USIM0"),		/* clk */
8608c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* hs */
8618c2ecf20Sopenharmony_ci	TOP_PIN(I2S0_WS, TOP_REG6, 9, 3, 0x9c, 18,
8628c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S0"),		/* ws */
8638c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat5 */
8648c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* sthr */
8658c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio79 */
8668c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "USIM0"),		/* rst */
8678c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d0 */
8688c2ecf20Sopenharmony_ci	TOP_PIN(I2S0_DIN0, TOP_REG6, 12, 3, 0xa0, 0,
8698c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S0"),		/* din0 */
8708c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat6 */
8718c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* oev_dataen */
8728c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio80 */
8738c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "USIM0"),		/* dat */
8748c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d1 */
8758c2ecf20Sopenharmony_ci	TOP_PIN(I2S0_DOUT0, TOP_REG6, 15, 2, 0xa0, 9,
8768c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2S0"),		/* dout0 */
8778c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* dat7 */
8788c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* ckv */
8798c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio81 */
8808c2ecf20Sopenharmony_ci	TOP_PIN(I2C5_SCL, TOP_REG6, 17, 3, 0xa0, 18,
8818c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2C5"),		/* scl */
8828c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* sync */
8838c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* ld */
8848c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio82 */
8858c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "PWM"),		/* out2 */
8868c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S0"),		/* dout2 */
8878c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "B_DVI1")),	/* d2 */
8888c2ecf20Sopenharmony_ci	TOP_PIN(I2C5_SDA, TOP_REG6, 20, 3, 0xa4, 0,
8898c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "I2C5"),		/* sda */
8908c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO1"),		/* vld */
8918c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* pol */
8928c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio83 */
8938c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "PWM"),		/* out3 */
8948c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S0"),		/* dout3 */
8958c2ecf20Sopenharmony_ci		TOP_MUX(0x6, "B_DVI1")),	/* d3 */
8968c2ecf20Sopenharmony_ci	TOP_PIN(SPI2_CLK, TOP_REG6, 23, 3, 0xa4, 9,
8978c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI2"),		/* clk */
8988c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO0"),		/* clk */
8998c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* degsl */
9008c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio84 */
9018c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2C4"),		/* scl */
9028c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d4 */
9038c2ecf20Sopenharmony_ci	TOP_PIN(SPI2_CS, TOP_REG6, 26, 3, 0xa4, 18,
9048c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI2"),		/* cs */
9058c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO0"),		/* data */
9068c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* rev */
9078c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio85 */
9088c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2C4"),		/* sda */
9098c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d5 */
9108c2ecf20Sopenharmony_ci	TOP_PIN(SPI2_TXD, TOP_REG6, 29, 3, 0xa8, 0,
9118c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI2"),		/* txd */
9128c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO0"),		/* sync */
9138c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* u_d */
9148c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio86 */
9158c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2C4"),		/* scl */
9168c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d6 */
9178c2ecf20Sopenharmony_ci
9188c2ecf20Sopenharmony_ci	/* top_pmm_reg_7 */
9198c2ecf20Sopenharmony_ci	TOP_PIN(SPI2_RXD, TOP_REG7, 0, 3, 0xa8, 9,
9208c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPI2"),		/* rxd */
9218c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "TSO0"),		/* vld */
9228c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "LCD"),		/* r_l */
9238c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio87 */
9248c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2C3"),		/* sda */
9258c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "B_DVI1")),	/* d7 */
9268c2ecf20Sopenharmony_ci	TOP_PIN(NAND_WP_N, TOP_REG7, 7, 3, 0x54, 9,
9278c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* wp */
9288c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PWM"),		/* out2 */
9298c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPI2"),		/* clk */
9308c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio88 */
9318c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI0"),		/* dat0 */
9328c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S1")),		/* din1 */
9338c2ecf20Sopenharmony_ci	TOP_PIN(NAND_PAGE_SIZE0, TOP_REG7, 10, 3, 0xb8, 0,
9348c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* boot_pagesize0 */
9358c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "PWM"),		/* out3 */
9368c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPI2"),		/* cs */
9378c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio89 */
9388c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI0"),		/* clk */
9398c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S1")),		/* din2 */
9408c2ecf20Sopenharmony_ci	TOP_PIN(NAND_PAGE_SIZE1, TOP_REG7, 13, 3, 0xb8, 9,
9418c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* boot_pagesize1 */
9428c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2C4"),		/* scl */
9438c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPI2"),		/* txd */
9448c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio90 */
9458c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI0"),		/* sync */
9468c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S1")),		/* din3 */
9478c2ecf20Sopenharmony_ci	TOP_PIN(NAND_ADDR_CYCLE, TOP_REG7, 16, 3, 0xb8, 18,
9488c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* boot_addr_cycles */
9498c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2C4"),		/* sda */
9508c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "SPI2"),		/* rxd */
9518c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio91 */
9528c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI0"),		/* valid */
9538c2ecf20Sopenharmony_ci		TOP_MUX(0x5, "I2S1")),		/* dout1 */
9548c2ecf20Sopenharmony_ci	TOP_PIN(NAND_RB0, TOP_REG7, 19, 3, 0xbc, 0,
9558c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* rdy_busy0 */
9568c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2C2"),		/* scl */
9578c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "USIM0"),		/* cd */
9588c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio92 */
9598c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI1")),		/* data0 */
9608c2ecf20Sopenharmony_ci	TOP_PIN(NAND_RB1, TOP_REG7, 22, 3, 0xbc, 9,
9618c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* rdy_busy1 */
9628c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "I2C2"),		/* sda */
9638c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "USIM0"),		/* clk */
9648c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio93 */
9658c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI1")),		/* clk */
9668c2ecf20Sopenharmony_ci	TOP_PIN(NAND_RB2, TOP_REG7, 25, 3, 0xbc, 18,
9678c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* rdy_busy2 */
9688c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART5"),		/* rxd */
9698c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "USIM0"),		/* rst */
9708c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio94 */
9718c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI1"),		/* sync */
9728c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1")),		/* dout2 */
9738c2ecf20Sopenharmony_ci	TOP_PIN(NAND_RB3, TOP_REG7, 28, 3, 0x54, 18,
9748c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "NAND"),		/* rdy_busy3 */
9758c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "UART5"),		/* txd */
9768c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "USIM0"),		/* dat */
9778c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO"),		/* gpio95 */
9788c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "TSI1"),		/* valid */
9798c2ecf20Sopenharmony_ci		TOP_MUX(0x4, "I2S1")),		/* dout3 */
9808c2ecf20Sopenharmony_ci
9818c2ecf20Sopenharmony_ci	/* top_pmm_reg_8 */
9828c2ecf20Sopenharmony_ci	TOP_PIN(GMAC_125M_IN, TOP_REG8, 0, 2, 0x34, 0,
9838c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* 125m_in */
9848c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USB2"),		/* 0_drvvbus */
9858c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "ISP"),		/* ref_clk */
9868c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "BGPIO")),		/* gpio96 */
9878c2ecf20Sopenharmony_ci	TOP_PIN(GMAC_50M_OUT, TOP_REG8, 2, 2, 0x34, 9,
9888c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "GMII"),		/* 50m_out */
9898c2ecf20Sopenharmony_ci		TOP_MUX(0x1, "USB2"),		/* 1_drvvbus */
9908c2ecf20Sopenharmony_ci		TOP_MUX(0x2, "BGPIO"),		/* gpio97 */
9918c2ecf20Sopenharmony_ci		TOP_MUX(0x3, "USB2")),		/* 0_drvvbus */
9928c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_SSCLK_LOOPBACK, TOP_REG8, 6, 1, 0xc8, 9,
9938c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR")),	/* sdio1_clk_i */
9948c2ecf20Sopenharmony_ci	TOP_PIN(SPINOR_SDIO1CLK_LOOPBACK, TOP_REG8, 7, 1, 0xc8, 18,
9958c2ecf20Sopenharmony_ci		TOP_MUX(0x0, "SPINOR")),	/* ssclk_i */
9968c2ecf20Sopenharmony_ci};
9978c2ecf20Sopenharmony_ci
9988c2ecf20Sopenharmony_cistatic struct zx_pinctrl_soc_info zx296718_pinctrl_info = {
9998c2ecf20Sopenharmony_ci	.pins = zx296718_pins,
10008c2ecf20Sopenharmony_ci	.npins = ARRAY_SIZE(zx296718_pins),
10018c2ecf20Sopenharmony_ci};
10028c2ecf20Sopenharmony_ci
10038c2ecf20Sopenharmony_cistatic int zx296718_pinctrl_probe(struct platform_device *pdev)
10048c2ecf20Sopenharmony_ci{
10058c2ecf20Sopenharmony_ci	return zx_pinctrl_init(pdev, &zx296718_pinctrl_info);
10068c2ecf20Sopenharmony_ci}
10078c2ecf20Sopenharmony_ci
10088c2ecf20Sopenharmony_cistatic const struct of_device_id zx296718_pinctrl_match[] = {
10098c2ecf20Sopenharmony_ci	{ .compatible = "zte,zx296718-pmm", },
10108c2ecf20Sopenharmony_ci	{}
10118c2ecf20Sopenharmony_ci};
10128c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, zx296718_pinctrl_match);
10138c2ecf20Sopenharmony_ci
10148c2ecf20Sopenharmony_cistatic struct platform_driver zx296718_pinctrl_driver = {
10158c2ecf20Sopenharmony_ci	.probe  = zx296718_pinctrl_probe,
10168c2ecf20Sopenharmony_ci	.driver = {
10178c2ecf20Sopenharmony_ci		.name = "zx296718-pinctrl",
10188c2ecf20Sopenharmony_ci		.of_match_table = zx296718_pinctrl_match,
10198c2ecf20Sopenharmony_ci	},
10208c2ecf20Sopenharmony_ci};
10218c2ecf20Sopenharmony_cibuiltin_platform_driver(zx296718_pinctrl_driver);
10228c2ecf20Sopenharmony_ci
10238c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("ZTE ZX296718 pinctrl driver");
10248c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL");
1025