riscv: Add FPIOA and GPIO support for Kendryte K210

This patch adds the necessary configs and docs for FPIOA and GPIO support
on the K210.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
This commit is contained in:
Sean Anderson 2020-09-14 11:02:06 -04:00 committed by Tom Rini
parent 2b5a719fc6
commit 0eabb2ff23
2 changed files with 71 additions and 2 deletions

View file

@ -44,4 +44,13 @@ config BOARD_SPECIFIC_OPTIONS
imply RESET_SYSCON imply RESET_SYSCON
imply SYSRESET imply SYSRESET
imply SYSRESET_SYSCON imply SYSRESET_SYSCON
imply PINCTRL
imply PINCONF
imply PINCTRL_K210
imply DM_GPIO
imply DWAPB_GPIO
imply SIFIVE_GPIO
imply CMD_GPIO
imply LED
imply LED_GPIO
endif endif

View file

@ -199,7 +199,7 @@ To run legacy images, use the ``bootm`` command:
Load Address: 80000000 Load Address: 80000000
Entry Point: 80000000 Entry Point: 80000000
$ picocom -b 115200 /dev/ttyUSB0i $ picocom -b 115200 /dev/ttyUSB0
=> loady => loady
## Ready for binary (ymodem) download to 0x80000000 at 115200 bps... ## Ready for binary (ymodem) download to 0x80000000 at 115200 bps...
C C
@ -230,6 +230,66 @@ To run legacy images, use the ``bootm`` command:
argv[0] = "<NULL>" argv[0] = "<NULL>"
Hit any key to exit ... Hit any key to exit ...
Pin Assignment
--------------
The K210 contains a Fully Programmable I/O Array (FPIOA), which can remap any of
its 256 input functions to any any of 48 output pins. The following table has
the default pin assignments for the BitM.
===== ========== =======
Pin Function Comment
===== ========== =======
IO_0 JTAG_TCLK
IO_1 JTAG_TDI
IO_2 JTAG_TMS
IO_3 JTAG_TDO
IO_4 UARTHS_RX
IO_5 UARTHS_TX
IO_6 Not set
IO_7 Not set
IO_8 GPIO_0
IO_9 GPIO_1
IO_10 GPIO_2
IO_11 GPIO_3
IO_12 GPIO_4 Green LED
IO_13 GPIO_5 Red LED
IO_14 GPIO_6 Blue LED
IO_15 GPIO_7
IO_16 GPIOHS_0 ISP
IO_17 GPIOHS_1
IO_18 I2S0_SCLK MIC CLK
IO_19 I2S0_WS MIC WS
IO_20 I2S0_IN_D0 MIC SD
IO_21 GPIOHS_5
IO_22 GPIOHS_6
IO_23 GPIOHS_7
IO_24 GPIOHS_8
IO_25 GPIOHS_9
IO_26 SPI1_D1 MMC MISO
IO_27 SPI1_SCLK MMC CLK
IO_28 SPI1_D0 MMC MOSI
IO_29 GPIOHS_13 MMC CS
IO_30 GPIOHS_14
IO_31 GPIOHS_15
IO_32 GPIOHS_16
IO_33 GPIOHS_17
IO_34 GPIOHS_18
IO_35 GPIOHS_19
IO_36 GPIOHS_20 Panel CS
IO_37 GPIOHS_21 Panel RST
IO_38 GPIOHS_22 Panel DC
IO_39 SPI0_SCK Panel WR
IO_40 SCCP_SDA
IO_41 SCCP_SCLK
IO_42 DVP_RST
IO_43 DVP_VSYNC
IO_44 DVP_PWDN
IO_45 DVP_HSYNC
IO_46 DVP_XCLK
IO_47 DVP_PCLK
===== ========== =======
Over- and Under-clocking Over- and Under-clocking
------------------------ ------------------------
@ -408,7 +468,7 @@ Address Size Description
0x8801C000 0x1000 riscv priv spec 1.9 config 0x8801C000 0x1000 riscv priv spec 1.9 config
0x8801D000 0x2000 flattened device tree (contains only addresses and 0x8801D000 0x2000 flattened device tree (contains only addresses and
interrupts) interrupts)
0x8801f000 0x1000 credits 0x8801F000 0x1000 credits
========== ========= =========== ========== ========= ===========
Links Links