Merge https://gitlab.denx.de/u-boot/custodians/u-boot-riscv

- Enable SATA disk on QEMU RISC-V and update doc.
- k210 pinctrl updates:
  - Fix inverted IE and OE for I2C.
  - Rename power domains to match datasheet.
diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig
index 617c4aa..0818048 100644
--- a/board/emulation/qemu-riscv/Kconfig
+++ b/board/emulation/qemu-riscv/Kconfig
@@ -29,33 +29,40 @@
 	def_bool y
 	select GENERIC_RISCV
 	select SUPPORT_SPL
-	imply SYS_NS16550
-	imply VIRTIO_MMIO
-	imply VIRTIO_NET
-	imply VIRTIO_BLK
-	imply VIRTIO_PCI
+	imply AHCI
+	imply SMP
+	imply BOARD_LATE_INIT
+	imply PCI_INIT_R
+	imply SPL_RAM_SUPPORT
+	imply SPL_RAM_DEVICE
+	imply CMD_PCI
+	imply CMD_POWEROFF
+	imply CMD_SCSI
 	imply CMD_PING
-	imply CMD_FS_GENERIC
-	imply DOS_PARTITION
-	imply EFI_PARTITION
-	imply ISO_PARTITION
 	imply CMD_EXT2
 	imply CMD_EXT4
 	imply CMD_FAT
-	imply BOARD_LATE_INIT
-	imply SIFIVE_SERIAL
-	imply SMP
+	imply CMD_FS_GENERIC
+	imply DOS_PARTITION
+	imply ISO_PARTITION
+	imply EFI_PARTITION
+	imply SCSI_AHCI
+	imply AHCI_PCI
+	imply E1000
+	imply NVME
 	imply PCI
 	imply DM_PCI
 	imply PCIE_ECAM_GENERIC
-	imply CMD_PCI
-	imply E1000
-	imply NVME
-	imply SPL_RAM_SUPPORT
-	imply SPL_RAM_DEVICE
+	imply SCSI
+	imply DM_SCSI
+	imply SYS_NS16550
+	imply SIFIVE_SERIAL
 	imply SYSRESET
-	imply SYSRESET_SYSCON
-	imply CMD_POWEROFF
 	imply SYSRESET_CMD_POWEROFF
+	imply SYSRESET_SYSCON
+	imply VIRTIO_MMIO
+	imply VIRTIO_PCI
+	imply VIRTIO_NET
+	imply VIRTIO_BLK
 
 endif
diff --git a/doc/board/emulation/qemu-riscv.rst b/doc/board/emulation/qemu-riscv.rst
index b68db95..3acd406 100644
--- a/doc/board/emulation/qemu-riscv.rst
+++ b/doc/board/emulation/qemu-riscv.rst
@@ -105,3 +105,11 @@
 
     qemu-system-riscv64 -nographic -machine virt -bios spl/u-boot-spl \
     -device loader,file=u-boot.itb,addr=0x80200000
+
+An attached disk can be emulated by adding::
+
+    -device ich9-ahci,id=ahci \
+    -drive if=none,file=riscv64.img,format=raw,id=mydisk \
+    -device ide-hd,drive=mydisk,bus=ahci.0
+
+You will have to run 'scsi scan' to use it.
diff --git a/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt b/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt
index 06a9cc0..73871f5 100644
--- a/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt
+++ b/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt
@@ -18,7 +18,7 @@
 Required properties for pin-configuration nodes or sub-nodes are:
 - groups: list of power groups to which the configuration applies. Valid groups
   are:
-	A0, A1, A2, B0, B1, B2, C0, C1
+	A0, A1, A2, B3, B4, B5, C6, C7
   (either this or "pinmux" must be specified)
 - pinmux: integer array representing pin multiplexing configuration. In addition
   to the 256 standard functions, each pin can also output the direction
diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c
index 5ad049d..0416201 100644
--- a/drivers/pinctrl/pinctrl-kendryte.c
+++ b/drivers/pinctrl/pinctrl-kendryte.c
@@ -55,8 +55,9 @@
 
 #define K210_PC_MODE_IN   (K210_PC_IE | K210_PC_ST)
 #define K210_PC_MODE_OUT  (K210_PC_DRIVE_7 | K210_PC_OE)
-#define K210_PC_MODE_I2C  (K210_PC_MODE_IN | K210_PC_IE_INV | K210_PC_SL | \
-			   K210_PC_OE | K210_PC_OE_INV | K210_PC_PU)
+#define K210_PC_MODE_I2C  (K210_PC_MODE_IN | K210_PC_SL | K210_PC_OE | \
+			   K210_PC_PU)
+#define K210_PC_MODE_SCCB (K210_PC_MODE_I2C | K210_PC_OE_INV | K210_PC_IE_INV)
 #define K210_PC_MODE_SPI  (K210_PC_MODE_IN | K210_PC_IE_INV | \
 			   K210_PC_MODE_OUT | K210_PC_OE_INV)
 #define K210_PC_MODE_GPIO (K210_PC_MODE_IN | K210_PC_MODE_OUT)
@@ -152,11 +153,11 @@
 	[0] = "A0",
 	[1] = "A1",
 	[2] = "A2",
-	[3] = "B0",
-	[4] = "B1",
-	[5] = "B2",
-	[6] = "C0",
-	[7] = "C1",
+	[3] = "B3",
+	[4] = "B4",
+	[5] = "B5",
+	[6] = "C6",
+	[7] = "C7",
 };
 
 static int k210_pc_get_groups_count(struct udevice *dev)
@@ -176,6 +177,7 @@
 	K210_PC_DEFAULT_IN_TIE,
 	K210_PC_DEFAULT_OUT,
 	K210_PC_DEFAULT_I2C,
+	K210_PC_DEFAULT_SCCB,
 	K210_PC_DEFAULT_SPI,
 	K210_PC_DEFAULT_GPIO,
 	K210_PC_DEFAULT_INT13,
@@ -189,6 +191,7 @@
 	[K210_PC_DEFAULT_IN_TIE] = K210_PC_MODE_IN,
 	DEFAULT(OUT),
 	DEFAULT(I2C),
+	DEFAULT(SCCB),
 	DEFAULT(SPI),
 	DEFAULT(GPIO),
 	[K210_PC_DEFAULT_INT13] = K210_PC_MODE_IN | K210_PC_PU,
@@ -362,8 +365,8 @@
 	FUNC(DVP_D5,         IN),
 	FUNC(DVP_D6,         IN),
 	FUNC(DVP_D7,         IN),
-	FUNC(SCCB_SCLK,      I2C),
-	FUNC(SCCB_SDA,       I2C),
+	FUNC(SCCB_SCLK,      SCCB),
+	FUNC(SCCB_SDA,       SCCB),
 	FUNC(UART1_CTS,      IN),
 	FUNC(UART1_DSR,      IN),
 	FUNC(UART1_DCD,      IN),