Home | History | Annotate | Line # | Download | only in pinctrl
      1 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
      2 /*
      3  * Copyright (C) 2021 Emil Renner Berthing <kernel (at) esmil.dk>
      4  */
      5 
      6 #ifndef __DT_BINDINGS_PINCTRL_STARFIVE_JH7100_H__
      7 #define __DT_BINDINGS_PINCTRL_STARFIVE_JH7100_H__
      8 
      9 #define PAD_GPIO_OFFSET		0
     10 #define PAD_FUNC_SHARE_OFFSET	64
     11 #define PAD_GPIO(x)		(PAD_GPIO_OFFSET + (x))
     12 #define PAD_FUNC_SHARE(x)	(PAD_FUNC_SHARE_OFFSET + (x))
     13 
     14 /*
     15  * GPIOMUX bits:
     16  *  | 31 - 24 | 23 - 16 | 15 - 8 |     7    |     6    |  5 - 0  |
     17  *  |  dout   |  doen   |  din   | dout rev | doen rev | gpio nr |
     18  *
     19  * dout:     output signal
     20  * doen:     output enable signal
     21  * din:      optional input signal, 0xff = none
     22  * dout rev: output signal reverse bit
     23  * doen rev: output enable signal reverse bit
     24  * gpio nr:  gpio number, 0 - 63
     25  */
     26 #define GPIOMUX(n, dout, doen, din) ( \
     27 		(((dout) & 0x80000000) >> (31 - 7)) | (((dout) & 0xff) << 24) | \
     28 		(((doen) & 0x80000000) >> (31 - 6)) | (((doen) & 0xff) << 16) | \
     29 		(((din) & 0xff) << 8) | \
     30 		((n) & 0x3f))
     31 
     32 #define GPO_REVERSE				0x80000000
     33 
     34 #define GPO_LOW					0
     35 #define GPO_HIGH				1
     36 #define GPO_ENABLE				0
     37 #define GPO_DISABLE				1
     38 #define GPO_CLK_GMAC_PAPHYREF			2
     39 #define GPO_JTAG_TDO				3
     40 #define GPO_JTAG_TDO_OEN			4
     41 #define GPO_DMIC_CLK_OUT			5
     42 #define GPO_DSP_JTDOEN_PAD			6
     43 #define GPO_DSP_JTDO_PAD			7
     44 #define GPO_I2C0_PAD_SCK_OE			8
     45 #define GPO_I2C0_PAD_SCK_OEN			(GPO_I2C0_PAD_SCK_OE | GPO_REVERSE)
     46 #define GPO_I2C0_PAD_SDA_OE			9
     47 #define GPO_I2C0_PAD_SDA_OEN			(GPO_I2C0_PAD_SDA_OE | GPO_REVERSE)
     48 #define GPO_I2C1_PAD_SCK_OE			10
     49 #define GPO_I2C1_PAD_SCK_OEN			(GPO_I2C1_PAD_SCK_OE | GPO_REVERSE)
     50 #define GPO_I2C1_PAD_SDA_OE			11
     51 #define GPO_I2C1_PAD_SDA_OEN			(GPO_I2C1_PAD_SDA_OE | GPO_REVERSE)
     52 #define GPO_I2C2_PAD_SCK_OE			12
     53 #define GPO_I2C2_PAD_SCK_OEN			(GPO_I2C2_PAD_SCK_OE | GPO_REVERSE)
     54 #define GPO_I2C2_PAD_SDA_OE			13
     55 #define GPO_I2C2_PAD_SDA_OEN			(GPO_I2C2_PAD_SDA_OE | GPO_REVERSE)
     56 #define GPO_I2C3_PAD_SCK_OE			14
     57 #define GPO_I2C3_PAD_SCK_OEN			(GPO_I2C3_PAD_SCK_OE | GPO_REVERSE)
     58 #define GPO_I2C3_PAD_SDA_OE			15
     59 #define GPO_I2C3_PAD_SDA_OEN			(GPO_I2C3_PAD_SDA_OE | GPO_REVERSE)
     60 #define GPO_I2SRX_BCLK_OUT			16
     61 #define GPO_I2SRX_BCLK_OUT_OEN			17
     62 #define GPO_I2SRX_LRCK_OUT			18
     63 #define GPO_I2SRX_LRCK_OUT_OEN			19
     64 #define GPO_I2SRX_MCLK_OUT			20
     65 #define GPO_I2STX_BCLK_OUT			21
     66 #define GPO_I2STX_BCLK_OUT_OEN			22
     67 #define GPO_I2STX_LRCK_OUT			23
     68 #define GPO_I2STX_LRCK_OUT_OEN			24
     69 #define GPO_I2STX_MCLK_OUT			25
     70 #define GPO_I2STX_SDOUT0			26
     71 #define GPO_I2STX_SDOUT1			27
     72 #define GPO_LCD_PAD_CSM_N			28
     73 #define GPO_PWM_PAD_OE_N_BIT0			29
     74 #define GPO_PWM_PAD_OE_N_BIT1			30
     75 #define GPO_PWM_PAD_OE_N_BIT2			31
     76 #define GPO_PWM_PAD_OE_N_BIT3			32
     77 #define GPO_PWM_PAD_OE_N_BIT4			33
     78 #define GPO_PWM_PAD_OE_N_BIT5			34
     79 #define GPO_PWM_PAD_OE_N_BIT6			35
     80 #define GPO_PWM_PAD_OE_N_BIT7			36
     81 #define GPO_PWM_PAD_OUT_BIT0			37
     82 #define GPO_PWM_PAD_OUT_BIT1			38
     83 #define GPO_PWM_PAD_OUT_BIT2			39
     84 #define GPO_PWM_PAD_OUT_BIT3			40
     85 #define GPO_PWM_PAD_OUT_BIT4			41
     86 #define GPO_PWM_PAD_OUT_BIT5			42
     87 #define GPO_PWM_PAD_OUT_BIT6			43
     88 #define GPO_PWM_PAD_OUT_BIT7			44
     89 #define GPO_PWMDAC_LEFT_OUT			45
     90 #define GPO_PWMDAC_RIGHT_OUT			46
     91 #define GPO_QSPI_CSN1_OUT			47
     92 #define GPO_QSPI_CSN2_OUT			48
     93 #define GPO_QSPI_CSN3_OUT			49
     94 #define GPO_REGISTER23_SCFG_CMSENSOR_RST0	50
     95 #define GPO_REGISTER23_SCFG_CMSENSOR_RST1	51
     96 #define GPO_REGISTER32_SCFG_GMAC_PHY_RSTN	52
     97 #define GPO_SDIO0_PAD_CARD_POWER_EN		53
     98 #define GPO_SDIO0_PAD_CCLK_OUT			54
     99 #define GPO_SDIO0_PAD_CCMD_OE			55
    100 #define GPO_SDIO0_PAD_CCMD_OEN			(GPO_SDIO0_PAD_CCMD_OE | GPO_REVERSE)
    101 #define GPO_SDIO0_PAD_CCMD_OUT			56
    102 #define GPO_SDIO0_PAD_CDATA_OE_BIT0		57
    103 #define GPO_SDIO0_PAD_CDATA_OEN_BIT0		(GPO_SDIO0_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
    104 #define GPO_SDIO0_PAD_CDATA_OE_BIT1		58
    105 #define GPO_SDIO0_PAD_CDATA_OEN_BIT1		(GPO_SDIO0_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
    106 #define GPO_SDIO0_PAD_CDATA_OE_BIT2		59
    107 #define GPO_SDIO0_PAD_CDATA_OEN_BIT2		(GPO_SDIO0_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
    108 #define GPO_SDIO0_PAD_CDATA_OE_BIT3		60
    109 #define GPO_SDIO0_PAD_CDATA_OEN_BIT3		(GPO_SDIO0_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
    110 #define GPO_SDIO0_PAD_CDATA_OE_BIT4		61
    111 #define GPO_SDIO0_PAD_CDATA_OEN_BIT4		(GPO_SDIO0_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
    112 #define GPO_SDIO0_PAD_CDATA_OE_BIT5		62
    113 #define GPO_SDIO0_PAD_CDATA_OEN_BIT5		(GPO_SDIO0_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
    114 #define GPO_SDIO0_PAD_CDATA_OE_BIT6		63
    115 #define GPO_SDIO0_PAD_CDATA_OEN_BIT6		(GPO_SDIO0_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
    116 #define GPO_SDIO0_PAD_CDATA_OE_BIT7		64
    117 #define GPO_SDIO0_PAD_CDATA_OEN_BIT7		(GPO_SDIO0_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
    118 #define GPO_SDIO0_PAD_CDATA_OUT_BIT0		65
    119 #define GPO_SDIO0_PAD_CDATA_OUT_BIT1		66
    120 #define GPO_SDIO0_PAD_CDATA_OUT_BIT2		67
    121 #define GPO_SDIO0_PAD_CDATA_OUT_BIT3		68
    122 #define GPO_SDIO0_PAD_CDATA_OUT_BIT4		69
    123 #define GPO_SDIO0_PAD_CDATA_OUT_BIT5		70
    124 #define GPO_SDIO0_PAD_CDATA_OUT_BIT6		71
    125 #define GPO_SDIO0_PAD_CDATA_OUT_BIT7		72
    126 #define GPO_SDIO0_PAD_RST_N			73
    127 #define GPO_SDIO1_PAD_CARD_POWER_EN		74
    128 #define GPO_SDIO1_PAD_CCLK_OUT			75
    129 #define GPO_SDIO1_PAD_CCMD_OE			76
    130 #define GPO_SDIO1_PAD_CCMD_OEN			(GPO_SDIO1_PAD_CCMD_OE | GPO_REVERSE)
    131 #define GPO_SDIO1_PAD_CCMD_OUT			77
    132 #define GPO_SDIO1_PAD_CDATA_OE_BIT0		78
    133 #define GPO_SDIO1_PAD_CDATA_OEN_BIT0		(GPO_SDIO1_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
    134 #define GPO_SDIO1_PAD_CDATA_OE_BIT1		79
    135 #define GPO_SDIO1_PAD_CDATA_OEN_BIT1		(GPO_SDIO1_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
    136 #define GPO_SDIO1_PAD_CDATA_OE_BIT2		80
    137 #define GPO_SDIO1_PAD_CDATA_OEN_BIT2		(GPO_SDIO1_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
    138 #define GPO_SDIO1_PAD_CDATA_OE_BIT3		81
    139 #define GPO_SDIO1_PAD_CDATA_OEN_BIT3		(GPO_SDIO1_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
    140 #define GPO_SDIO1_PAD_CDATA_OE_BIT4		82
    141 #define GPO_SDIO1_PAD_CDATA_OEN_BIT4		(GPO_SDIO1_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
    142 #define GPO_SDIO1_PAD_CDATA_OE_BIT5		83
    143 #define GPO_SDIO1_PAD_CDATA_OEN_BIT5		(GPO_SDIO1_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
    144 #define GPO_SDIO1_PAD_CDATA_OE_BIT6		84
    145 #define GPO_SDIO1_PAD_CDATA_OEN_BIT6		(GPO_SDIO1_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
    146 #define GPO_SDIO1_PAD_CDATA_OE_BIT7		85
    147 #define GPO_SDIO1_PAD_CDATA_OEN_BIT7		(GPO_SDIO1_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
    148 #define GPO_SDIO1_PAD_CDATA_OUT_BIT0		86
    149 #define GPO_SDIO1_PAD_CDATA_OUT_BIT1		87
    150 #define GPO_SDIO1_PAD_CDATA_OUT_BIT2		88
    151 #define GPO_SDIO1_PAD_CDATA_OUT_BIT3		89
    152 #define GPO_SDIO1_PAD_CDATA_OUT_BIT4		90
    153 #define GPO_SDIO1_PAD_CDATA_OUT_BIT5		91
    154 #define GPO_SDIO1_PAD_CDATA_OUT_BIT6		92
    155 #define GPO_SDIO1_PAD_CDATA_OUT_BIT7		93
    156 #define GPO_SDIO1_PAD_RST_N			94
    157 #define GPO_SPDIF_TX_SDOUT			95
    158 #define GPO_SPDIF_TX_SDOUT_OEN			96
    159 #define GPO_SPI0_PAD_OE_N			97
    160 #define GPO_SPI0_PAD_SCK_OUT			98
    161 #define GPO_SPI0_PAD_SS_0_N			99
    162 #define GPO_SPI0_PAD_SS_1_N			100
    163 #define GPO_SPI0_PAD_TXD			101
    164 #define GPO_SPI1_PAD_OE_N			102
    165 #define GPO_SPI1_PAD_SCK_OUT			103
    166 #define GPO_SPI1_PAD_SS_0_N			104
    167 #define GPO_SPI1_PAD_SS_1_N			105
    168 #define GPO_SPI1_PAD_TXD			106
    169 #define GPO_SPI2_PAD_OE_N			107
    170 #define GPO_SPI2_PAD_SCK_OUT			108
    171 #define GPO_SPI2_PAD_SS_0_N			109
    172 #define GPO_SPI2_PAD_SS_1_N			110
    173 #define GPO_SPI2_PAD_TXD			111
    174 #define GPO_SPI2AHB_PAD_OE_N_BIT0		112
    175 #define GPO_SPI2AHB_PAD_OE_N_BIT1		113
    176 #define GPO_SPI2AHB_PAD_OE_N_BIT2		114
    177 #define GPO_SPI2AHB_PAD_OE_N_BIT3		115
    178 #define GPO_SPI2AHB_PAD_TXD_BIT0		116
    179 #define GPO_SPI2AHB_PAD_TXD_BIT1		117
    180 #define GPO_SPI2AHB_PAD_TXD_BIT2		118
    181 #define GPO_SPI2AHB_PAD_TXD_BIT3		119
    182 #define GPO_SPI3_PAD_OE_N			120
    183 #define GPO_SPI3_PAD_SCK_OUT			121
    184 #define GPO_SPI3_PAD_SS_0_N			122
    185 #define GPO_SPI3_PAD_SS_1_N			123
    186 #define GPO_SPI3_PAD_TXD			124
    187 #define GPO_UART0_PAD_DTRN			125
    188 #define GPO_UART0_PAD_RTSN			126
    189 #define GPO_UART0_PAD_SOUT			127
    190 #define GPO_UART1_PAD_SOUT			128
    191 #define GPO_UART2_PAD_DTR_N			129
    192 #define GPO_UART2_PAD_RTS_N			130
    193 #define GPO_UART2_PAD_SOUT			131
    194 #define GPO_UART3_PAD_SOUT			132
    195 #define GPO_USB_DRV_BUS				133
    196 
    197 #define GPI_CPU_JTAG_TCK			0
    198 #define GPI_CPU_JTAG_TDI			1
    199 #define GPI_CPU_JTAG_TMS			2
    200 #define GPI_CPU_JTAG_TRST			3
    201 #define GPI_DMIC_SDIN_BIT0			4
    202 #define GPI_DMIC_SDIN_BIT1			5
    203 #define GPI_DSP_JTCK_PAD			6
    204 #define GPI_DSP_JTDI_PAD			7
    205 #define GPI_DSP_JTMS_PAD			8
    206 #define GPI_DSP_TRST_PAD			9
    207 #define GPI_I2C0_PAD_SCK_IN			10
    208 #define GPI_I2C0_PAD_SDA_IN			11
    209 #define GPI_I2C1_PAD_SCK_IN			12
    210 #define GPI_I2C1_PAD_SDA_IN			13
    211 #define GPI_I2C2_PAD_SCK_IN			14
    212 #define GPI_I2C2_PAD_SDA_IN			15
    213 #define GPI_I2C3_PAD_SCK_IN			16
    214 #define GPI_I2C3_PAD_SDA_IN			17
    215 #define GPI_I2SRX_BCLK_IN			18
    216 #define GPI_I2SRX_LRCK_IN			19
    217 #define GPI_I2SRX_SDIN_BIT0			20
    218 #define GPI_I2SRX_SDIN_BIT1			21
    219 #define GPI_I2SRX_SDIN_BIT2			22
    220 #define GPI_I2STX_BCLK_IN			23
    221 #define GPI_I2STX_LRCK_IN			24
    222 #define GPI_SDIO0_PAD_CARD_DETECT_N		25
    223 #define GPI_SDIO0_PAD_CARD_WRITE_PRT		26
    224 #define GPI_SDIO0_PAD_CCMD_IN			27
    225 #define GPI_SDIO0_PAD_CDATA_IN_BIT0		28
    226 #define GPI_SDIO0_PAD_CDATA_IN_BIT1		29
    227 #define GPI_SDIO0_PAD_CDATA_IN_BIT2		30
    228 #define GPI_SDIO0_PAD_CDATA_IN_BIT3		31
    229 #define GPI_SDIO0_PAD_CDATA_IN_BIT4		32
    230 #define GPI_SDIO0_PAD_CDATA_IN_BIT5		33
    231 #define GPI_SDIO0_PAD_CDATA_IN_BIT6		34
    232 #define GPI_SDIO0_PAD_CDATA_IN_BIT7		35
    233 #define GPI_SDIO1_PAD_CARD_DETECT_N		36
    234 #define GPI_SDIO1_PAD_CARD_WRITE_PRT		37
    235 #define GPI_SDIO1_PAD_CCMD_IN			38
    236 #define GPI_SDIO1_PAD_CDATA_IN_BIT0		39
    237 #define GPI_SDIO1_PAD_CDATA_IN_BIT1		40
    238 #define GPI_SDIO1_PAD_CDATA_IN_BIT2		41
    239 #define GPI_SDIO1_PAD_CDATA_IN_BIT3		42
    240 #define GPI_SDIO1_PAD_CDATA_IN_BIT4		43
    241 #define GPI_SDIO1_PAD_CDATA_IN_BIT5		44
    242 #define GPI_SDIO1_PAD_CDATA_IN_BIT6		45
    243 #define GPI_SDIO1_PAD_CDATA_IN_BIT7		46
    244 #define GPI_SPDIF_RX_SDIN			47
    245 #define GPI_SPI0_PAD_RXD			48
    246 #define GPI_SPI0_PAD_SS_IN_N			49
    247 #define GPI_SPI1_PAD_RXD			50
    248 #define GPI_SPI1_PAD_SS_IN_N			51
    249 #define GPI_SPI2_PAD_RXD			52
    250 #define GPI_SPI2_PAD_SS_IN_N			53
    251 #define GPI_SPI2AHB_PAD_RXD_BIT0		54
    252 #define GPI_SPI2AHB_PAD_RXD_BIT1		55
    253 #define GPI_SPI2AHB_PAD_RXD_BIT2		56
    254 #define GPI_SPI2AHB_PAD_RXD_BIT3		57
    255 #define GPI_SPI2AHB_PAD_SS_N			58
    256 #define GPI_SPI2AHB_SLV_SCLKIN			59
    257 #define GPI_SPI3_PAD_RXD			60
    258 #define GPI_SPI3_PAD_SS_IN_N			61
    259 #define GPI_UART0_PAD_CTSN			62
    260 #define GPI_UART0_PAD_DCDN			63
    261 #define GPI_UART0_PAD_DSRN			64
    262 #define GPI_UART0_PAD_RIN			65
    263 #define GPI_UART0_PAD_SIN			66
    264 #define GPI_UART1_PAD_SIN			67
    265 #define GPI_UART2_PAD_CTS_N			68
    266 #define GPI_UART2_PAD_DCD_N			69
    267 #define GPI_UART2_PAD_DSR_N			70
    268 #define GPI_UART2_PAD_RI_N			71
    269 #define GPI_UART2_PAD_SIN			72
    270 #define GPI_UART3_PAD_SIN			73
    271 #define GPI_USB_OVER_CURRENT			74
    272 
    273 #define GPI_NONE				0xff
    274 
    275 #endif /* __DT_BINDINGS_PINCTRL_STARFIVE_JH7100_H__ */
    276