Re: [U-Boot] [PATCH] mmc: rmobile: Add SDHC support for Renesas rmobile ARM SoC
Hi, Pantelis. Thanks for your review. 2014-12-13 3:25 GMT+09:00 Pantelis Antoniou pa...@antoniou-consulting.com: Hi Nobuhiro, Very good state, just a few niggles. On Nov 12, 2014, at 06:35 , Nobuhiro Iwamatsu nobuhiro.iwamatsu...@renesas.com wrote: This adds Renesas rmobile ARM SoC's SD/MMC host support. This drivers tested with Gose board and Koelsch board. Signed-off-by: Yoshiyuki Ito yoshiyuki.ito...@renesas.com Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu...@renesas.com --- arch/arm/include/asm/arch-rmobile/r8a7790.h | 6 + arch/arm/include/asm/arch-rmobile/r8a7791.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7793.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7794.h | 5 + arch/arm/include/asm/arch-rmobile/rcar-base.h | 3 + arch/arm/include/asm/arch-rmobile/sh_sdhi.h | 166 +++ drivers/mmc/Kconfig | 9 + drivers/mmc/Makefile | 1 + drivers/mmc/sh_sdhi.c | 688 ++ 9 files changed, 888 insertions(+) create mode 100644 arch/arm/include/asm/arch-rmobile/sh_sdhi.h create mode 100644 drivers/mmc/sh_sdhi.c diff --git a/arch/arm/include/asm/arch-rmobile/r8a7790.h b/arch/arm/include/asm/arch-rmobile/r8a7790.h index de14869..a70adc6 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7790.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7790.h @@ -15,6 +15,12 @@ #define CONFIG_SYS_I2C_SH_BASE2 0xE652 #define CONFIG_SYS_I2C_SH_BASE3 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE12 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI3_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 4 + #define R8A7790_CUT_ES2X 2 #define IS_R8A7790_ES2() \ (rmobile_get_cpu_rev_integer() == R8A7790_CUT_ES2X) diff --git a/arch/arm/include/asm/arch-rmobile/r8a7791.h b/arch/arm/include/asm/arch-rmobile/r8a7791.h index 26a0bd5..658d435 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7791.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7791.h @@ -17,6 +17,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE 0xE67A1000 #define DBSC3_1_QOS_R1_BASE 0xE67A1100 #define DBSC3_1_QOS_R2_BASE 0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7793.h b/arch/arm/include/asm/arch-rmobile/r8a7793.h index 778812e..505c812 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7793.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7793.h @@ -18,6 +18,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE 0xE67A1000 #define DBSC3_1_QOS_R1_BASE 0xE67A1100 #define DBSC3_1_QOS_R2_BASE 0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7794.h b/arch/arm/include/asm/arch-rmobile/r8a7794.h index 66d5a29..e8f1d1d 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7794.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7794.h @@ -14,4 +14,9 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #endif /* __ASM_ARCH_R8A7794_H */ diff --git a/arch/arm/include/asm/arch-rmobile/rcar-base.h b/arch/arm/include/asm/arch-rmobile/rcar-base.h index dbbebcf..0bae173 100644 --- a/arch/arm/include/asm/arch-rmobile/rcar-base.h +++ b/arch/arm/include/asm/arch-rmobile/rcar-base.h @@ -43,6 +43,9 @@ #define CONFIG_SYS_RCAR_I2C2_BASE 0xE653 #define CONFIG_SYS_RCAR_I2C3_BASE 0xE654 +/* SDHI */ +#define CONFIG_SYS_SH_SDHI0_BASE 0xEE10 + #define S3C_BASE 0xE6784000 #define S3C_INT_BASE 0xE6784A00 #define S3C_MEDIA_BASE0xE6784B00 diff --git a/arch/arm/include/asm/arch-rmobile/sh_sdhi.h b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h new file mode 100644 index 000..bd9df09 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h @@ -0,0 +1,166 @@ +/* + * drivers/mmc/sh-sdhi.h + * + * SD/MMC driver for Reneas rmobile ARM SoCs + * + * Copyright (C) 2013-2014 Renesas Electronics Corporation + * Copyright (C) 2008-2009 Renesas Solutions Corp. + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#ifndef _SH_SDHI_H +#define _SH_SDHI_H + +#define SDHI_CMD (0x 1) +#define SDHI_PORTSEL (0x0004 1) +#define SDHI_ARG0(0x0008 1) +#define SDHI_ARG1(0x000C 1) +#define SDHI_STOP(0x0010 1) +#define SDHI_SECCNT (0x0014 1) +#define SDHI_RSP00
Re: [U-Boot] [PATCH] mmc: rmobile: Add SDHC support for Renesas rmobile ARM SoC
Hi Nobuhiro, Very good state, just a few niggles. On Nov 12, 2014, at 06:35 , Nobuhiro Iwamatsu nobuhiro.iwamatsu...@renesas.com wrote: This adds Renesas rmobile ARM SoC's SD/MMC host support. This drivers tested with Gose board and Koelsch board. Signed-off-by: Yoshiyuki Ito yoshiyuki.ito...@renesas.com Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu...@renesas.com --- arch/arm/include/asm/arch-rmobile/r8a7790.h | 6 + arch/arm/include/asm/arch-rmobile/r8a7791.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7793.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7794.h | 5 + arch/arm/include/asm/arch-rmobile/rcar-base.h | 3 + arch/arm/include/asm/arch-rmobile/sh_sdhi.h | 166 +++ drivers/mmc/Kconfig | 9 + drivers/mmc/Makefile | 1 + drivers/mmc/sh_sdhi.c | 688 ++ 9 files changed, 888 insertions(+) create mode 100644 arch/arm/include/asm/arch-rmobile/sh_sdhi.h create mode 100644 drivers/mmc/sh_sdhi.c diff --git a/arch/arm/include/asm/arch-rmobile/r8a7790.h b/arch/arm/include/asm/arch-rmobile/r8a7790.h index de14869..a70adc6 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7790.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7790.h @@ -15,6 +15,12 @@ #define CONFIG_SYS_I2C_SH_BASE2 0xE652 #define CONFIG_SYS_I2C_SH_BASE3 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE12 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI3_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 4 + #define R8A7790_CUT_ES2X 2 #define IS_R8A7790_ES2() \ (rmobile_get_cpu_rev_integer() == R8A7790_CUT_ES2X) diff --git a/arch/arm/include/asm/arch-rmobile/r8a7791.h b/arch/arm/include/asm/arch-rmobile/r8a7791.h index 26a0bd5..658d435 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7791.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7791.h @@ -17,6 +17,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE 0xE67A1000 #define DBSC3_1_QOS_R1_BASE 0xE67A1100 #define DBSC3_1_QOS_R2_BASE 0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7793.h b/arch/arm/include/asm/arch-rmobile/r8a7793.h index 778812e..505c812 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7793.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7793.h @@ -18,6 +18,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE 0xE67A1000 #define DBSC3_1_QOS_R1_BASE 0xE67A1100 #define DBSC3_1_QOS_R2_BASE 0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7794.h b/arch/arm/include/asm/arch-rmobile/r8a7794.h index 66d5a29..e8f1d1d 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7794.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7794.h @@ -14,4 +14,9 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE2 0xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #endif /* __ASM_ARCH_R8A7794_H */ diff --git a/arch/arm/include/asm/arch-rmobile/rcar-base.h b/arch/arm/include/asm/arch-rmobile/rcar-base.h index dbbebcf..0bae173 100644 --- a/arch/arm/include/asm/arch-rmobile/rcar-base.h +++ b/arch/arm/include/asm/arch-rmobile/rcar-base.h @@ -43,6 +43,9 @@ #define CONFIG_SYS_RCAR_I2C2_BASE 0xE653 #define CONFIG_SYS_RCAR_I2C3_BASE 0xE654 +/* SDHI */ +#define CONFIG_SYS_SH_SDHI0_BASE 0xEE10 + #define S3C_BASE 0xE6784000 #define S3C_INT_BASE 0xE6784A00 #define S3C_MEDIA_BASE0xE6784B00 diff --git a/arch/arm/include/asm/arch-rmobile/sh_sdhi.h b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h new file mode 100644 index 000..bd9df09 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h @@ -0,0 +1,166 @@ +/* + * drivers/mmc/sh-sdhi.h + * + * SD/MMC driver for Reneas rmobile ARM SoCs + * + * Copyright (C) 2013-2014 Renesas Electronics Corporation + * Copyright (C) 2008-2009 Renesas Solutions Corp. + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#ifndef _SH_SDHI_H +#define _SH_SDHI_H + +#define SDHI_CMD (0x 1) +#define SDHI_PORTSEL (0x0004 1) +#define SDHI_ARG0(0x0008 1) +#define SDHI_ARG1(0x000C 1) +#define SDHI_STOP(0x0010 1) +#define SDHI_SECCNT (0x0014 1) +#define SDHI_RSP00 (0x0018 1) +#define SDHI_RSP01 (0x001C 1) +#define SDHI_RSP02
[U-Boot] [PATCH] mmc: rmobile: Add SDHC support for Renesas rmobile ARM SoC
This adds Renesas rmobile ARM SoC's SD/MMC host support. This drivers tested with Gose board and Koelsch board. Signed-off-by: Yoshiyuki Ito yoshiyuki.ito...@renesas.com Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu...@renesas.com --- arch/arm/include/asm/arch-rmobile/r8a7790.h | 6 + arch/arm/include/asm/arch-rmobile/r8a7791.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7793.h | 5 + arch/arm/include/asm/arch-rmobile/r8a7794.h | 5 + arch/arm/include/asm/arch-rmobile/rcar-base.h | 3 + arch/arm/include/asm/arch-rmobile/sh_sdhi.h | 166 +++ drivers/mmc/Kconfig | 9 + drivers/mmc/Makefile | 1 + drivers/mmc/sh_sdhi.c | 688 ++ 9 files changed, 888 insertions(+) create mode 100644 arch/arm/include/asm/arch-rmobile/sh_sdhi.h create mode 100644 drivers/mmc/sh_sdhi.c diff --git a/arch/arm/include/asm/arch-rmobile/r8a7790.h b/arch/arm/include/asm/arch-rmobile/r8a7790.h index de14869..a70adc6 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7790.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7790.h @@ -15,6 +15,12 @@ #define CONFIG_SYS_I2C_SH_BASE20xE652 #define CONFIG_SYS_I2C_SH_BASE30xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE12 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI3_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 4 + #define R8A7790_CUT_ES2X 2 #define IS_R8A7790_ES2() \ (rmobile_get_cpu_rev_integer() == R8A7790_CUT_ES2X) diff --git a/arch/arm/include/asm/arch-rmobile/r8a7791.h b/arch/arm/include/asm/arch-rmobile/r8a7791.h index 26a0bd5..658d435 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7791.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7791.h @@ -17,6 +17,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE20xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE0xE67A1000 #define DBSC3_1_QOS_R1_BASE0xE67A1100 #define DBSC3_1_QOS_R2_BASE0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7793.h b/arch/arm/include/asm/arch-rmobile/r8a7793.h index 778812e..505c812 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7793.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7793.h @@ -18,6 +18,11 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE20xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #define DBSC3_1_QOS_R0_BASE0xE67A1000 #define DBSC3_1_QOS_R1_BASE0xE67A1100 #define DBSC3_1_QOS_R2_BASE0xE67A1200 diff --git a/arch/arm/include/asm/arch-rmobile/r8a7794.h b/arch/arm/include/asm/arch-rmobile/r8a7794.h index 66d5a29..e8f1d1d 100644 --- a/arch/arm/include/asm/arch-rmobile/r8a7794.h +++ b/arch/arm/include/asm/arch-rmobile/r8a7794.h @@ -14,4 +14,9 @@ /* SH-I2C */ #define CONFIG_SYS_I2C_SH_BASE20xE60B +/* SDHI */ +#define CONFIG_SYS_SH_SDHI1_BASE 0xEE14 +#define CONFIG_SYS_SH_SDHI2_BASE 0xEE16 +#define CONFIG_SYS_SH_SDHI_NR_CHANNEL 3 + #endif /* __ASM_ARCH_R8A7794_H */ diff --git a/arch/arm/include/asm/arch-rmobile/rcar-base.h b/arch/arm/include/asm/arch-rmobile/rcar-base.h index dbbebcf..0bae173 100644 --- a/arch/arm/include/asm/arch-rmobile/rcar-base.h +++ b/arch/arm/include/asm/arch-rmobile/rcar-base.h @@ -43,6 +43,9 @@ #define CONFIG_SYS_RCAR_I2C2_BASE 0xE653 #define CONFIG_SYS_RCAR_I2C3_BASE 0xE654 +/* SDHI */ +#define CONFIG_SYS_SH_SDHI0_BASE 0xEE10 + #define S3C_BASE 0xE6784000 #define S3C_INT_BASE 0xE6784A00 #define S3C_MEDIA_BASE 0xE6784B00 diff --git a/arch/arm/include/asm/arch-rmobile/sh_sdhi.h b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h new file mode 100644 index 000..bd9df09 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sh_sdhi.h @@ -0,0 +1,166 @@ +/* + * drivers/mmc/sh-sdhi.h + * + * SD/MMC driver for Reneas rmobile ARM SoCs + * + * Copyright (C) 2013-2014 Renesas Electronics Corporation + * Copyright (C) 2008-2009 Renesas Solutions Corp. + * + * SPDX-License-Identifier:GPL-2.0 + */ + +#ifndef _SH_SDHI_H +#define _SH_SDHI_H + +#define SDHI_CMD (0x 1) +#define SDHI_PORTSEL (0x0004 1) +#define SDHI_ARG0 (0x0008 1) +#define SDHI_ARG1 (0x000C 1) +#define SDHI_STOP (0x0010 1) +#define SDHI_SECCNT(0x0014 1) +#define SDHI_RSP00 (0x0018 1) +#define SDHI_RSP01 (0x001C 1) +#define SDHI_RSP02 (0x0020 1) +#define SDHI_RSP03 (0x0024 1) +#define SDHI_RSP04 (0x0028 1) +#define SDHI_RSP05 (0x002C 1) +#define SDHI_RSP06