ARM: shmobile: Lager SYS-DMAC and MMCIF prototype
Magnus Damm
maintainerPATCH v2 4/7 ARM: shmobile: Lager SYS-DMAC and MMCIF prototype
From: Magnus Damm <[email protected]>
Hook up SYS-DMAC prototype support for MMCIF1 on Lager.
Local platform device version of SYS-DMAC and local slave IDs are used together with AUXDATA.
Only the DT reference case is covered. Not for upstream merge.
Signed-off-by Magnus Damm <[email protected]>
---
Changes since V1:
- None
arch/arm/mach-shmobile/board-lager-reference.c | 26 +++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-)
arch/arm/mach-shmobile/board-lager-reference.c +25 -1
@@ -72,10 +72,16 @@ static const struct resource du_resource#include <linux/sh_dma.h> #include <mach/dma-register.h> +#include <linux/mmc/host.h> +#include <linux/mmc/sh_mmcif.h> /* Local DMA slave IDs */ enum {RCAR_DMA_SLAVE_LAGER_INVALID =0 , +SYS_DMAC_SLAVE_MMCIF0_TX =64 , +SYS_DMAC_SLAVE_MMCIF0_RX , +SYS_DMAC_SLAVE_MMCIF1_TX , +SYS_DMAC_SLAVE_MMCIF1_RX , };#define DMAE_CHANNEL (a, b) \
@@ -101,6 +107,8 @@ enum { }static const struct sh_dmae_slave_config r8a7790_sys_dmac_slaves[] = { +SYS_DMAC_SLAVE (MMCIF0 ,32 ,0xee200000 ,0x34 ,0x34 ,0xd1 ,0xd2 ), +SYS_DMAC_SLAVE (MMCIF1 ,32 ,0xee220000 ,0x34 ,0x34 ,0xe1 ,0xe2 ), };static const struct sh_dmae_channel r8a7790_sys_dmac_channels[] = {
@@ -161,6 +169,21 @@ static void __init lager_add_dmac_prototr8a7790_register_sys_dmac (0 ); } +static struct sh_mmcif_plat_data mmcif1_pdata = { + .caps =MMC_CAP_4_BIT_DATA | +MMC_CAP_8_BIT_DATA | +MMC_CAP_NONREMOVABLE , + .ccs_unsupported = true, + .slave_id_tx =SYS_DMAC_SLAVE_MMCIF1_TX , + .slave_id_rx =SYS_DMAC_SLAVE_MMCIF1_RX , +}; + +static struct of_dev_auxdata lager_auxdata_lookup[]__initdata = { +OF_DEV_AUXDATA ("renesas,mmcif-r8a7790" ,0xee220000 ,"sh_mmcif" , + &mmcif1_pdata), + {}, +}; +static void __init lager_add_du_device (void ) {struct platform_device_info info = {
@@ -194,7 +217,8 @@ static void __init lager_add_standard_deshmobile_clk_workaround (clk_names,ARRAY_SIZE (clk_names), false);r8a7790_add_dt_devices ();lager_add_dmac_prototype (); -of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); +of_platform_populate (NULL , of_default_bus_match_table, + lager_auxdata_lookup,NULL );lager_add_du_device (); }