/* SPDX-License-Identifier: GPL-2.0 OR MIT */ /* * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> * Copyright (C) 2022 StarFive Technology Co., Ltd. */ #ifndef __JH7110_PINFUNC_H__ #define __JH7110_PINFUNC_H__ /* * mux bits: * | 31 - 24 | 23 - 16 | 15 - 10 | 9 - 8 | 7 - 0 | * | din | dout | doen | function | gpio nr | * * dout: output signal * doen: output enable signal * din: optional input signal, 0xff = none * function: function selector * gpio nr: gpio number, 0 - 63 */ #define GPIOMUX(n, dout, doen, din) ( \ (((din) & 0xff) << 24) | \ (((dout) & 0xff) << 16) | \ (((doen) & 0x3f) << 10) | \ ((n) & 0x3f)) #define PINMUX(n, func) ((1 << 10) | (((func) & 0x3) << 8) | ((n) & 0xff)) /* sys_iomux dout */ #define GPOUT_LOW 0 #define GPOUT_HIGH 1 #define GPOUT_SYS_WAVE511_UART_TX 2 #define GPOUT_SYS_CAN0_STBY 3 #define GPOUT_SYS_CAN0_TST_NEXT_BIT 4 #define GPOUT_SYS_CAN0_TST_SAMPLE_POINT 5 #define GPOUT_SYS_CAN0_TXD 6 #define GPOUT_SYS_USB_DRIVE_VBUS 7 #define GPOUT_SYS_QSPI_CS1 8 #define GPOUT_SYS_SPDIF 9 #define GPOUT_SYS_HDMI_CEC_SDA 10 #define GPOUT_SYS_HDMI_DDC_SCL 11 #define GPOUT_SYS_HDMI_DDC_SDA 12 #define GPOUT_SYS_WATCHDOG 13 #define GPOUT_SYS_I2C0_CLK 14 #define GPOUT_SYS_I2C0_DATA 15 #define GPOUT_SYS_SDIO0_BACK_END_POWER 16 #define GPOUT_SYS_SDIO0_CARD_POWER_EN 17 #define GPOUT_SYS_SDIO0_CCMD_OD_PULLUP_EN 18 #define GPOUT_SYS_SDIO0_RST 19 #define GPOUT_SYS_UART0_TX 20 #define GPOUT_SYS_HIFI4_JTAG_TDO 21 #define GPOUT_SYS_JTAG_TDO 22 #define GPOUT_SYS_PDM_MCLK 23 #define GPOUT_SYS_PWM_CHANNEL0 24 #define GPOUT_SYS_PWM_CHANNEL1 25 #define GPOUT_SYS_PWM_CHANNEL2 26 #define GPOUT_SYS_PWM_CHANNEL3 27 #define GPOUT_SYS_PWMDAC_LEFT 28 #define GPOUT_SYS_PWMDAC_RIGHT 29 #define GPOUT_SYS_SPI0_CLK 30 #define GPOUT_SYS_SPI0_FSS 31 #define GPOUT_SYS_SPI0_TXD 32 #define GPOUT_SYS_GMAC_PHYCLK 33 #define GPOUT_SYS_I2SRX_BCLK 34 #define GPOUT_SYS_I2SRX_LRCK 35 #define GPOUT_SYS_I2STX0_BCLK 36 #define GPOUT_SYS_I2STX0_LRCK 37 #define GPOUT_SYS_MCLK 38 #define GPOUT_SYS_TDM_CLK 39 #define GPOUT_SYS_TDM_SYNC 40 #define GPOUT_SYS_TDM_TXD 41 #define GPOUT_SYS_TRACE_DATA0 42 #define GPOUT_SYS_TRACE_DATA1 43 #define GPOUT_SYS_TRACE_DATA2 44 #define GPOUT_SYS_TRACE_DATA3 45 #define GPOUT_SYS_TRACE_REF 46 #define GPOUT_SYS_CAN1_STBY 47 #define GPOUT_SYS_CAN1_TST_NEXT_BIT 48 #define GPOUT_SYS_CAN1_TST_SAMPLE_POINT 49 #define GPOUT_SYS_CAN1_TXD 50 #define GPOUT_SYS_I2C1_CLK 51 #define GPOUT_SYS_I2C1_DATA 52 #define GPOUT_SYS_SDIO1_BACK_END_POWER 53 #define GPOUT_SYS_SDIO1_CARD_POWER_EN 54 #define GPOUT_SYS_SDIO1_CLK 55 #define GPOUT_SYS_SDIO1_CMD_OD_PULLUP_EN 56 #define GPOUT_SYS_SDIO1_CMD 57 #define GPOUT_SYS_SDIO1_DATA0 58 #define GPOUT_SYS_SDIO1_DATA1 59 #define GPOUT_SYS_SDIO1_DATA2 60 #define GPOUT_SYS_SDIO1_DATA3 61 #define GPOUT_SYS_SDIO1_DATA4 63 #define GPOUT_SYS_SDIO1_DATA5 63 #define GPOUT_SYS_SDIO1_DATA6 64 #define GPOUT_SYS_SDIO1_DATA7 65 #define GPOUT_SYS_SDIO1_RST 66 #define GPOUT_SYS_UART1_RTS 67 #define GPOUT_SYS_UART1_TX 68 #define GPOUT_SYS_I2STX1_SDO0 69 #define GPOUT_SYS_I2STX1_SDO1 70 #define GPOUT_SYS_I2STX1_SDO2 71 #define GPOUT_SYS_I2STX1_SDO3 72 #define GPOUT_SYS_SPI1_CLK 73 #define GPOUT_SYS_SPI1_FSS 74 #define GPOUT_SYS_SPI1_TXD 75 #define GPOUT_SYS_I2C2_CLK 76 #define GPOUT_SYS_I2C2_DATA 77 #define GPOUT_SYS_UART2_RTS 78 #define GPOUT_SYS_UART2_TX 79 #define GPOUT_SYS_SPI2_CLK 80 #define GPOUT_SYS_SPI2_FSS 81 #define GPOUT_SYS_SPI2_TXD 82 #define GPOUT_SYS_I2C3_CLK 83 #define GPOUT_SYS_I2C3_DATA 84 #define GPOUT_SYS_UART3_TX 85 #define GPOUT_SYS_SPI3_CLK 86 #define GPOUT_SYS_SPI3_FSS 87 #define GPOUT_SYS_SPI3_TXD 88 #define GPOUT_SYS_I2C4_CLK 89 #define GPOUT_SYS_I2C4_DATA 90 #define GPOUT_SYS_UART4_RTS 91 #define GPOUT_SYS_UART4_TX 92 #define GPOUT_SYS_SPI4_CLK 93 #define GPOUT_SYS_SPI4_FSS 94 #define GPOUT_SYS_SPI4_TXD 95 #define GPOUT_SYS_I2C5_CLK 96 #define GPOUT_SYS_I2C5_DATA 97 #define GPOUT_SYS_UART5_RTS 98 #define GPOUT_SYS_UART5_TX 99 #define GPOUT_SYS_SPI5_CLK 100 #define GPOUT_SYS_SPI5_FSS 101 #define GPOUT_SYS_SPI5_TXD 102 #define GPOUT_SYS_I2C6_CLK 103 #define GPOUT_SYS_I2C6_DATA 104 #define GPOUT_SYS_SPI6_CLK 105 #define GPOUT_SYS_SPI6_FSS 106 #define GPOUT_SYS_SPI6_TXD 107 /* aon_iomux dout */ #define GPOUT_AON_CLK_32K_OUT 2 #define GPOUT_AON_PTC0_PWM4 3 #define GPOUT_AON_PTC0_PWM5 4 #define GPOUT_AON_PTC0_PWM6 5 #define GPOUT_AON_PTC0_PWM7 6 #define GPOUT_AON_CLK_GCLK0 7 #define GPOUT_AON_CLK_GCLK1 8 #define GPOUT_AON_CLK_GCLK2 9 /* sys_iomux doen */ #define GPOEN_ENABLE 0 #define GPOEN_DISABLE 1 #define GPOEN_SYS_HDMI_CEC_SDA 2 #define GPOEN_SYS_HDMI_DDC_SCL 3 #define GPOEN_SYS_HDMI_DDC_SDA 4 #define GPOEN_SYS_I2C0_CLK 5 #define GPOEN_SYS_I2C0_DATA 6 #define GPOEN_SYS_HIFI4_JTAG_TDO 7 #define GPOEN_SYS_JTAG_TDO 8 #define GPOEN_SYS_PWM0_CHANNEL0 9 #define GPOEN_SYS_PWM0_CHANNEL1 10 #define GPOEN_SYS_PWM0_CHANNEL2 11 #define GPOEN_SYS_PWM0_CHANNEL3 12 #define GPOEN_SYS_SPI0_NSSPCTL 13 #define GPOEN_SYS_SPI0_NSSP 14 #define GPOEN_SYS_TDM_SYNC 15 #define GPOEN_SYS_TDM_TXD 16 #define GPOEN_SYS_I2C1_CLK 17 #define GPOEN_SYS_I2C1_DATA 18 #define GPOEN_SYS_SDIO1_CMD 19 #define GPOEN_SYS_SDIO1_DATA0 20 #define GPOEN_SYS_SDIO1_DATA1 21 #define GPOEN_SYS_SDIO1_DATA2 22 #define GPOEN_SYS_SDIO1_DATA3 23 #define GPOEN_SYS_SDIO1_DATA4 24 #define GPOEN_SYS_SDIO1_DATA5 25 #define GPOEN_SYS_SDIO1_DATA6 26 #define GPOEN_SYS_SDIO1_DATA7 27 #define GPOEN_SYS_SPI1_NSSPCTL 28 #define GPOEN_SYS_SPI1_NSSP 29 #define GPOEN_SYS_I2C2_CLK 30 #define GPOEN_SYS_I2C2_DATA 31 #define GPOEN_SYS_SPI2_NSSPCTL 32 #define GPOEN_SYS_SPI2_NSSP 33 #define GPOEN_SYS_I2C3_CLK 34 #define GPOEN_SYS_I2C3_DATA 35 #define GPOEN_SYS_SPI3_NSSPCTL 36 #define GPOEN_SYS_SPI3_NSSP 37 #define GPOEN_SYS_I2C4_CLK 38 #define GPOEN_SYS_I2C4_DATA 39 #define GPOEN_SYS_SPI4_NSSPCTL 40 #define GPOEN_SYS_SPI4_NSSP 41 #define GPOEN_SYS_I2C5_CLK 42 #define GPOEN_SYS_I2C5_DATA 43 #define GPOEN_SYS_SPI5_NSSPCTL 44 #define GPOEN_SYS_SPI5_NSSP 45 #define GPOEN_SYS_I2C6_CLK 46 #define GPOEN_SYS_I2C6_DATA 47 #define GPOEN_SYS_SPI6_NSSPCTL 48 #define GPOEN_SYS_SPI6_NSSP 49 /* aon_iomux doen */ #define GPOEN_AON_PTC0_OE_N_4 2 #define GPOEN_AON_PTC0_OE_N_5 3 #define GPOEN_AON_PTC0_OE_N_6 4 #define GPOEN_AON_PTC0_OE_N_7 5 /* sys_iomux gin */ #define GPI_NONE 255 #define GPI_SYS_WAVE511_UART_RX 0 #define GPI_SYS_CAN0_RXD 1 #define GPI_SYS_USB_OVERCURRENT 2 #define GPI_SYS_SPDIF 3 #define GPI_SYS_JTAG_RST 4 #define GPI_SYS_HDMI_CEC_SDA 5 #define GPI_SYS_HDMI_DDC_SCL 6 #define GPI_SYS_HDMI_DDC_SDA 7 #define GPI_SYS_HDMI_HPD 8 #define GPI_SYS_I2C0_CLK 9 #define GPI_SYS_I2C0_DATA 10 #define GPI_SYS_SDIO0_CD 11 #define GPI_SYS_SDIO0_INT 12 #define GPI_SYS_SDIO0_WP 13 #define GPI_SYS_UART0_RX 14 #define GPI_SYS_HIFI4_JTAG_TCK 15 #define GPI_SYS_HIFI4_JTAG_TDI 16 #define GPI_SYS_HIFI4_JTAG_TMS 17 #define GPI_SYS_HIFI4_JTAG_RST 18 #define GPI_SYS_JTAG_TDI 19 #define GPI_SYS_JTAG_TMS 20 #define GPI_SYS_PDM_DMIC0 21 #define GPI_SYS_PDM_DMIC1 22 #define GPI_SYS_I2SRX_SDIN0 23 #define GPI_SYS_I2SRX_SDIN1 24 #define GPI_SYS_I2SRX_SDIN2 25 #define GPI_SYS_SPI0_CLK 26 #define GPI_SYS_SPI0_FSS 27 #define GPI_SYS_SPI0_RXD 28 #define GPI_SYS_JTAG_TCK 29 #define GPI_SYS_MCLK_EXT 30 #define GPI_SYS_I2SRX_BCLK 31 #define GPI_SYS_I2SRX_LRCK 32 #define GPI_SYS_I2STX0_BCLK 33 #define GPI_SYS_I2STX0_LRCK 34 #define GPI_SYS_TDM_CLK 35 #define GPI_SYS_TDM_RXD 36 #define GPI_SYS_TDM_SYNC 37 #define GPI_SYS_CAN1_RXD 38 #define GPI_SYS_I2C1_CLK 39 #define GPI_SYS_I2C1_DATA 40 #define GPI_SYS_SDIO1_CD 41 #define GPI_SYS_SDIO1_INT 42 #define GPI_SYS_SDIO1_WP 43 #define GPI_SYS_SDIO1_CMD 44 #define GPI_SYS_SDIO1_DATA0 45 #define GPI_SYS_SDIO1_DATA1 46 #define GPI_SYS_SDIO1_DATA2 47 #define GPI_SYS_SDIO1_DATA3 48 #define GPI_SYS_SDIO1_DATA4 49 #define GPI_SYS_SDIO1_DATA5 50 #define GPI_SYS_SDIO1_DATA6 51 #define GPI_SYS_SDIO1_DATA7 52 #define GPI_SYS_SDIO1_STRB 53 #define GPI_SYS_UART1_CTS 54 #define GPI_SYS_UART1_RX 55 #define GPI_SYS_SPI1_CLK 56 #define GPI_SYS_SPI1_FSS 57 #define GPI_SYS_SPI1_RXD 58 #define GPI_SYS_I2C2_CLK 59 #define GPI_SYS_I2C2_DATA 60 #define GPI_SYS_UART2_CTS 61 #define GPI_SYS_UART2_RX 62 #define GPI_SYS_SPI2_CLK 63 #define GPI_SYS_SPI2_FSS 64 #define GPI_SYS_SPI2_RXD 65 #define GPI_SYS_I2C3_CLK 66 #define GPI_SYS_I2C3_DATA 67 #define GPI_SYS_UART3_RX 68 #define GPI_SYS_SPI3_CLK 69 #define GPI_SYS_SPI3_FSS 70 #define GPI_SYS_SPI3_RXD 71 #define GPI_SYS_I2C4_CLK 72 #define GPI_SYS_I2C4_DATA 73 #define GPI_SYS_UART4_CTS 74 #define GPI_SYS_UART4_RX 75 #define GPI_SYS_SPI4_CLK 76 #define GPI_SYS_SPI4_FSS 77 #define GPI_SYS_SPI4_RXD 78 #define GPI_SYS_I2C5_CLK 79 #define GPI_SYS_I2C5_DATA 80 #define GPI_SYS_UART5_CTS 81 #define GPI_SYS_UART5_RX 82 #define GPI_SYS_SPI5_CLK 83 #define GPI_SYS_SPI5_FSS 84 #define GPI_SYS_SPI5_RXD 85 #define GPI_SYS_I2C6_CLK 86 #define GPI_SYS_I2C6_DATA 87 #define GPI_SYS_SPI6_CLK 88 #define GPI_SYS_SPI6_FSS 89 #define GPI_SYS_SPI6_RXD 90 /* aon_iomux gin */ #define GPI_AON_PMU_GPIO_WAKEUP_0 0 #define GPI_AON_PMU_GPIO_WAKEUP_1 1 #define GPI_AON_PMU_GPIO_WAKEUP_2 2 #define GPI_AON_PMU_GPIO_WAKEUP_3 3 #endif