Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * Copyright (C) 2020 Sean Anderson <seanga2@gmail.com>
0004  * Copyright (c) 2020 Western Digital Corporation or its affiliates.
0005  */
0006 #ifndef PINCTRL_K210_FPIOA_H
0007 #define PINCTRL_K210_FPIOA_H
0008 
0009 /*
0010  * Full list of FPIOA functions from
0011  * kendryte-standalone-sdk/lib/drivers/include/fpioa.h
0012  */
0013 #define K210_PCF_MASK       GENMASK(7, 0)
0014 #define K210_PCF_JTAG_TCLK  0   /* JTAG Test Clock */
0015 #define K210_PCF_JTAG_TDI   1   /* JTAG Test Data In */
0016 #define K210_PCF_JTAG_TMS   2   /* JTAG Test Mode Select */
0017 #define K210_PCF_JTAG_TDO   3   /* JTAG Test Data Out */
0018 #define K210_PCF_SPI0_D0    4   /* SPI0 Data 0 */
0019 #define K210_PCF_SPI0_D1    5   /* SPI0 Data 1 */
0020 #define K210_PCF_SPI0_D2    6   /* SPI0 Data 2 */
0021 #define K210_PCF_SPI0_D3    7   /* SPI0 Data 3 */
0022 #define K210_PCF_SPI0_D4    8   /* SPI0 Data 4 */
0023 #define K210_PCF_SPI0_D5    9   /* SPI0 Data 5 */
0024 #define K210_PCF_SPI0_D6    10  /* SPI0 Data 6 */
0025 #define K210_PCF_SPI0_D7    11  /* SPI0 Data 7 */
0026 #define K210_PCF_SPI0_SS0   12  /* SPI0 Chip Select 0 */
0027 #define K210_PCF_SPI0_SS1   13  /* SPI0 Chip Select 1 */
0028 #define K210_PCF_SPI0_SS2   14  /* SPI0 Chip Select 2 */
0029 #define K210_PCF_SPI0_SS3   15  /* SPI0 Chip Select 3 */
0030 #define K210_PCF_SPI0_ARB   16  /* SPI0 Arbitration */
0031 #define K210_PCF_SPI0_SCLK  17  /* SPI0 Serial Clock */
0032 #define K210_PCF_UARTHS_RX  18  /* UART High speed Receiver */
0033 #define K210_PCF_UARTHS_TX  19  /* UART High speed Transmitter */
0034 #define K210_PCF_RESV6      20  /* Reserved function */
0035 #define K210_PCF_RESV7      21  /* Reserved function */
0036 #define K210_PCF_CLK_SPI1   22  /* Clock SPI1 */
0037 #define K210_PCF_CLK_I2C1   23  /* Clock I2C1 */
0038 #define K210_PCF_GPIOHS0    24  /* GPIO High speed 0 */
0039 #define K210_PCF_GPIOHS1    25  /* GPIO High speed 1 */
0040 #define K210_PCF_GPIOHS2    26  /* GPIO High speed 2 */
0041 #define K210_PCF_GPIOHS3    27  /* GPIO High speed 3 */
0042 #define K210_PCF_GPIOHS4    28  /* GPIO High speed 4 */
0043 #define K210_PCF_GPIOHS5    29  /* GPIO High speed 5 */
0044 #define K210_PCF_GPIOHS6    30  /* GPIO High speed 6 */
0045 #define K210_PCF_GPIOHS7    31  /* GPIO High speed 7 */
0046 #define K210_PCF_GPIOHS8    32  /* GPIO High speed 8 */
0047 #define K210_PCF_GPIOHS9    33  /* GPIO High speed 9 */
0048 #define K210_PCF_GPIOHS10   34  /* GPIO High speed 10 */
0049 #define K210_PCF_GPIOHS11   35  /* GPIO High speed 11 */
0050 #define K210_PCF_GPIOHS12   36  /* GPIO High speed 12 */
0051 #define K210_PCF_GPIOHS13   37  /* GPIO High speed 13 */
0052 #define K210_PCF_GPIOHS14   38  /* GPIO High speed 14 */
0053 #define K210_PCF_GPIOHS15   39  /* GPIO High speed 15 */
0054 #define K210_PCF_GPIOHS16   40  /* GPIO High speed 16 */
0055 #define K210_PCF_GPIOHS17   41  /* GPIO High speed 17 */
0056 #define K210_PCF_GPIOHS18   42  /* GPIO High speed 18 */
0057 #define K210_PCF_GPIOHS19   43  /* GPIO High speed 19 */
0058 #define K210_PCF_GPIOHS20   44  /* GPIO High speed 20 */
0059 #define K210_PCF_GPIOHS21   45  /* GPIO High speed 21 */
0060 #define K210_PCF_GPIOHS22   46  /* GPIO High speed 22 */
0061 #define K210_PCF_GPIOHS23   47  /* GPIO High speed 23 */
0062 #define K210_PCF_GPIOHS24   48  /* GPIO High speed 24 */
0063 #define K210_PCF_GPIOHS25   49  /* GPIO High speed 25 */
0064 #define K210_PCF_GPIOHS26   50  /* GPIO High speed 26 */
0065 #define K210_PCF_GPIOHS27   51  /* GPIO High speed 27 */
0066 #define K210_PCF_GPIOHS28   52  /* GPIO High speed 28 */
0067 #define K210_PCF_GPIOHS29   53  /* GPIO High speed 29 */
0068 #define K210_PCF_GPIOHS30   54  /* GPIO High speed 30 */
0069 #define K210_PCF_GPIOHS31   55  /* GPIO High speed 31 */
0070 #define K210_PCF_GPIO0      56  /* GPIO pin 0 */
0071 #define K210_PCF_GPIO1      57  /* GPIO pin 1 */
0072 #define K210_PCF_GPIO2      58  /* GPIO pin 2 */
0073 #define K210_PCF_GPIO3      59  /* GPIO pin 3 */
0074 #define K210_PCF_GPIO4      60  /* GPIO pin 4 */
0075 #define K210_PCF_GPIO5      61  /* GPIO pin 5 */
0076 #define K210_PCF_GPIO6      62  /* GPIO pin 6 */
0077 #define K210_PCF_GPIO7      63  /* GPIO pin 7 */
0078 #define K210_PCF_UART1_RX   64  /* UART1 Receiver */
0079 #define K210_PCF_UART1_TX   65  /* UART1 Transmitter */
0080 #define K210_PCF_UART2_RX   66  /* UART2 Receiver */
0081 #define K210_PCF_UART2_TX   67  /* UART2 Transmitter */
0082 #define K210_PCF_UART3_RX   68  /* UART3 Receiver */
0083 #define K210_PCF_UART3_TX   69  /* UART3 Transmitter */
0084 #define K210_PCF_SPI1_D0    70  /* SPI1 Data 0 */
0085 #define K210_PCF_SPI1_D1    71  /* SPI1 Data 1 */
0086 #define K210_PCF_SPI1_D2    72  /* SPI1 Data 2 */
0087 #define K210_PCF_SPI1_D3    73  /* SPI1 Data 3 */
0088 #define K210_PCF_SPI1_D4    74  /* SPI1 Data 4 */
0089 #define K210_PCF_SPI1_D5    75  /* SPI1 Data 5 */
0090 #define K210_PCF_SPI1_D6    76  /* SPI1 Data 6 */
0091 #define K210_PCF_SPI1_D7    77  /* SPI1 Data 7 */
0092 #define K210_PCF_SPI1_SS0   78  /* SPI1 Chip Select 0 */
0093 #define K210_PCF_SPI1_SS1   79  /* SPI1 Chip Select 1 */
0094 #define K210_PCF_SPI1_SS2   80  /* SPI1 Chip Select 2 */
0095 #define K210_PCF_SPI1_SS3   81  /* SPI1 Chip Select 3 */
0096 #define K210_PCF_SPI1_ARB   82  /* SPI1 Arbitration */
0097 #define K210_PCF_SPI1_SCLK  83  /* SPI1 Serial Clock */
0098 #define K210_PCF_SPI2_D0    84  /* SPI2 Data 0 */
0099 #define K210_PCF_SPI2_SS    85  /* SPI2 Select */
0100 #define K210_PCF_SPI2_SCLK  86  /* SPI2 Serial Clock */
0101 #define K210_PCF_I2S0_MCLK  87  /* I2S0 Master Clock */
0102 #define K210_PCF_I2S0_SCLK  88  /* I2S0 Serial Clock(BCLK) */
0103 #define K210_PCF_I2S0_WS    89  /* I2S0 Word Select(LRCLK) */
0104 #define K210_PCF_I2S0_IN_D0 90  /* I2S0 Serial Data Input 0 */
0105 #define K210_PCF_I2S0_IN_D1 91  /* I2S0 Serial Data Input 1 */
0106 #define K210_PCF_I2S0_IN_D2 92  /* I2S0 Serial Data Input 2 */
0107 #define K210_PCF_I2S0_IN_D3 93  /* I2S0 Serial Data Input 3 */
0108 #define K210_PCF_I2S0_OUT_D0    94  /* I2S0 Serial Data Output 0 */
0109 #define K210_PCF_I2S0_OUT_D1    95  /* I2S0 Serial Data Output 1 */
0110 #define K210_PCF_I2S0_OUT_D2    96  /* I2S0 Serial Data Output 2 */
0111 #define K210_PCF_I2S0_OUT_D3    97  /* I2S0 Serial Data Output 3 */
0112 #define K210_PCF_I2S1_MCLK  98  /* I2S1 Master Clock */
0113 #define K210_PCF_I2S1_SCLK  99  /* I2S1 Serial Clock(BCLK) */
0114 #define K210_PCF_I2S1_WS    100 /* I2S1 Word Select(LRCLK) */
0115 #define K210_PCF_I2S1_IN_D0 101 /* I2S1 Serial Data Input 0 */
0116 #define K210_PCF_I2S1_IN_D1 102 /* I2S1 Serial Data Input 1 */
0117 #define K210_PCF_I2S1_IN_D2 103 /* I2S1 Serial Data Input 2 */
0118 #define K210_PCF_I2S1_IN_D3 104 /* I2S1 Serial Data Input 3 */
0119 #define K210_PCF_I2S1_OUT_D0    105 /* I2S1 Serial Data Output 0 */
0120 #define K210_PCF_I2S1_OUT_D1    106 /* I2S1 Serial Data Output 1 */
0121 #define K210_PCF_I2S1_OUT_D2    107 /* I2S1 Serial Data Output 2 */
0122 #define K210_PCF_I2S1_OUT_D3    108 /* I2S1 Serial Data Output 3 */
0123 #define K210_PCF_I2S2_MCLK  109 /* I2S2 Master Clock */
0124 #define K210_PCF_I2S2_SCLK  110 /* I2S2 Serial Clock(BCLK) */
0125 #define K210_PCF_I2S2_WS    111 /* I2S2 Word Select(LRCLK) */
0126 #define K210_PCF_I2S2_IN_D0 112 /* I2S2 Serial Data Input 0 */
0127 #define K210_PCF_I2S2_IN_D1 113 /* I2S2 Serial Data Input 1 */
0128 #define K210_PCF_I2S2_IN_D2 114 /* I2S2 Serial Data Input 2 */
0129 #define K210_PCF_I2S2_IN_D3 115 /* I2S2 Serial Data Input 3 */
0130 #define K210_PCF_I2S2_OUT_D0    116 /* I2S2 Serial Data Output 0 */
0131 #define K210_PCF_I2S2_OUT_D1    117 /* I2S2 Serial Data Output 1 */
0132 #define K210_PCF_I2S2_OUT_D2    118 /* I2S2 Serial Data Output 2 */
0133 #define K210_PCF_I2S2_OUT_D3    119 /* I2S2 Serial Data Output 3 */
0134 #define K210_PCF_RESV0      120 /* Reserved function */
0135 #define K210_PCF_RESV1      121 /* Reserved function */
0136 #define K210_PCF_RESV2      122 /* Reserved function */
0137 #define K210_PCF_RESV3      123 /* Reserved function */
0138 #define K210_PCF_RESV4      124 /* Reserved function */
0139 #define K210_PCF_RESV5      125 /* Reserved function */
0140 #define K210_PCF_I2C0_SCLK  126 /* I2C0 Serial Clock */
0141 #define K210_PCF_I2C0_SDA   127 /* I2C0 Serial Data */
0142 #define K210_PCF_I2C1_SCLK  128 /* I2C1 Serial Clock */
0143 #define K210_PCF_I2C1_SDA   129 /* I2C1 Serial Data */
0144 #define K210_PCF_I2C2_SCLK  130 /* I2C2 Serial Clock */
0145 #define K210_PCF_I2C2_SDA   131 /* I2C2 Serial Data */
0146 #define K210_PCF_DVP_XCLK   132 /* DVP System Clock */
0147 #define K210_PCF_DVP_RST    133 /* DVP System Reset */
0148 #define K210_PCF_DVP_PWDN   134 /* DVP Power Down Mode */
0149 #define K210_PCF_DVP_VSYNC  135 /* DVP Vertical Sync */
0150 #define K210_PCF_DVP_HSYNC  136 /* DVP Horizontal Sync */
0151 #define K210_PCF_DVP_PCLK   137 /* Pixel Clock */
0152 #define K210_PCF_DVP_D0     138 /* Data Bit 0 */
0153 #define K210_PCF_DVP_D1     139 /* Data Bit 1 */
0154 #define K210_PCF_DVP_D2     140 /* Data Bit 2 */
0155 #define K210_PCF_DVP_D3     141 /* Data Bit 3 */
0156 #define K210_PCF_DVP_D4     142 /* Data Bit 4 */
0157 #define K210_PCF_DVP_D5     143 /* Data Bit 5 */
0158 #define K210_PCF_DVP_D6     144 /* Data Bit 6 */
0159 #define K210_PCF_DVP_D7     145 /* Data Bit 7 */
0160 #define K210_PCF_SCCB_SCLK  146 /* Serial Camera Control Bus Clock */
0161 #define K210_PCF_SCCB_SDA   147 /* Serial Camera Control Bus Data */
0162 #define K210_PCF_UART1_CTS  148 /* UART1 Clear To Send */
0163 #define K210_PCF_UART1_DSR  149 /* UART1 Data Set Ready */
0164 #define K210_PCF_UART1_DCD  150 /* UART1 Data Carrier Detect */
0165 #define K210_PCF_UART1_RI   151 /* UART1 Ring Indicator */
0166 #define K210_PCF_UART1_SIR_IN   152 /* UART1 Serial Infrared Input */
0167 #define K210_PCF_UART1_DTR  153 /* UART1 Data Terminal Ready */
0168 #define K210_PCF_UART1_RTS  154 /* UART1 Request To Send */
0169 #define K210_PCF_UART1_OUT2 155 /* UART1 User-designated Output 2 */
0170 #define K210_PCF_UART1_OUT1 156 /* UART1 User-designated Output 1 */
0171 #define K210_PCF_UART1_SIR_OUT  157 /* UART1 Serial Infrared Output */
0172 #define K210_PCF_UART1_BAUD 158 /* UART1 Transmit Clock Output */
0173 #define K210_PCF_UART1_RE   159 /* UART1 Receiver Output Enable */
0174 #define K210_PCF_UART1_DE   160 /* UART1 Driver Output Enable */
0175 #define K210_PCF_UART1_RS485_EN 161 /* UART1 RS485 Enable */
0176 #define K210_PCF_UART2_CTS  162 /* UART2 Clear To Send */
0177 #define K210_PCF_UART2_DSR  163 /* UART2 Data Set Ready */
0178 #define K210_PCF_UART2_DCD  164 /* UART2 Data Carrier Detect */
0179 #define K210_PCF_UART2_RI   165 /* UART2 Ring Indicator */
0180 #define K210_PCF_UART2_SIR_IN   166 /* UART2 Serial Infrared Input */
0181 #define K210_PCF_UART2_DTR  167 /* UART2 Data Terminal Ready */
0182 #define K210_PCF_UART2_RTS  168 /* UART2 Request To Send */
0183 #define K210_PCF_UART2_OUT2 169 /* UART2 User-designated Output 2 */
0184 #define K210_PCF_UART2_OUT1 170 /* UART2 User-designated Output 1 */
0185 #define K210_PCF_UART2_SIR_OUT  171 /* UART2 Serial Infrared Output */
0186 #define K210_PCF_UART2_BAUD 172 /* UART2 Transmit Clock Output */
0187 #define K210_PCF_UART2_RE   173 /* UART2 Receiver Output Enable */
0188 #define K210_PCF_UART2_DE   174 /* UART2 Driver Output Enable */
0189 #define K210_PCF_UART2_RS485_EN 175 /* UART2 RS485 Enable */
0190 #define K210_PCF_UART3_CTS  176 /* UART3 Clear To Send */
0191 #define K210_PCF_UART3_DSR  177 /* UART3 Data Set Ready */
0192 #define K210_PCF_UART3_DCD  178 /* UART3 Data Carrier Detect */
0193 #define K210_PCF_UART3_RI   179 /* UART3 Ring Indicator */
0194 #define K210_PCF_UART3_SIR_IN   180 /* UART3 Serial Infrared Input */
0195 #define K210_PCF_UART3_DTR  181 /* UART3 Data Terminal Ready */
0196 #define K210_PCF_UART3_RTS  182 /* UART3 Request To Send */
0197 #define K210_PCF_UART3_OUT2 183 /* UART3 User-designated Output 2 */
0198 #define K210_PCF_UART3_OUT1 184 /* UART3 User-designated Output 1 */
0199 #define K210_PCF_UART3_SIR_OUT  185 /* UART3 Serial Infrared Output */
0200 #define K210_PCF_UART3_BAUD 186 /* UART3 Transmit Clock Output */
0201 #define K210_PCF_UART3_RE   187 /* UART3 Receiver Output Enable */
0202 #define K210_PCF_UART3_DE   188 /* UART3 Driver Output Enable */
0203 #define K210_PCF_UART3_RS485_EN 189 /* UART3 RS485 Enable */
0204 #define K210_PCF_TIMER0_TOGGLE1 190 /* TIMER0 Toggle Output 1 */
0205 #define K210_PCF_TIMER0_TOGGLE2 191 /* TIMER0 Toggle Output 2 */
0206 #define K210_PCF_TIMER0_TOGGLE3 192 /* TIMER0 Toggle Output 3 */
0207 #define K210_PCF_TIMER0_TOGGLE4 193 /* TIMER0 Toggle Output 4 */
0208 #define K210_PCF_TIMER1_TOGGLE1 194 /* TIMER1 Toggle Output 1 */
0209 #define K210_PCF_TIMER1_TOGGLE2 195 /* TIMER1 Toggle Output 2 */
0210 #define K210_PCF_TIMER1_TOGGLE3 196 /* TIMER1 Toggle Output 3 */
0211 #define K210_PCF_TIMER1_TOGGLE4 197 /* TIMER1 Toggle Output 4 */
0212 #define K210_PCF_TIMER2_TOGGLE1 198 /* TIMER2 Toggle Output 1 */
0213 #define K210_PCF_TIMER2_TOGGLE2 199 /* TIMER2 Toggle Output 2 */
0214 #define K210_PCF_TIMER2_TOGGLE3 200 /* TIMER2 Toggle Output 3 */
0215 #define K210_PCF_TIMER2_TOGGLE4 201 /* TIMER2 Toggle Output 4 */
0216 #define K210_PCF_CLK_SPI2   202 /* Clock SPI2 */
0217 #define K210_PCF_CLK_I2C2   203 /* Clock I2C2 */
0218 #define K210_PCF_INTERNAL0  204 /* Internal function signal 0 */
0219 #define K210_PCF_INTERNAL1  205 /* Internal function signal 1 */
0220 #define K210_PCF_INTERNAL2  206 /* Internal function signal 2 */
0221 #define K210_PCF_INTERNAL3  207 /* Internal function signal 3 */
0222 #define K210_PCF_INTERNAL4  208 /* Internal function signal 4 */
0223 #define K210_PCF_INTERNAL5  209 /* Internal function signal 5 */
0224 #define K210_PCF_INTERNAL6  210 /* Internal function signal 6 */
0225 #define K210_PCF_INTERNAL7  211 /* Internal function signal 7 */
0226 #define K210_PCF_INTERNAL8  212 /* Internal function signal 8 */
0227 #define K210_PCF_INTERNAL9  213 /* Internal function signal 9 */
0228 #define K210_PCF_INTERNAL10 214 /* Internal function signal 10 */
0229 #define K210_PCF_INTERNAL11 215 /* Internal function signal 11 */
0230 #define K210_PCF_INTERNAL12 216 /* Internal function signal 12 */
0231 #define K210_PCF_INTERNAL13 217 /* Internal function signal 13 */
0232 #define K210_PCF_INTERNAL14 218 /* Internal function signal 14 */
0233 #define K210_PCF_INTERNAL15 219 /* Internal function signal 15 */
0234 #define K210_PCF_INTERNAL16 220 /* Internal function signal 16 */
0235 #define K210_PCF_INTERNAL17 221 /* Internal function signal 17 */
0236 #define K210_PCF_CONSTANT   222 /* Constant function */
0237 #define K210_PCF_INTERNAL18 223 /* Internal function signal 18 */
0238 #define K210_PCF_DEBUG0     224 /* Debug function 0 */
0239 #define K210_PCF_DEBUG1     225 /* Debug function 1 */
0240 #define K210_PCF_DEBUG2     226 /* Debug function 2 */
0241 #define K210_PCF_DEBUG3     227 /* Debug function 3 */
0242 #define K210_PCF_DEBUG4     228 /* Debug function 4 */
0243 #define K210_PCF_DEBUG5     229 /* Debug function 5 */
0244 #define K210_PCF_DEBUG6     230 /* Debug function 6 */
0245 #define K210_PCF_DEBUG7     231 /* Debug function 7 */
0246 #define K210_PCF_DEBUG8     232 /* Debug function 8 */
0247 #define K210_PCF_DEBUG9     233 /* Debug function 9 */
0248 #define K210_PCF_DEBUG10    234 /* Debug function 10 */
0249 #define K210_PCF_DEBUG11    235 /* Debug function 11 */
0250 #define K210_PCF_DEBUG12    236 /* Debug function 12 */
0251 #define K210_PCF_DEBUG13    237 /* Debug function 13 */
0252 #define K210_PCF_DEBUG14    238 /* Debug function 14 */
0253 #define K210_PCF_DEBUG15    239 /* Debug function 15 */
0254 #define K210_PCF_DEBUG16    240 /* Debug function 16 */
0255 #define K210_PCF_DEBUG17    241 /* Debug function 17 */
0256 #define K210_PCF_DEBUG18    242 /* Debug function 18 */
0257 #define K210_PCF_DEBUG19    243 /* Debug function 19 */
0258 #define K210_PCF_DEBUG20    244 /* Debug function 20 */
0259 #define K210_PCF_DEBUG21    245 /* Debug function 21 */
0260 #define K210_PCF_DEBUG22    246 /* Debug function 22 */
0261 #define K210_PCF_DEBUG23    247 /* Debug function 23 */
0262 #define K210_PCF_DEBUG24    248 /* Debug function 24 */
0263 #define K210_PCF_DEBUG25    249 /* Debug function 25 */
0264 #define K210_PCF_DEBUG26    250 /* Debug function 26 */
0265 #define K210_PCF_DEBUG27    251 /* Debug function 27 */
0266 #define K210_PCF_DEBUG28    252 /* Debug function 28 */
0267 #define K210_PCF_DEBUG29    253 /* Debug function 29 */
0268 #define K210_PCF_DEBUG30    254 /* Debug function 30 */
0269 #define K210_PCF_DEBUG31    255 /* Debug function 31 */
0270 
0271 #define K210_FPIOA(pin, func)       (((pin) << 16) | (func))
0272 
0273 #define K210_PC_POWER_3V3   0
0274 #define K210_PC_POWER_1V8   1
0275 
0276 #endif /* PINCTRL_K210_FPIOA_H */