github.com/tinygo-org/tinygo@v0.31.3-0.20240404173401-90b0bf646c27/src/machine/board_k210.go (about)

     1  //go:build maixbit
     2  
     3  // Chip datasheet: https://s3.cn-north-1.amazonaws.com.cn/dl.kendryte.com/documents/kendryte_datasheet_20181011163248_en.pdf
     4  
     5  package machine
     6  
     7  // K210 IO pins.
     8  const (
     9  	P00 Pin = 0
    10  	P01 Pin = 1
    11  	P02 Pin = 2
    12  	P03 Pin = 3
    13  	P04 Pin = 4
    14  	P05 Pin = 5
    15  	P06 Pin = 6
    16  	P07 Pin = 7
    17  	P08 Pin = 8
    18  	P09 Pin = 9
    19  	P10 Pin = 10
    20  	P11 Pin = 11
    21  	P12 Pin = 12
    22  	P13 Pin = 13
    23  	P14 Pin = 14
    24  	P15 Pin = 15
    25  	P16 Pin = 16
    26  	P17 Pin = 17
    27  	P18 Pin = 18
    28  	P19 Pin = 19
    29  	P20 Pin = 20
    30  	P21 Pin = 21
    31  	P22 Pin = 22
    32  	P23 Pin = 23
    33  	P24 Pin = 24
    34  	P25 Pin = 25
    35  	P26 Pin = 26
    36  	P27 Pin = 27
    37  	P28 Pin = 28
    38  	P29 Pin = 29
    39  	P30 Pin = 30
    40  	P31 Pin = 31
    41  	P32 Pin = 32
    42  	P33 Pin = 33
    43  	P34 Pin = 34
    44  	P35 Pin = 35
    45  	P36 Pin = 36
    46  	P37 Pin = 37
    47  	P38 Pin = 38
    48  	P39 Pin = 39
    49  	P40 Pin = 40
    50  	P41 Pin = 41
    51  	P42 Pin = 42
    52  	P43 Pin = 43
    53  	P44 Pin = 44
    54  	P45 Pin = 45
    55  	P46 Pin = 46
    56  	P47 Pin = 47
    57  )
    58  
    59  type FPIOAFunction uint8
    60  
    61  // Every pin on the Kendryte K210 is assigned to an FPIOA function.
    62  // Each pin can be configured with every function below.
    63  const (
    64  	FUNC_JTAG_TCLK           FPIOAFunction = 0   // JTAG Test Clock
    65  	FUNC_JTAG_TDI            FPIOAFunction = 1   // JTAG Test Data In
    66  	FUNC_JTAG_TMS            FPIOAFunction = 2   // JTAG Test Mode Select
    67  	FUNC_JTAG_TDO            FPIOAFunction = 3   // JTAG Test Data Out
    68  	FUNC_SPI0_D0             FPIOAFunction = 4   // SPI0 Data 0
    69  	FUNC_SPI0_D1             FPIOAFunction = 5   // SPI0 Data 1
    70  	FUNC_SPI0_D2             FPIOAFunction = 6   // SPI0 Data 2
    71  	FUNC_SPI0_D3             FPIOAFunction = 7   // SPI0 Data 3
    72  	FUNC_SPI0_D4             FPIOAFunction = 8   // SPI0 Data 4
    73  	FUNC_SPI0_D5             FPIOAFunction = 9   // SPI0 Data 5
    74  	FUNC_SPI0_D6             FPIOAFunction = 10  // SPI0 Data 6
    75  	FUNC_SPI0_D7             FPIOAFunction = 11  // SPI0 Data 7
    76  	FUNC_SPI0_SS0            FPIOAFunction = 12  // SPI0 Chip Select 0
    77  	FUNC_SPI0_SS1            FPIOAFunction = 13  // SPI0 Chip Select 1
    78  	FUNC_SPI0_SS2            FPIOAFunction = 14  // SPI0 Chip Select 2
    79  	FUNC_SPI0_SS3            FPIOAFunction = 15  // SPI0 Chip Select 3
    80  	FUNC_SPI0_ARB            FPIOAFunction = 16  // SPI0 Arbitration
    81  	FUNC_SPI0_SCLK           FPIOAFunction = 17  // SPI0 Serial Clock
    82  	FUNC_UARTHS_RX           FPIOAFunction = 18  // UART High speed Receiver
    83  	FUNC_UARTHS_TX           FPIOAFunction = 19  // UART High speed Transmitter
    84  	FUNC_RESV6               FPIOAFunction = 20  // Reserved function
    85  	FUNC_RESV7               FPIOAFunction = 21  // Reserved function
    86  	FUNC_CLK_SPI1            FPIOAFunction = 22  // Clock SPI1
    87  	FUNC_CLK_I2C1            FPIOAFunction = 23  // Clock I2C1
    88  	FUNC_GPIOHS0             FPIOAFunction = 24  // GPIO High speed 0
    89  	FUNC_GPIOHS1             FPIOAFunction = 25  // GPIO High speed 1
    90  	FUNC_GPIOHS2             FPIOAFunction = 26  // GPIO High speed 2
    91  	FUNC_GPIOHS3             FPIOAFunction = 27  // GPIO High speed 3
    92  	FUNC_GPIOHS4             FPIOAFunction = 28  // GPIO High speed 4
    93  	FUNC_GPIOHS5             FPIOAFunction = 29  // GPIO High speed 5
    94  	FUNC_GPIOHS6             FPIOAFunction = 30  // GPIO High speed 6
    95  	FUNC_GPIOHS7             FPIOAFunction = 31  // GPIO High speed 7
    96  	FUNC_GPIOHS8             FPIOAFunction = 32  // GPIO High speed 8
    97  	FUNC_GPIOHS9             FPIOAFunction = 33  // GPIO High speed 9
    98  	FUNC_GPIOHS10            FPIOAFunction = 34  // GPIO High speed 10
    99  	FUNC_GPIOHS11            FPIOAFunction = 35  // GPIO High speed 11
   100  	FUNC_GPIOHS12            FPIOAFunction = 36  // GPIO High speed 12
   101  	FUNC_GPIOHS13            FPIOAFunction = 37  // GPIO High speed 13
   102  	FUNC_GPIOHS14            FPIOAFunction = 38  // GPIO High speed 14
   103  	FUNC_GPIOHS15            FPIOAFunction = 39  // GPIO High speed 15
   104  	FUNC_GPIOHS16            FPIOAFunction = 40  // GPIO High speed 16
   105  	FUNC_GPIOHS17            FPIOAFunction = 41  // GPIO High speed 17
   106  	FUNC_GPIOHS18            FPIOAFunction = 42  // GPIO High speed 18
   107  	FUNC_GPIOHS19            FPIOAFunction = 43  // GPIO High speed 19
   108  	FUNC_GPIOHS20            FPIOAFunction = 44  // GPIO High speed 20
   109  	FUNC_GPIOHS21            FPIOAFunction = 45  // GPIO High speed 21
   110  	FUNC_GPIOHS22            FPIOAFunction = 46  // GPIO High speed 22
   111  	FUNC_GPIOHS23            FPIOAFunction = 47  // GPIO High speed 23
   112  	FUNC_GPIOHS24            FPIOAFunction = 48  // GPIO High speed 24
   113  	FUNC_GPIOHS25            FPIOAFunction = 49  // GPIO High speed 25
   114  	FUNC_GPIOHS26            FPIOAFunction = 50  // GPIO High speed 26
   115  	FUNC_GPIOHS27            FPIOAFunction = 51  // GPIO High speed 27
   116  	FUNC_GPIOHS28            FPIOAFunction = 52  // GPIO High speed 28
   117  	FUNC_GPIOHS29            FPIOAFunction = 53  // GPIO High speed 29
   118  	FUNC_GPIOHS30            FPIOAFunction = 54  // GPIO High speed 30
   119  	FUNC_GPIOHS31            FPIOAFunction = 55  // GPIO High speed 31
   120  	FUNC_GPIO0               FPIOAFunction = 56  // GPIO pin 0
   121  	FUNC_GPIO1               FPIOAFunction = 57  // GPIO pin 1
   122  	FUNC_GPIO2               FPIOAFunction = 58  // GPIO pin 2
   123  	FUNC_GPIO3               FPIOAFunction = 59  // GPIO pin 3
   124  	FUNC_GPIO4               FPIOAFunction = 60  // GPIO pin 4
   125  	FUNC_GPIO5               FPIOAFunction = 61  // GPIO pin 5
   126  	FUNC_GPIO6               FPIOAFunction = 62  // GPIO pin 6
   127  	FUNC_GPIO7               FPIOAFunction = 63  // GPIO pin 7
   128  	FUNC_UART1_RX            FPIOAFunction = 64  // UART1 Receiver
   129  	FUNC_UART1_TX            FPIOAFunction = 65  // UART1 Transmitter
   130  	FUNC_UART2_RX            FPIOAFunction = 66  // UART2 Receiver
   131  	FUNC_UART2_TX            FPIOAFunction = 67  // UART2 Transmitter
   132  	FUNC_UART3_RX            FPIOAFunction = 68  // UART3 Receiver
   133  	FUNC_UART3_TX            FPIOAFunction = 69  // UART3 Transmitter
   134  	FUNC_SPI1_D0             FPIOAFunction = 70  // SPI1 Data 0
   135  	FUNC_SPI1_D1             FPIOAFunction = 71  // SPI1 Data 1
   136  	FUNC_SPI1_D2             FPIOAFunction = 72  // SPI1 Data 2
   137  	FUNC_SPI1_D3             FPIOAFunction = 73  // SPI1 Data 3
   138  	FUNC_SPI1_D4             FPIOAFunction = 74  // SPI1 Data 4
   139  	FUNC_SPI1_D5             FPIOAFunction = 75  // SPI1 Data 5
   140  	FUNC_SPI1_D6             FPIOAFunction = 76  // SPI1 Data 6
   141  	FUNC_SPI1_D7             FPIOAFunction = 77  // SPI1 Data 7
   142  	FUNC_SPI1_SS0            FPIOAFunction = 78  // SPI1 Chip Select 0
   143  	FUNC_SPI1_SS1            FPIOAFunction = 79  // SPI1 Chip Select 1
   144  	FUNC_SPI1_SS2            FPIOAFunction = 80  // SPI1 Chip Select 2
   145  	FUNC_SPI1_SS3            FPIOAFunction = 81  // SPI1 Chip Select 3
   146  	FUNC_SPI1_ARB            FPIOAFunction = 82  // SPI1 Arbitration
   147  	FUNC_SPI1_SCLK           FPIOAFunction = 83  // SPI1 Serial Clock
   148  	FUNC_SPI_PERIPHERAL_D0   FPIOAFunction = 84  // SPI Peripheral Data 0
   149  	FUNC_SPI_PERIPHERAL_SS   FPIOAFunction = 85  // SPI Peripheral Select
   150  	FUNC_SPI_PERIPHERAL_SCLK FPIOAFunction = 86  // SPI Peripheral Serial Clock
   151  	FUNC_I2S0_MCLK           FPIOAFunction = 87  // I2S0 Main Clock
   152  	FUNC_I2S0_SCLK           FPIOAFunction = 88  // I2S0 Serial Clock(BCLK)
   153  	FUNC_I2S0_WS             FPIOAFunction = 89  // I2S0 Word Select(LRCLK)
   154  	FUNC_I2S0_IN_D0          FPIOAFunction = 90  // I2S0 Serial Data Input 0
   155  	FUNC_I2S0_IN_D1          FPIOAFunction = 91  // I2S0 Serial Data Input 1
   156  	FUNC_I2S0_IN_D2          FPIOAFunction = 92  // I2S0 Serial Data Input 2
   157  	FUNC_I2S0_IN_D3          FPIOAFunction = 93  // I2S0 Serial Data Input 3
   158  	FUNC_I2S0_OUT_D0         FPIOAFunction = 94  // I2S0 Serial Data Output 0
   159  	FUNC_I2S0_OUT_D1         FPIOAFunction = 95  // I2S0 Serial Data Output 1
   160  	FUNC_I2S0_OUT_D2         FPIOAFunction = 96  // I2S0 Serial Data Output 2
   161  	FUNC_I2S0_OUT_D3         FPIOAFunction = 97  // I2S0 Serial Data Output 3
   162  	FUNC_I2S1_MCLK           FPIOAFunction = 98  // I2S1 Main Clock
   163  	FUNC_I2S1_SCLK           FPIOAFunction = 99  // I2S1 Serial Clock(BCLK)
   164  	FUNC_I2S1_WS             FPIOAFunction = 100 // I2S1 Word Select(LRCLK)
   165  	FUNC_I2S1_IN_D0          FPIOAFunction = 101 // I2S1 Serial Data Input 0
   166  	FUNC_I2S1_IN_D1          FPIOAFunction = 102 // I2S1 Serial Data Input 1
   167  	FUNC_I2S1_IN_D2          FPIOAFunction = 103 // I2S1 Serial Data Input 2
   168  	FUNC_I2S1_IN_D3          FPIOAFunction = 104 // I2S1 Serial Data Input 3
   169  	FUNC_I2S1_OUT_D0         FPIOAFunction = 105 // I2S1 Serial Data Output 0
   170  	FUNC_I2S1_OUT_D1         FPIOAFunction = 106 // I2S1 Serial Data Output 1
   171  	FUNC_I2S1_OUT_D2         FPIOAFunction = 107 // I2S1 Serial Data Output 2
   172  	FUNC_I2S1_OUT_D3         FPIOAFunction = 108 // I2S1 Serial Data Output 3
   173  	FUNC_I2S2_MCLK           FPIOAFunction = 109 // I2S2 Main Clock
   174  	FUNC_I2S2_SCLK           FPIOAFunction = 110 // I2S2 Serial Clock(BCLK)
   175  	FUNC_I2S2_WS             FPIOAFunction = 111 // I2S2 Word Select(LRCLK)
   176  	FUNC_I2S2_IN_D0          FPIOAFunction = 112 // I2S2 Serial Data Input 0
   177  	FUNC_I2S2_IN_D1          FPIOAFunction = 113 // I2S2 Serial Data Input 1
   178  	FUNC_I2S2_IN_D2          FPIOAFunction = 114 // I2S2 Serial Data Input 2
   179  	FUNC_I2S2_IN_D3          FPIOAFunction = 115 // I2S2 Serial Data Input 3
   180  	FUNC_I2S2_OUT_D0         FPIOAFunction = 116 // I2S2 Serial Data Output 0
   181  	FUNC_I2S2_OUT_D1         FPIOAFunction = 117 // I2S2 Serial Data Output 1
   182  	FUNC_I2S2_OUT_D2         FPIOAFunction = 118 // I2S2 Serial Data Output 2
   183  	FUNC_I2S2_OUT_D3         FPIOAFunction = 119 // I2S2 Serial Data Output 3
   184  	FUNC_RESV0               FPIOAFunction = 120 // Reserved function
   185  	FUNC_RESV1               FPIOAFunction = 121 // Reserved function
   186  	FUNC_RESV2               FPIOAFunction = 122 // Reserved function
   187  	FUNC_RESV3               FPIOAFunction = 123 // Reserved function
   188  	FUNC_RESV4               FPIOAFunction = 124 // Reserved function
   189  	FUNC_RESV5               FPIOAFunction = 125 // Reserved function
   190  	FUNC_I2C0_SCLK           FPIOAFunction = 126 // I2C0 Serial Clock
   191  	FUNC_I2C0_SDA            FPIOAFunction = 127 // I2C0 Serial Data
   192  	FUNC_I2C1_SCLK           FPIOAFunction = 128 // I2C1 Serial Clock
   193  	FUNC_I2C1_SDA            FPIOAFunction = 129 // I2C1 Serial Data
   194  	FUNC_I2C2_SCLK           FPIOAFunction = 130 // I2C2 Serial Clock
   195  	FUNC_I2C2_SDA            FPIOAFunction = 131 // I2C2 Serial Data
   196  	FUNC_CMOS_XCLK           FPIOAFunction = 132 // DVP System Clock
   197  	FUNC_CMOS_RST            FPIOAFunction = 133 // DVP System Reset
   198  	FUNC_CMOS_PWDN           FPIOAFunction = 134 // DVP Power Down Mode
   199  	FUNC_CMOS_VSYNC          FPIOAFunction = 135 // DVP Vertical Sync
   200  	FUNC_CMOS_HREF           FPIOAFunction = 136 // DVP Horizontal Reference output
   201  	FUNC_CMOS_PCLK           FPIOAFunction = 137 // Pixel Clock
   202  	FUNC_CMOS_D0             FPIOAFunction = 138 // Data Bit 0
   203  	FUNC_CMOS_D1             FPIOAFunction = 139 // Data Bit 1
   204  	FUNC_CMOS_D2             FPIOAFunction = 140 // Data Bit 2
   205  	FUNC_CMOS_D3             FPIOAFunction = 141 // Data Bit 3
   206  	FUNC_CMOS_D4             FPIOAFunction = 142 // Data Bit 4
   207  	FUNC_CMOS_D5             FPIOAFunction = 143 // Data Bit 5
   208  	FUNC_CMOS_D6             FPIOAFunction = 144 // Data Bit 6
   209  	FUNC_CMOS_D7             FPIOAFunction = 145 // Data Bit 7
   210  	FUNC_SCCB_SCLK           FPIOAFunction = 146 // SCCB Serial Clock
   211  	FUNC_SCCB_SDA            FPIOAFunction = 147 // SCCB Serial Data
   212  	FUNC_UART1_CTS           FPIOAFunction = 148 // UART1 Clear To Send
   213  	FUNC_UART1_DSR           FPIOAFunction = 149 // UART1 Data Set Ready
   214  	FUNC_UART1_DCD           FPIOAFunction = 150 // UART1 Data Carrier Detect
   215  	FUNC_UART1_RI            FPIOAFunction = 151 // UART1 Ring Indicator
   216  	FUNC_UART1_SIR_IN        FPIOAFunction = 152 // UART1 Serial Infrared Input
   217  	FUNC_UART1_DTR           FPIOAFunction = 153 // UART1 Data Terminal Ready
   218  	FUNC_UART1_RTS           FPIOAFunction = 154 // UART1 Request To Send
   219  	FUNC_UART1_OUT2          FPIOAFunction = 155 // UART1 User-designated Output 2
   220  	FUNC_UART1_OUT1          FPIOAFunction = 156 // UART1 User-designated Output 1
   221  	FUNC_UART1_SIR_OUT       FPIOAFunction = 157 // UART1 Serial Infrared Output
   222  	FUNC_UART1_BAUD          FPIOAFunction = 158 // UART1 Transmit Clock Output
   223  	FUNC_UART1_RE            FPIOAFunction = 159 // UART1 Receiver Output Enable
   224  	FUNC_UART1_DE            FPIOAFunction = 160 // UART1 Driver Output Enable
   225  	FUNC_UART1_RS485_EN      FPIOAFunction = 161 // UART1 RS485 Enable
   226  	FUNC_UART2_CTS           FPIOAFunction = 162 // UART2 Clear To Send
   227  	FUNC_UART2_DSR           FPIOAFunction = 163 // UART2 Data Set Ready
   228  	FUNC_UART2_DCD           FPIOAFunction = 164 // UART2 Data Carrier Detect
   229  	FUNC_UART2_RI            FPIOAFunction = 165 // UART2 Ring Indicator
   230  	FUNC_UART2_SIR_IN        FPIOAFunction = 166 // UART2 Serial Infrared Input
   231  	FUNC_UART2_DTR           FPIOAFunction = 167 // UART2 Data Terminal Ready
   232  	FUNC_UART2_RTS           FPIOAFunction = 168 // UART2 Request To Send
   233  	FUNC_UART2_OUT2          FPIOAFunction = 169 // UART2 User-designated Output 2
   234  	FUNC_UART2_OUT1          FPIOAFunction = 170 // UART2 User-designated Output 1
   235  	FUNC_UART2_SIR_OUT       FPIOAFunction = 171 // UART2 Serial Infrared Output
   236  	FUNC_UART2_BAUD          FPIOAFunction = 172 // UART2 Transmit Clock Output
   237  	FUNC_UART2_RE            FPIOAFunction = 173 // UART2 Receiver Output Enable
   238  	FUNC_UART2_DE            FPIOAFunction = 174 // UART2 Driver Output Enable
   239  	FUNC_UART2_RS485_EN      FPIOAFunction = 175 // UART2 RS485 Enable
   240  	FUNC_UART3_CTS           FPIOAFunction = 176 // UART3 Clear To Send
   241  	FUNC_UART3_DSR           FPIOAFunction = 177 // UART3 Data Set Ready
   242  	FUNC_UART3_DCD           FPIOAFunction = 178 // UART3 Data Carrier Detect
   243  	FUNC_UART3_RI            FPIOAFunction = 179 // UART3 Ring Indicator
   244  	FUNC_UART3_SIR_IN        FPIOAFunction = 180 // UART3 Serial Infrared Input
   245  	FUNC_UART3_DTR           FPIOAFunction = 181 // UART3 Data Terminal Ready
   246  	FUNC_UART3_RTS           FPIOAFunction = 182 // UART3 Request To Send
   247  	FUNC_UART3_OUT2          FPIOAFunction = 183 // UART3 User-designated Output 2
   248  	FUNC_UART3_OUT1          FPIOAFunction = 184 // UART3 User-designated Output 1
   249  	FUNC_UART3_SIR_OUT       FPIOAFunction = 185 // UART3 Serial Infrared Output
   250  	FUNC_UART3_BAUD          FPIOAFunction = 186 // UART3 Transmit Clock Output
   251  	FUNC_UART3_RE            FPIOAFunction = 187 // UART3 Receiver Output Enable
   252  	FUNC_UART3_DE            FPIOAFunction = 188 // UART3 Driver Output Enable
   253  	FUNC_UART3_RS485_EN      FPIOAFunction = 189 // UART3 RS485 Enable
   254  	FUNC_TIMER0_TOGGLE1      FPIOAFunction = 190 // TIMER0 Toggle Output 1
   255  	FUNC_TIMER0_TOGGLE2      FPIOAFunction = 191 // TIMER0 Toggle Output 2
   256  	FUNC_TIMER0_TOGGLE3      FPIOAFunction = 192 // TIMER0 Toggle Output 3
   257  	FUNC_TIMER0_TOGGLE4      FPIOAFunction = 193 // TIMER0 Toggle Output 4
   258  	FUNC_TIMER1_TOGGLE1      FPIOAFunction = 194 // TIMER1 Toggle Output 1
   259  	FUNC_TIMER1_TOGGLE2      FPIOAFunction = 195 // TIMER1 Toggle Output 2
   260  	FUNC_TIMER1_TOGGLE3      FPIOAFunction = 196 // TIMER1 Toggle Output 3
   261  	FUNC_TIMER1_TOGGLE4      FPIOAFunction = 197 // TIMER1 Toggle Output 4
   262  	FUNC_TIMER2_TOGGLE1      FPIOAFunction = 198 // TIMER2 Toggle Output 1
   263  	FUNC_TIMER2_TOGGLE2      FPIOAFunction = 199 // TIMER2 Toggle Output 2
   264  	FUNC_TIMER2_TOGGLE3      FPIOAFunction = 200 // TIMER2 Toggle Output 3
   265  	FUNC_TIMER2_TOGGLE4      FPIOAFunction = 201 // TIMER2 Toggle Output 4
   266  	FUNC_CLK_SPI2            FPIOAFunction = 202 // Clock SPI2
   267  	FUNC_CLK_I2C2            FPIOAFunction = 203 // Clock I2C2
   268  	FUNC_INTERNAL0           FPIOAFunction = 204 // Internal function signal 0
   269  	FUNC_INTERNAL1           FPIOAFunction = 205 // Internal function signal 1
   270  	FUNC_INTERNAL2           FPIOAFunction = 206 // Internal function signal 2
   271  	FUNC_INTERNAL3           FPIOAFunction = 207 // Internal function signal 3
   272  	FUNC_INTERNAL4           FPIOAFunction = 208 // Internal function signal 4
   273  	FUNC_INTERNAL5           FPIOAFunction = 209 // Internal function signal 5
   274  	FUNC_INTERNAL6           FPIOAFunction = 210 // Internal function signal 6
   275  	FUNC_INTERNAL7           FPIOAFunction = 211 // Internal function signal 7
   276  	FUNC_INTERNAL8           FPIOAFunction = 212 // Internal function signal 8
   277  	FUNC_INTERNAL9           FPIOAFunction = 213 // Internal function signal 9
   278  	FUNC_INTERNAL10          FPIOAFunction = 214 // Internal function signal 10
   279  	FUNC_INTERNAL11          FPIOAFunction = 215 // Internal function signal 11
   280  	FUNC_INTERNAL12          FPIOAFunction = 216 // Internal function signal 12
   281  	FUNC_INTERNAL13          FPIOAFunction = 217 // Internal function signal 13
   282  	FUNC_INTERNAL14          FPIOAFunction = 218 // Internal function signal 14
   283  	FUNC_INTERNAL15          FPIOAFunction = 219 // Internal function signal 15
   284  	FUNC_INTERNAL16          FPIOAFunction = 220 // Internal function signal 16
   285  	FUNC_INTERNAL17          FPIOAFunction = 221 // Internal function signal 17
   286  	FUNC_CONSTANT            FPIOAFunction = 222 // Constant function
   287  	FUNC_INTERNAL18          FPIOAFunction = 223 // Internal function signal 18
   288  	FUNC_DEBUG0              FPIOAFunction = 224 // Debug function 0
   289  	FUNC_DEBUG1              FPIOAFunction = 225 // Debug function 1
   290  	FUNC_DEBUG2              FPIOAFunction = 226 // Debug function 2
   291  	FUNC_DEBUG3              FPIOAFunction = 227 // Debug function 3
   292  	FUNC_DEBUG4              FPIOAFunction = 228 // Debug function 4
   293  	FUNC_DEBUG5              FPIOAFunction = 229 // Debug function 5
   294  	FUNC_DEBUG6              FPIOAFunction = 230 // Debug function 6
   295  	FUNC_DEBUG7              FPIOAFunction = 231 // Debug function 7
   296  	FUNC_DEBUG8              FPIOAFunction = 232 // Debug function 8
   297  	FUNC_DEBUG9              FPIOAFunction = 233 // Debug function 9
   298  	FUNC_DEBUG10             FPIOAFunction = 234 // Debug function 10
   299  	FUNC_DEBUG11             FPIOAFunction = 235 // Debug function 11
   300  	FUNC_DEBUG12             FPIOAFunction = 236 // Debug function 12
   301  	FUNC_DEBUG13             FPIOAFunction = 237 // Debug function 13
   302  	FUNC_DEBUG14             FPIOAFunction = 238 // Debug function 14
   303  	FUNC_DEBUG15             FPIOAFunction = 239 // Debug function 15
   304  	FUNC_DEBUG16             FPIOAFunction = 240 // Debug function 16
   305  	FUNC_DEBUG17             FPIOAFunction = 241 // Debug function 17
   306  	FUNC_DEBUG18             FPIOAFunction = 242 // Debug function 18
   307  	FUNC_DEBUG19             FPIOAFunction = 243 // Debug function 19
   308  	FUNC_DEBUG20             FPIOAFunction = 244 // Debug function 20
   309  	FUNC_DEBUG21             FPIOAFunction = 245 // Debug function 21
   310  	FUNC_DEBUG22             FPIOAFunction = 246 // Debug function 22
   311  	FUNC_DEBUG23             FPIOAFunction = 247 // Debug function 23
   312  	FUNC_DEBUG24             FPIOAFunction = 248 // Debug function 24
   313  	FUNC_DEBUG25             FPIOAFunction = 249 // Debug function 25
   314  	FUNC_DEBUG26             FPIOAFunction = 250 // Debug function 26
   315  	FUNC_DEBUG27             FPIOAFunction = 251 // Debug function 27
   316  	FUNC_DEBUG28             FPIOAFunction = 252 // Debug function 28
   317  	FUNC_DEBUG29             FPIOAFunction = 253 // Debug function 29
   318  	FUNC_DEBUG30             FPIOAFunction = 254 // Debug function 30
   319  	FUNC_DEBUG31             FPIOAFunction = 255 // Debug function 31
   320  )
   321  
   322  // These are the default FPIOA values for each function.
   323  // (source: https://github.com/kendryte/kendryte-standalone-sdk/blob/develop/lib/drivers/fpioa.c#L69)
   324  var fpioaFuncDefaults [256]uint32 = [256]uint32{
   325  	0x00900000, 0x00900001, 0x00900002, 0x00001f03, 0x00b03f04, 0x00b03f05, 0x00b03f06, 0x00b03f07, 0x00b03f08,
   326  	0x00b03f09, 0x00b03f0a, 0x00b03f0b, 0x00001f0c, 0x00001f0d, 0x00001f0e, 0x00001f0f, 0x03900010, 0x00001f11,
   327  	0x00900012, 0x00001f13, 0x00900014, 0x00900015, 0x00001f16, 0x00001f17, 0x00901f18, 0x00901f19, 0x00901f1a,
   328  	0x00901f1b, 0x00901f1c, 0x00901f1d, 0x00901f1e, 0x00901f1f, 0x00901f20, 0x00901f21, 0x00901f22, 0x00901f23,
   329  	0x00901f24, 0x00901f25, 0x00901f26, 0x00901f27, 0x00901f28, 0x00901f29, 0x00901f2a, 0x00901f2b, 0x00901f2c,
   330  	0x00901f2d, 0x00901f2e, 0x00901f2f, 0x00901f30, 0x00901f31, 0x00901f32, 0x00901f33, 0x00901f34, 0x00901f35,
   331  	0x00901f36, 0x00901f37, 0x00901f38, 0x00901f39, 0x00901f3a, 0x00901f3b, 0x00901f3c, 0x00901f3d, 0x00901f3e,
   332  	0x00901f3f, 0x00900040, 0x00001f41, 0x00900042, 0x00001f43, 0x00900044, 0x00001f45, 0x00b03f46, 0x00b03f47,
   333  	0x00b03f48, 0x00b03f49, 0x00b03f4a, 0x00b03f4b, 0x00b03f4c, 0x00b03f4d, 0x00001f4e, 0x00001f4f, 0x00001f50,
   334  	0x00001f51, 0x03900052, 0x00001f53, 0x00b03f54, 0x00900055, 0x00900056, 0x00001f57, 0x00001f58, 0x00001f59,
   335  	0x0090005a, 0x0090005b, 0x0090005c, 0x0090005d, 0x00001f5e, 0x00001f5f, 0x00001f60, 0x00001f61, 0x00001f62,
   336  	0x00001f63, 0x00001f64, 0x00900065, 0x00900066, 0x00900067, 0x00900068, 0x00001f69, 0x00001f6a, 0x00001f6b,
   337  	0x00001f6c, 0x00001f6d, 0x00001f6e, 0x00001f6f, 0x00900070, 0x00900071, 0x00900072, 0x00900073, 0x00001f74,
   338  	0x00001f75, 0x00001f76, 0x00001f77, 0x00000078, 0x00000079, 0x0000007a, 0x0000007b, 0x0000007c, 0x0000007d,
   339  	0x0099107e, 0x0099107f, 0x00991080, 0x00991081, 0x00991082, 0x00991083, 0x00001f84, 0x00001f85, 0x00001f86,
   340  	0x00900087, 0x00900088, 0x00900089, 0x0090008a, 0x0090008b, 0x0090008c, 0x0090008d, 0x0090008e, 0x0090008f,
   341  	0x00900090, 0x00900091, 0x00993092, 0x00993093, 0x00900094, 0x00900095, 0x00900096, 0x00900097, 0x00900098,
   342  	0x00001f99, 0x00001f9a, 0x00001f9b, 0x00001f9c, 0x00001f9d, 0x00001f9e, 0x00001f9f, 0x00001fa0, 0x00001fa1,
   343  	0x009000a2, 0x009000a3, 0x009000a4, 0x009000a5, 0x009000a6, 0x00001fa7, 0x00001fa8, 0x00001fa9, 0x00001faa,
   344  	0x00001fab, 0x00001fac, 0x00001fad, 0x00001fae, 0x00001faf, 0x009000b0, 0x009000b1, 0x009000b2, 0x009000b3,
   345  	0x009000b4, 0x00001fb5, 0x00001fb6, 0x00001fb7, 0x00001fb8, 0x00001fb9, 0x00001fba, 0x00001fbb, 0x00001fbc,
   346  	0x00001fbd, 0x00001fbe, 0x00001fbf, 0x00001fc0, 0x00001fc1, 0x00001fc2, 0x00001fc3, 0x00001fc4, 0x00001fc5,
   347  	0x00001fc6, 0x00001fc7, 0x00001fc8, 0x00001fc9, 0x00001fca, 0x00001fcb, 0x00001fcc, 0x00001fcd, 0x00001fce,
   348  	0x00001fcf, 0x00001fd0, 0x00001fd1, 0x00001fd2, 0x00001fd3, 0x00001fd4, 0x009000d5, 0x009000d6, 0x009000d7,
   349  	0x009000d8, 0x009100d9, 0x00991fda, 0x009000db, 0x009000dc, 0x009000dd, 0x000000de, 0x009000df, 0x00001fe0,
   350  	0x00001fe1, 0x00001fe2, 0x00001fe3, 0x00001fe4, 0x00001fe5, 0x00001fe6, 0x00001fe7, 0x00001fe8, 0x00001fe9,
   351  	0x00001fea, 0x00001feb, 0x00001fec, 0x00001fed, 0x00001fee, 0x00001fef, 0x00001ff0, 0x00001ff1, 0x00001ff2,
   352  	0x00001ff3, 0x00001ff4, 0x00001ff5, 0x00001ff6, 0x00001ff7, 0x00001ff8, 0x00001ff9, 0x00001ffa, 0x00001ffb,
   353  	0x00001ffc, 0x00001ffd, 0x00001ffe, 0x00001fff,
   354  }