| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * Sophgo SG2000 SoC pinctrl driver.
- *
- * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
- *
- * This file is generated from vendor pinout definition.
- */
- #include <linux/module.h>
- #include <linux/platform_device.h>
- #include <linux/of.h>
- #include <linux/pinctrl/pinctrl.h>
- #include <linux/pinctrl/pinmux.h>
- #include <dt-bindings/pinctrl/pinctrl-sg2000.h>
- #include "pinctrl-cv18xx.h"
- enum SG2000_POWER_DOMAIN {
- VDD18A_EPHY = 0,
- VDD18A_MIPI = 1,
- VDDIO18_1 = 2,
- VDDIO_EMMC = 3,
- VDDIO_RTC = 4,
- VDDIO_SD0 = 5,
- VDDIO_SD1 = 6,
- VDDIO_VIVO = 7
- };
- static const char *const sg2000_power_domain_desc[] = {
- [VDD18A_EPHY] = "VDD18A_EPHY",
- [VDD18A_MIPI] = "VDD18A_MIPI",
- [VDDIO18_1] = "VDDIO18_1",
- [VDDIO_EMMC] = "VDDIO_EMMC",
- [VDDIO_RTC] = "VDDIO_RTC",
- [VDDIO_SD0] = "VDDIO_SD0",
- [VDDIO_SD1] = "VDDIO_SD1",
- [VDDIO_VIVO] = "VDDIO_VIVO",
- };
- static int sg2000_get_pull_up(const struct sophgo_pin *sp, const u32 *psmap)
- {
- const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
- u32 pstate = psmap[pin->power_domain];
- enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
- if (type == IO_TYPE_1V8_ONLY)
- return 79000;
- if (type == IO_TYPE_1V8_OR_3V3) {
- if (pstate == PIN_POWER_STATE_1V8)
- return 60000;
- if (pstate == PIN_POWER_STATE_3V3)
- return 60000;
- return -EINVAL;
- }
- return -ENOTSUPP;
- }
- static int sg2000_get_pull_down(const struct sophgo_pin *sp, const u32 *psmap)
- {
- const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
- u32 pstate = psmap[pin->power_domain];
- enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
- if (type == IO_TYPE_1V8_ONLY)
- return 87000;
- if (type == IO_TYPE_1V8_OR_3V3) {
- if (pstate == PIN_POWER_STATE_1V8)
- return 61000;
- if (pstate == PIN_POWER_STATE_3V3)
- return 62000;
- return -EINVAL;
- }
- return -ENOTSUPP;
- }
- static const u32 sg2000_1v8_oc_map[] = {
- 12800,
- 25300,
- 37400,
- 49000
- };
- static const u32 sg2000_18od33_1v8_oc_map[] = {
- 7800,
- 11700,
- 15500,
- 19200,
- 23000,
- 26600,
- 30200,
- 33700
- };
- static const u32 sg2000_18od33_3v3_oc_map[] = {
- 5500,
- 8200,
- 10800,
- 13400,
- 16100,
- 18700,
- 21200,
- 23700
- };
- static const u32 sg2000_eth_oc_map[] = {
- 15700,
- 17800
- };
- static int sg2000_get_oc_map(const struct sophgo_pin *sp, const u32 *psmap,
- const u32 **map)
- {
- const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
- enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
- u32 pstate = psmap[pin->power_domain];
- if (type == IO_TYPE_1V8_ONLY) {
- *map = sg2000_1v8_oc_map;
- return ARRAY_SIZE(sg2000_1v8_oc_map);
- }
- if (type == IO_TYPE_1V8_OR_3V3) {
- if (pstate == PIN_POWER_STATE_1V8) {
- *map = sg2000_18od33_1v8_oc_map;
- return ARRAY_SIZE(sg2000_18od33_1v8_oc_map);
- } else if (pstate == PIN_POWER_STATE_3V3) {
- *map = sg2000_18od33_3v3_oc_map;
- return ARRAY_SIZE(sg2000_18od33_3v3_oc_map);
- }
- }
- if (type == IO_TYPE_ETH) {
- *map = sg2000_eth_oc_map;
- return ARRAY_SIZE(sg2000_eth_oc_map);
- }
- return -ENOTSUPP;
- }
- static const u32 sg2000_1v8_schmitt_map[] = {
- 0,
- 970000,
- 1040000
- };
- static const u32 sg2000_18od33_1v8_schmitt_map[] = {
- 0,
- 1070000
- };
- static const u32 sg2000_18od33_3v3_schmitt_map[] = {
- 0,
- 1100000
- };
- static int sg2000_get_schmitt_map(const struct sophgo_pin *sp, const u32 *psmap,
- const u32 **map)
- {
- const struct cv1800_pin *pin = sophgo_to_cv1800_pin(sp);
- enum cv1800_pin_io_type type = cv1800_pin_io_type(pin);
- u32 pstate = psmap[pin->power_domain];
- if (type == IO_TYPE_1V8_ONLY) {
- *map = sg2000_1v8_schmitt_map;
- return ARRAY_SIZE(sg2000_1v8_schmitt_map);
- }
- if (type == IO_TYPE_1V8_OR_3V3) {
- if (pstate == PIN_POWER_STATE_1V8) {
- *map = sg2000_18od33_1v8_schmitt_map;
- return ARRAY_SIZE(sg2000_18od33_1v8_schmitt_map);
- } else if (pstate == PIN_POWER_STATE_3V3) {
- *map = sg2000_18od33_3v3_schmitt_map;
- return ARRAY_SIZE(sg2000_18od33_3v3_schmitt_map);
- }
- }
- return -ENOTSUPP;
- }
- static const struct sophgo_vddio_cfg_ops sg2000_vddio_cfg_ops = {
- .get_pull_up = sg2000_get_pull_up,
- .get_pull_down = sg2000_get_pull_down,
- .get_oc_map = sg2000_get_oc_map,
- .get_schmitt_map = sg2000_get_schmitt_map,
- };
- static const struct pinctrl_pin_desc sg2000_pins[] = {
- PINCTRL_PIN(PIN_MIPI_TXM4, "MIPI_TXM4"),
- PINCTRL_PIN(PIN_MIPIRX0N, "MIPIRX0N"),
- PINCTRL_PIN(PIN_MIPIRX3P, "MIPIRX3P"),
- PINCTRL_PIN(PIN_MIPIRX4P, "MIPIRX4P"),
- PINCTRL_PIN(PIN_VIVO_D2, "VIVO_D2"),
- PINCTRL_PIN(PIN_VIVO_D3, "VIVO_D3"),
- PINCTRL_PIN(PIN_VIVO_D10, "VIVO_D10"),
- PINCTRL_PIN(PIN_USB_VBUS_DET, "USB_VBUS_DET"),
- PINCTRL_PIN(PIN_MIPI_TXP3, "MIPI_TXP3"),
- PINCTRL_PIN(PIN_MIPI_TXM3, "MIPI_TXM3"),
- PINCTRL_PIN(PIN_MIPI_TXP4, "MIPI_TXP4"),
- PINCTRL_PIN(PIN_MIPIRX0P, "MIPIRX0P"),
- PINCTRL_PIN(PIN_MIPIRX1N, "MIPIRX1N"),
- PINCTRL_PIN(PIN_MIPIRX2N, "MIPIRX2N"),
- PINCTRL_PIN(PIN_MIPIRX4N, "MIPIRX4N"),
- PINCTRL_PIN(PIN_MIPIRX5N, "MIPIRX5N"),
- PINCTRL_PIN(PIN_VIVO_D1, "VIVO_D1"),
- PINCTRL_PIN(PIN_VIVO_D5, "VIVO_D5"),
- PINCTRL_PIN(PIN_VIVO_D7, "VIVO_D7"),
- PINCTRL_PIN(PIN_VIVO_D9, "VIVO_D9"),
- PINCTRL_PIN(PIN_USB_ID, "USB_ID"),
- PINCTRL_PIN(PIN_ETH_RXM, "ETH_RXM"),
- PINCTRL_PIN(PIN_MIPI_TXP2, "MIPI_TXP2"),
- PINCTRL_PIN(PIN_MIPI_TXM2, "MIPI_TXM2"),
- PINCTRL_PIN(PIN_CAM_PD0, "CAM_PD0"),
- PINCTRL_PIN(PIN_CAM_MCLK0, "CAM_MCLK0"),
- PINCTRL_PIN(PIN_MIPIRX1P, "MIPIRX1P"),
- PINCTRL_PIN(PIN_MIPIRX2P, "MIPIRX2P"),
- PINCTRL_PIN(PIN_MIPIRX3N, "MIPIRX3N"),
- PINCTRL_PIN(PIN_MIPIRX5P, "MIPIRX5P"),
- PINCTRL_PIN(PIN_VIVO_CLK, "VIVO_CLK"),
- PINCTRL_PIN(PIN_VIVO_D6, "VIVO_D6"),
- PINCTRL_PIN(PIN_VIVO_D8, "VIVO_D8"),
- PINCTRL_PIN(PIN_USB_VBUS_EN, "USB_VBUS_EN"),
- PINCTRL_PIN(PIN_ETH_RXP, "ETH_RXP"),
- PINCTRL_PIN(PIN_GPIO_RTX, "GPIO_RTX"),
- PINCTRL_PIN(PIN_MIPI_TXP1, "MIPI_TXP1"),
- PINCTRL_PIN(PIN_MIPI_TXM1, "MIPI_TXM1"),
- PINCTRL_PIN(PIN_CAM_MCLK1, "CAM_MCLK1"),
- PINCTRL_PIN(PIN_IIC3_SCL, "IIC3_SCL"),
- PINCTRL_PIN(PIN_VIVO_D4, "VIVO_D4"),
- PINCTRL_PIN(PIN_ETH_TXM, "ETH_TXM"),
- PINCTRL_PIN(PIN_ETH_TXP, "ETH_TXP"),
- PINCTRL_PIN(PIN_MIPI_TXP0, "MIPI_TXP0"),
- PINCTRL_PIN(PIN_MIPI_TXM0, "MIPI_TXM0"),
- PINCTRL_PIN(PIN_CAM_PD1, "CAM_PD1"),
- PINCTRL_PIN(PIN_CAM_RST0, "CAM_RST0"),
- PINCTRL_PIN(PIN_VIVO_D0, "VIVO_D0"),
- PINCTRL_PIN(PIN_ADC1, "ADC1"),
- PINCTRL_PIN(PIN_ADC2, "ADC2"),
- PINCTRL_PIN(PIN_ADC3, "ADC3"),
- PINCTRL_PIN(PIN_AUD_AOUTL, "AUD_AOUTL"),
- PINCTRL_PIN(PIN_IIC3_SDA, "IIC3_SDA"),
- PINCTRL_PIN(PIN_SD1_D2, "SD1_D2"),
- PINCTRL_PIN(PIN_AUD_AOUTR, "AUD_AOUTR"),
- PINCTRL_PIN(PIN_SD1_D3, "SD1_D3"),
- PINCTRL_PIN(PIN_SD1_CLK, "SD1_CLK"),
- PINCTRL_PIN(PIN_SD1_CMD, "SD1_CMD"),
- PINCTRL_PIN(PIN_AUD_AINL_MIC, "AUD_AINL_MIC"),
- PINCTRL_PIN(PIN_RSTN, "RSTN"),
- PINCTRL_PIN(PIN_PWM0_BUCK, "PWM0_BUCK"),
- PINCTRL_PIN(PIN_SD1_D1, "SD1_D1"),
- PINCTRL_PIN(PIN_SD1_D0, "SD1_D0"),
- PINCTRL_PIN(PIN_AUD_AINR_MIC, "AUD_AINR_MIC"),
- PINCTRL_PIN(PIN_IIC2_SCL, "IIC2_SCL"),
- PINCTRL_PIN(PIN_IIC2_SDA, "IIC2_SDA"),
- PINCTRL_PIN(PIN_SD0_CD, "SD0_CD"),
- PINCTRL_PIN(PIN_SD0_D1, "SD0_D1"),
- PINCTRL_PIN(PIN_UART2_RX, "UART2_RX"),
- PINCTRL_PIN(PIN_UART2_CTS, "UART2_CTS"),
- PINCTRL_PIN(PIN_UART2_TX, "UART2_TX"),
- PINCTRL_PIN(PIN_SD0_CLK, "SD0_CLK"),
- PINCTRL_PIN(PIN_SD0_D0, "SD0_D0"),
- PINCTRL_PIN(PIN_SD0_CMD, "SD0_CMD"),
- PINCTRL_PIN(PIN_CLK32K, "CLK32K"),
- PINCTRL_PIN(PIN_UART2_RTS, "UART2_RTS"),
- PINCTRL_PIN(PIN_SD0_D3, "SD0_D3"),
- PINCTRL_PIN(PIN_SD0_D2, "SD0_D2"),
- PINCTRL_PIN(PIN_UART0_RX, "UART0_RX"),
- PINCTRL_PIN(PIN_UART0_TX, "UART0_TX"),
- PINCTRL_PIN(PIN_JTAG_CPU_TRST, "JTAG_CPU_TRST"),
- PINCTRL_PIN(PIN_PWR_ON, "PWR_ON"),
- PINCTRL_PIN(PIN_PWR_GPIO2, "PWR_GPIO2"),
- PINCTRL_PIN(PIN_PWR_GPIO0, "PWR_GPIO0"),
- PINCTRL_PIN(PIN_CLK25M, "CLK25M"),
- PINCTRL_PIN(PIN_SD0_PWR_EN, "SD0_PWR_EN"),
- PINCTRL_PIN(PIN_SPK_EN, "SPK_EN"),
- PINCTRL_PIN(PIN_JTAG_CPU_TCK, "JTAG_CPU_TCK"),
- PINCTRL_PIN(PIN_JTAG_CPU_TMS, "JTAG_CPU_TMS"),
- PINCTRL_PIN(PIN_PWR_WAKEUP1, "PWR_WAKEUP1"),
- PINCTRL_PIN(PIN_PWR_WAKEUP0, "PWR_WAKEUP0"),
- PINCTRL_PIN(PIN_PWR_GPIO1, "PWR_GPIO1"),
- PINCTRL_PIN(PIN_EMMC_DAT3, "EMMC_DAT3"),
- PINCTRL_PIN(PIN_EMMC_DAT0, "EMMC_DAT0"),
- PINCTRL_PIN(PIN_EMMC_DAT2, "EMMC_DAT2"),
- PINCTRL_PIN(PIN_EMMC_RSTN, "EMMC_RSTN"),
- PINCTRL_PIN(PIN_AUX0, "AUX0"),
- PINCTRL_PIN(PIN_IIC0_SDA, "IIC0_SDA"),
- PINCTRL_PIN(PIN_PWR_SEQ3, "PWR_SEQ3"),
- PINCTRL_PIN(PIN_PWR_VBAT_DET, "PWR_VBAT_DET"),
- PINCTRL_PIN(PIN_PWR_SEQ1, "PWR_SEQ1"),
- PINCTRL_PIN(PIN_PWR_BUTTON1, "PWR_BUTTON1"),
- PINCTRL_PIN(PIN_EMMC_DAT1, "EMMC_DAT1"),
- PINCTRL_PIN(PIN_EMMC_CMD, "EMMC_CMD"),
- PINCTRL_PIN(PIN_EMMC_CLK, "EMMC_CLK"),
- PINCTRL_PIN(PIN_IIC0_SCL, "IIC0_SCL"),
- PINCTRL_PIN(PIN_GPIO_ZQ, "GPIO_ZQ"),
- PINCTRL_PIN(PIN_PWR_RSTN, "PWR_RSTN"),
- PINCTRL_PIN(PIN_PWR_SEQ2, "PWR_SEQ2"),
- PINCTRL_PIN(PIN_XTAL_XIN, "XTAL_XIN"),
- };
- static const struct cv1800_pin sg2000_pin_data[ARRAY_SIZE(sg2000_pins)] = {
- CV1800_GENERAL_PIN(PIN_MIPI_TXM4, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x194, 7,
- CV1800_PINCONF_AREA_SYS, 0xc60),
- CV1800_GENERAL_PIN(PIN_MIPIRX0N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x18c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc58),
- CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX3P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x178, 7,
- CV1800_PINCONF_AREA_SYS, 0x118, 7,
- CV1800_PINCONF_AREA_SYS, 0xc44),
- CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX4P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x170, 7,
- CV1800_PINCONF_AREA_SYS, 0x11c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc3c),
- CV1800_GENERAL_PIN(PIN_VIVO_D2, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x154, 7,
- CV1800_PINCONF_AREA_SYS, 0xc20),
- CV1800_GENERAL_PIN(PIN_VIVO_D3, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x150, 7,
- CV1800_PINCONF_AREA_SYS, 0xc1c),
- CV1800_GENERAL_PIN(PIN_VIVO_D10, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x134, 7,
- CV1800_PINCONF_AREA_SYS, 0xc00),
- CV1800_GENERAL_PIN(PIN_USB_VBUS_DET, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x108, 5,
- CV1800_PINCONF_AREA_SYS, 0x820),
- CV1800_GENERAL_PIN(PIN_MIPI_TXP3, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1a0, 7,
- CV1800_PINCONF_AREA_SYS, 0xc6c),
- CV1800_GENERAL_PIN(PIN_MIPI_TXM3, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x19c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc68),
- CV1800_GENERAL_PIN(PIN_MIPI_TXP4, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x198, 7,
- CV1800_PINCONF_AREA_SYS, 0xc64),
- CV1800_GENERAL_PIN(PIN_MIPIRX0P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x190, 7,
- CV1800_PINCONF_AREA_SYS, 0xc5c),
- CV1800_GENERAL_PIN(PIN_MIPIRX1N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x184, 7,
- CV1800_PINCONF_AREA_SYS, 0xc50),
- CV1800_GENERAL_PIN(PIN_MIPIRX2N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x17c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc48),
- CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX4N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x16c, 7,
- CV1800_PINCONF_AREA_SYS, 0x120, 7,
- CV1800_PINCONF_AREA_SYS, 0xc38),
- CV1800_GENERAL_PIN(PIN_MIPIRX5N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x164, 7,
- CV1800_PINCONF_AREA_SYS, 0xc30),
- CV1800_GENERAL_PIN(PIN_VIVO_D1, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x158, 7,
- CV1800_PINCONF_AREA_SYS, 0xc24),
- CV1800_GENERAL_PIN(PIN_VIVO_D5, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x148, 7,
- CV1800_PINCONF_AREA_SYS, 0xc14),
- CV1800_GENERAL_PIN(PIN_VIVO_D7, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x140, 7,
- CV1800_PINCONF_AREA_SYS, 0xc0c),
- CV1800_GENERAL_PIN(PIN_VIVO_D9, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x138, 7,
- CV1800_PINCONF_AREA_SYS, 0xc04),
- CV1800_GENERAL_PIN(PIN_USB_ID, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0fc, 3,
- CV1800_PINCONF_AREA_SYS, 0x814),
- CV1800_FUNC_PIN(PIN_ETH_RXM, VDD18A_EPHY,
- IO_TYPE_ETH,
- CV1800_PINCONF_AREA_SYS, 0x130, 7),
- CV1800_GENERAL_PIN(PIN_MIPI_TXP2, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1a8, 7,
- CV1800_PINCONF_AREA_SYS, 0xc74),
- CV1800_GENERAL_PIN(PIN_MIPI_TXM2, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1a4, 7,
- CV1800_PINCONF_AREA_SYS, 0xc70),
- CV1800_GENERAL_PIN(PIN_CAM_PD0, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x004, 4,
- CV1800_PINCONF_AREA_SYS, 0xb04),
- CV1800_GENERAL_PIN(PIN_CAM_MCLK0, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x000, 3,
- CV1800_PINCONF_AREA_SYS, 0xb00),
- CV1800_GENERAL_PIN(PIN_MIPIRX1P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x188, 7,
- CV1800_PINCONF_AREA_SYS, 0xc54),
- CV1800_GENERAL_PIN(PIN_MIPIRX2P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x180, 7,
- CV1800_PINCONF_AREA_SYS, 0xc4c),
- CV1800_GENERATE_PIN_MUX2(PIN_MIPIRX3N, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x174, 7,
- CV1800_PINCONF_AREA_SYS, 0x114, 7,
- CV1800_PINCONF_AREA_SYS, 0xc40),
- CV1800_GENERAL_PIN(PIN_MIPIRX5P, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x168, 7,
- CV1800_PINCONF_AREA_SYS, 0xc34),
- CV1800_GENERAL_PIN(PIN_VIVO_CLK, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x160, 7,
- CV1800_PINCONF_AREA_SYS, 0xc2c),
- CV1800_GENERAL_PIN(PIN_VIVO_D6, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x144, 7,
- CV1800_PINCONF_AREA_SYS, 0xc10),
- CV1800_GENERAL_PIN(PIN_VIVO_D8, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x13c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc08),
- CV1800_GENERAL_PIN(PIN_USB_VBUS_EN, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x100, 3,
- CV1800_PINCONF_AREA_SYS, 0x818),
- CV1800_FUNC_PIN(PIN_ETH_RXP, VDD18A_EPHY,
- IO_TYPE_ETH,
- CV1800_PINCONF_AREA_SYS, 0x12c, 7),
- CV1800_GENERAL_PIN(PIN_GPIO_RTX, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1cc, 5,
- CV1800_PINCONF_AREA_SYS, 0xc8c),
- CV1800_GENERAL_PIN(PIN_MIPI_TXP1, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1b0, 7,
- CV1800_PINCONF_AREA_SYS, 0xc7c),
- CV1800_GENERAL_PIN(PIN_MIPI_TXM1, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1ac, 7,
- CV1800_PINCONF_AREA_SYS, 0xc78),
- CV1800_GENERAL_PIN(PIN_CAM_MCLK1, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x00c, 4,
- CV1800_PINCONF_AREA_SYS, 0xb0c),
- CV1800_GENERAL_PIN(PIN_IIC3_SCL, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x014, 3,
- CV1800_PINCONF_AREA_SYS, 0xb14),
- CV1800_GENERAL_PIN(PIN_VIVO_D4, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x14c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc18),
- CV1800_FUNC_PIN(PIN_ETH_TXM, VDD18A_EPHY,
- IO_TYPE_ETH,
- CV1800_PINCONF_AREA_SYS, 0x128, 7),
- CV1800_FUNC_PIN(PIN_ETH_TXP, VDD18A_EPHY,
- IO_TYPE_ETH,
- CV1800_PINCONF_AREA_SYS, 0x124, 7),
- CV1800_GENERAL_PIN(PIN_MIPI_TXP0, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1b8, 7,
- CV1800_PINCONF_AREA_SYS, 0xc84),
- CV1800_GENERAL_PIN(PIN_MIPI_TXM0, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1b4, 7,
- CV1800_PINCONF_AREA_SYS, 0xc80),
- CV1800_GENERAL_PIN(PIN_CAM_PD1, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x010, 6,
- CV1800_PINCONF_AREA_SYS, 0xb10),
- CV1800_GENERAL_PIN(PIN_CAM_RST0, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x008, 6,
- CV1800_PINCONF_AREA_SYS, 0xb08),
- CV1800_GENERAL_PIN(PIN_VIVO_D0, VDDIO_VIVO,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x15c, 7,
- CV1800_PINCONF_AREA_SYS, 0xc28),
- CV1800_GENERAL_PIN(PIN_ADC1, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0f8, 4,
- CV1800_PINCONF_AREA_SYS, 0x810),
- CV1800_GENERAL_PIN(PIN_ADC2, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0f4, 7,
- CV1800_PINCONF_AREA_SYS, 0x80c),
- CV1800_GENERAL_PIN(PIN_ADC3, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0f0, 7,
- CV1800_PINCONF_AREA_SYS, 0x808),
- CV1800_FUNC_PIN(PIN_AUD_AOUTL, VDD18A_MIPI,
- IO_TYPE_AUDIO,
- CV1800_PINCONF_AREA_SYS, 0x1c4, 5),
- CV1800_GENERAL_PIN(PIN_IIC3_SDA, VDD18A_MIPI,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x018, 3,
- CV1800_PINCONF_AREA_SYS, 0xb18),
- CV1800_GENERAL_PIN(PIN_SD1_D2, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0d4, 7,
- CV1800_PINCONF_AREA_RTC, 0x05c),
- CV1800_FUNC_PIN(PIN_AUD_AOUTR, VDD18A_MIPI,
- IO_TYPE_AUDIO,
- CV1800_PINCONF_AREA_SYS, 0x1c8, 6),
- CV1800_GENERAL_PIN(PIN_SD1_D3, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0d0, 7,
- CV1800_PINCONF_AREA_RTC, 0x058),
- CV1800_GENERAL_PIN(PIN_SD1_CLK, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0e4, 7,
- CV1800_PINCONF_AREA_RTC, 0x06c),
- CV1800_GENERAL_PIN(PIN_SD1_CMD, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0e0, 7,
- CV1800_PINCONF_AREA_RTC, 0x068),
- CV1800_FUNC_PIN(PIN_AUD_AINL_MIC, VDD18A_MIPI,
- IO_TYPE_AUDIO,
- CV1800_PINCONF_AREA_SYS, 0x1bc, 5),
- CV1800_GENERAL_PIN(PIN_RSTN, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0e8, 0,
- CV1800_PINCONF_AREA_SYS, 0x800),
- CV1800_GENERAL_PIN(PIN_PWM0_BUCK, VDDIO18_1,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0ec, 3,
- CV1800_PINCONF_AREA_SYS, 0x804),
- CV1800_GENERAL_PIN(PIN_SD1_D1, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0d8, 7,
- CV1800_PINCONF_AREA_RTC, 0x060),
- CV1800_GENERAL_PIN(PIN_SD1_D0, VDDIO_SD1,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x0dc, 7,
- CV1800_PINCONF_AREA_RTC, 0x064),
- CV1800_FUNC_PIN(PIN_AUD_AINR_MIC, VDD18A_MIPI,
- IO_TYPE_AUDIO,
- CV1800_PINCONF_AREA_SYS, 0x1c0, 6),
- CV1800_GENERAL_PIN(PIN_IIC2_SCL, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0b8, 7,
- CV1800_PINCONF_AREA_RTC, 0x040),
- CV1800_GENERAL_PIN(PIN_IIC2_SDA, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0bc, 7,
- CV1800_PINCONF_AREA_RTC, 0x044),
- CV1800_GENERAL_PIN(PIN_SD0_CD, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x034, 3,
- CV1800_PINCONF_AREA_SYS, 0x900),
- CV1800_GENERAL_PIN(PIN_SD0_D1, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x028, 7,
- CV1800_PINCONF_AREA_SYS, 0xa0c),
- CV1800_GENERAL_PIN(PIN_UART2_RX, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0c8, 7,
- CV1800_PINCONF_AREA_RTC, 0x050),
- CV1800_GENERAL_PIN(PIN_UART2_CTS, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0cc, 7,
- CV1800_PINCONF_AREA_RTC, 0x054),
- CV1800_GENERAL_PIN(PIN_UART2_TX, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0c0, 7,
- CV1800_PINCONF_AREA_RTC, 0x048),
- CV1800_GENERAL_PIN(PIN_SD0_CLK, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x01c, 7,
- CV1800_PINCONF_AREA_SYS, 0xa00),
- CV1800_GENERAL_PIN(PIN_SD0_D0, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x024, 7,
- CV1800_PINCONF_AREA_SYS, 0xa08),
- CV1800_GENERAL_PIN(PIN_SD0_CMD, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x020, 7,
- CV1800_PINCONF_AREA_SYS, 0xa04),
- CV1800_GENERAL_PIN(PIN_CLK32K, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0b0, 7,
- CV1800_PINCONF_AREA_RTC, 0x038),
- CV1800_GENERAL_PIN(PIN_UART2_RTS, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0c4, 7,
- CV1800_PINCONF_AREA_RTC, 0x04c),
- CV1800_GENERAL_PIN(PIN_SD0_D3, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x030, 7,
- CV1800_PINCONF_AREA_SYS, 0xa14),
- CV1800_GENERAL_PIN(PIN_SD0_D2, VDDIO_SD0,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x02c, 7,
- CV1800_PINCONF_AREA_SYS, 0xa10),
- CV1800_GENERAL_PIN(PIN_UART0_RX, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x044, 7,
- CV1800_PINCONF_AREA_SYS, 0x910),
- CV1800_GENERAL_PIN(PIN_UART0_TX, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x040, 7,
- CV1800_PINCONF_AREA_SYS, 0x90c),
- CV1800_GENERAL_PIN(PIN_JTAG_CPU_TRST, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x06c, 6,
- CV1800_PINCONF_AREA_SYS, 0x938),
- CV1800_GENERAL_PIN(PIN_PWR_ON, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x09c, 7,
- CV1800_PINCONF_AREA_RTC, 0x024),
- CV1800_GENERAL_PIN(PIN_PWR_GPIO2, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0ac, 7,
- CV1800_PINCONF_AREA_RTC, 0x034),
- CV1800_GENERAL_PIN(PIN_PWR_GPIO0, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0a4, 4,
- CV1800_PINCONF_AREA_RTC, 0x02c),
- CV1800_GENERAL_PIN(PIN_CLK25M, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0b4, 7,
- CV1800_PINCONF_AREA_RTC, 0x03c),
- CV1800_GENERAL_PIN(PIN_SD0_PWR_EN, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x038, 3,
- CV1800_PINCONF_AREA_SYS, 0x904),
- CV1800_GENERAL_PIN(PIN_SPK_EN, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x03c, 3,
- CV1800_PINCONF_AREA_SYS, 0x908),
- CV1800_GENERAL_PIN(PIN_JTAG_CPU_TCK, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x068, 7,
- CV1800_PINCONF_AREA_SYS, 0x934),
- CV1800_GENERAL_PIN(PIN_JTAG_CPU_TMS, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x064, 7,
- CV1800_PINCONF_AREA_SYS, 0x930),
- CV1800_GENERAL_PIN(PIN_PWR_WAKEUP1, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x094, 7,
- CV1800_PINCONF_AREA_RTC, 0x01c),
- CV1800_GENERAL_PIN(PIN_PWR_WAKEUP0, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x090, 7,
- CV1800_PINCONF_AREA_RTC, 0x018),
- CV1800_GENERAL_PIN(PIN_PWR_GPIO1, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0a8, 7,
- CV1800_PINCONF_AREA_RTC, 0x030),
- CV1800_GENERAL_PIN(PIN_EMMC_DAT3, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x058, 3,
- CV1800_PINCONF_AREA_SYS, 0x924),
- CV1800_GENERAL_PIN(PIN_EMMC_DAT0, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x054, 3,
- CV1800_PINCONF_AREA_SYS, 0x920),
- CV1800_GENERAL_PIN(PIN_EMMC_DAT2, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x04c, 3,
- CV1800_PINCONF_AREA_SYS, 0x918),
- CV1800_GENERAL_PIN(PIN_EMMC_RSTN, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x048, 4,
- CV1800_PINCONF_AREA_SYS, 0x914),
- CV1800_GENERAL_PIN(PIN_AUX0, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x078, 7,
- CV1800_PINCONF_AREA_SYS, 0x944),
- CV1800_GENERAL_PIN(PIN_IIC0_SDA, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x074, 7,
- CV1800_PINCONF_AREA_SYS, 0x940),
- CV1800_GENERAL_PIN(PIN_PWR_SEQ3, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x08c, 3,
- CV1800_PINCONF_AREA_RTC, 0x010),
- CV1800_GENERAL_PIN(PIN_PWR_VBAT_DET, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x07c, 0,
- CV1800_PINCONF_AREA_RTC, 0x000),
- CV1800_GENERAL_PIN(PIN_PWR_SEQ1, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x084, 3,
- CV1800_PINCONF_AREA_RTC, 0x008),
- CV1800_GENERAL_PIN(PIN_PWR_BUTTON1, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x098, 7,
- CV1800_PINCONF_AREA_RTC, 0x020),
- CV1800_GENERAL_PIN(PIN_EMMC_DAT1, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x060, 3,
- CV1800_PINCONF_AREA_SYS, 0x92c),
- CV1800_GENERAL_PIN(PIN_EMMC_CMD, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x05c, 3,
- CV1800_PINCONF_AREA_SYS, 0x928),
- CV1800_GENERAL_PIN(PIN_EMMC_CLK, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x050, 3,
- CV1800_PINCONF_AREA_SYS, 0x91c),
- CV1800_GENERAL_PIN(PIN_IIC0_SCL, VDDIO_EMMC,
- IO_TYPE_1V8_OR_3V3,
- CV1800_PINCONF_AREA_SYS, 0x070, 7,
- CV1800_PINCONF_AREA_SYS, 0x93c),
- CV1800_GENERAL_PIN(PIN_GPIO_ZQ, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x1d0, 4,
- CV1800_PINCONF_AREA_RTC, 0x0e0),
- CV1800_GENERAL_PIN(PIN_PWR_RSTN, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x080, 0,
- CV1800_PINCONF_AREA_RTC, 0x004),
- CV1800_GENERAL_PIN(PIN_PWR_SEQ2, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x088, 3,
- CV1800_PINCONF_AREA_RTC, 0x00c),
- CV1800_GENERAL_PIN(PIN_XTAL_XIN, VDDIO_RTC,
- IO_TYPE_1V8_ONLY,
- CV1800_PINCONF_AREA_SYS, 0x0a0, 0,
- CV1800_PINCONF_AREA_RTC, 0x028),
- };
- static const struct sophgo_pinctrl_data sg2000_pindata = {
- .pins = sg2000_pins,
- .pindata = sg2000_pin_data,
- .pdnames = sg2000_power_domain_desc,
- .vddio_ops = &sg2000_vddio_cfg_ops,
- .cfg_ops = &cv1800_cfg_ops,
- .pctl_ops = &cv1800_pctrl_ops,
- .pmx_ops = &cv1800_pmx_ops,
- .pconf_ops = &cv1800_pconf_ops,
- .npins = ARRAY_SIZE(sg2000_pins),
- .npds = ARRAY_SIZE(sg2000_power_domain_desc),
- .pinsize = sizeof(struct cv1800_pin),
- };
- static const struct of_device_id sg2000_pinctrl_ids[] = {
- { .compatible = "sophgo,sg2000-pinctrl", .data = &sg2000_pindata },
- { }
- };
- MODULE_DEVICE_TABLE(of, sg2000_pinctrl_ids);
- static struct platform_driver sg2000_pinctrl_driver = {
- .probe = sophgo_pinctrl_probe,
- .driver = {
- .name = "sg2000-pinctrl",
- .suppress_bind_attrs = true,
- .of_match_table = sg2000_pinctrl_ids,
- },
- };
- module_platform_driver(sg2000_pinctrl_driver);
- MODULE_DESCRIPTION("Pinctrl driver for the SG2000 series SoC");
- MODULE_LICENSE("GPL");
|