Message ID | 20181107150322.23314-1-m.szyprowski@samsung.com |
---|---|
State | New |
Headers | show |
Series | ARM: Exynos: Add TM2 board support | expand |
On Wed, 07 Nov 2018 16:03:22 +0100 Marek Szyprowski <m.szyprowski@samsung.com> wrote: > From: Lukasz Majewski <l.majewski@samsung.com> > > Disable some legacy code to let it work on ARM64 based Exynos SoCs. > > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> > [extracted from old sources and adapted to mainline u-boot, minor > fixes] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/mmc/exynos_dw_mmc.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c > index 3e9d47538c..c7ba3b6060 100644 > --- a/drivers/mmc/exynos_dw_mmc.c > +++ b/drivers/mmc/exynos_dw_mmc.c > @@ -143,6 +143,7 @@ static struct dwmci_host > dwmci_host[DWMMC_MAX_CH_NUM]; > static int do_dwmci_init(struct dwmci_host *host) > { > +#ifdef CONFIG_CPU_V7A > int flag, err; > > flag = host->buswidth == 8 ? PINMUX_FLAG_8BIT_MODE : > PINMUX_FLAG_NONE; @@ -151,6 +152,7 @@ static int do_dwmci_init(struct > dwmci_host *host) printf("DWMMC%d not configure\n", host->dev_index); > return err; > } > +#endif > > return exynos_dwmci_core_init(host); > } > @@ -160,10 +162,15 @@ static int exynos_dwmci_get_config(const void > *blob, int node, struct dwmci_exynos_priv_data *priv) > { > int err = 0; > - u32 base, timing[3]; > + dma_addr_t base; > + u32 timing[3]; > > +#ifdef CONFIG_CPU_V7A > /* Extract device id for each mmc channel */ > host->dev_id = pinmux_decode_periph_id(blob, node); > +#else > + host->dev_id = 0; > +#endif > > host->dev_index = fdtdec_get_int(blob, node, "index", > host->dev_id); if (host->dev_index == host->dev_id) > @@ -247,19 +254,20 @@ static int exynos_dwmci_process_node(const void > *blob, int exynos_dwmmc_init(const void *blob) > { > int node_list[DWMMC_MAX_CH_NUM]; > - int boot_dev_node; > int err = 0, count; > > count = fdtdec_find_aliases_for_id(blob, "mmc", > COMPAT_SAMSUNG_EXYNOS_DWMMC, node_list, > DWMMC_MAX_CH_NUM); > > +#ifdef CONFIG_CPU_V7A > /* For DWMMC always set boot device as mmc 0 */ > if (count >= 3 && get_boot_mode() == BOOT_MODE_SD) { > - boot_dev_node = node_list[2]; > + int boot_dev_node = node_list[2]; > node_list[2] = node_list[0]; > node_list[0] = boot_dev_node; > } > +#endif > > err = exynos_dwmci_process_node(blob, node_list, count); > The patch seems correct :-) However, though, I shall NOT ack my own patch.... Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c index 3e9d47538c..c7ba3b6060 100644 --- a/drivers/mmc/exynos_dw_mmc.c +++ b/drivers/mmc/exynos_dw_mmc.c @@ -143,6 +143,7 @@ static struct dwmci_host dwmci_host[DWMMC_MAX_CH_NUM]; static int do_dwmci_init(struct dwmci_host *host) { +#ifdef CONFIG_CPU_V7A int flag, err; flag = host->buswidth == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE; @@ -151,6 +152,7 @@ static int do_dwmci_init(struct dwmci_host *host) printf("DWMMC%d not configure\n", host->dev_index); return err; } +#endif return exynos_dwmci_core_init(host); } @@ -160,10 +162,15 @@ static int exynos_dwmci_get_config(const void *blob, int node, struct dwmci_exynos_priv_data *priv) { int err = 0; - u32 base, timing[3]; + dma_addr_t base; + u32 timing[3]; +#ifdef CONFIG_CPU_V7A /* Extract device id for each mmc channel */ host->dev_id = pinmux_decode_periph_id(blob, node); +#else + host->dev_id = 0; +#endif host->dev_index = fdtdec_get_int(blob, node, "index", host->dev_id); if (host->dev_index == host->dev_id) @@ -247,19 +254,20 @@ static int exynos_dwmci_process_node(const void *blob, int exynos_dwmmc_init(const void *blob) { int node_list[DWMMC_MAX_CH_NUM]; - int boot_dev_node; int err = 0, count; count = fdtdec_find_aliases_for_id(blob, "mmc", COMPAT_SAMSUNG_EXYNOS_DWMMC, node_list, DWMMC_MAX_CH_NUM); +#ifdef CONFIG_CPU_V7A /* For DWMMC always set boot device as mmc 0 */ if (count >= 3 && get_boot_mode() == BOOT_MODE_SD) { - boot_dev_node = node_list[2]; + int boot_dev_node = node_list[2]; node_list[2] = node_list[0]; node_list[0] = boot_dev_node; } +#endif err = exynos_dwmci_process_node(blob, node_list, count);