309 lines
9.4 KiB
C
309 lines
9.4 KiB
C
/* 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_I2STX1_BCLK 33
|
|
#define GPI_SYS_I2STX1_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
|