mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 16:39:43 +07:00
Merge branch 'rmobile-fixes-for-linus' into rmobile-latest
This commit is contained in:
commit
b58c580d99
@ -503,16 +503,17 @@ static struct clk *late_main_clks[] = {
|
|||||||
&sh7372_fsidivb_clk,
|
&sh7372_fsidivb_clk,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum { MSTP001,
|
enum { MSTP001, MSTP000,
|
||||||
MSTP131, MSTP130,
|
MSTP131, MSTP130,
|
||||||
MSTP129, MSTP128, MSTP127, MSTP126, MSTP125,
|
MSTP129, MSTP128, MSTP127, MSTP126, MSTP125,
|
||||||
MSTP118, MSTP117, MSTP116, MSTP113,
|
MSTP118, MSTP117, MSTP116, MSTP113,
|
||||||
MSTP106, MSTP101, MSTP100,
|
MSTP106, MSTP101, MSTP100,
|
||||||
MSTP223,
|
MSTP223,
|
||||||
MSTP218, MSTP217, MSTP216,
|
MSTP218, MSTP217, MSTP216, MSTP214, MSTP208, MSTP207,
|
||||||
MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200,
|
MSTP206, MSTP205, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200,
|
||||||
MSTP328, MSTP323, MSTP322, MSTP314, MSTP313, MSTP312,
|
MSTP328, MSTP323, MSTP322, MSTP314, MSTP313, MSTP312,
|
||||||
MSTP423, MSTP415, MSTP413, MSTP411, MSTP410, MSTP406, MSTP403, MSTP400,
|
MSTP423, MSTP415, MSTP413, MSTP411, MSTP410, MSTP407, MSTP406,
|
||||||
|
MSTP405, MSTP404, MSTP403, MSTP400,
|
||||||
MSTP_NR };
|
MSTP_NR };
|
||||||
|
|
||||||
#define MSTP(_parent, _reg, _bit, _flags) \
|
#define MSTP(_parent, _reg, _bit, _flags) \
|
||||||
@ -520,6 +521,7 @@ enum { MSTP001,
|
|||||||
|
|
||||||
static struct clk mstp_clks[MSTP_NR] = {
|
static struct clk mstp_clks[MSTP_NR] = {
|
||||||
[MSTP001] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR0, 1, 0), /* IIC2 */
|
[MSTP001] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR0, 1, 0), /* IIC2 */
|
||||||
|
[MSTP000] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR0, 0, 0), /* MSIOF0 */
|
||||||
[MSTP131] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 31, 0), /* VEU3 */
|
[MSTP131] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 31, 0), /* VEU3 */
|
||||||
[MSTP130] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 30, 0), /* VEU2 */
|
[MSTP130] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 30, 0), /* VEU2 */
|
||||||
[MSTP129] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 29, 0), /* VEU1 */
|
[MSTP129] = MSTP(&div4_clks[DIV4_B], SMSTPCR1, 29, 0), /* VEU1 */
|
||||||
@ -538,8 +540,11 @@ static struct clk mstp_clks[MSTP_NR] = {
|
|||||||
[MSTP218] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 18, 0), /* DMAC1 */
|
[MSTP218] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 18, 0), /* DMAC1 */
|
||||||
[MSTP217] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 17, 0), /* DMAC2 */
|
[MSTP217] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 17, 0), /* DMAC2 */
|
||||||
[MSTP216] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 16, 0), /* DMAC3 */
|
[MSTP216] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 16, 0), /* DMAC3 */
|
||||||
|
[MSTP214] = MSTP(&div4_clks[DIV4_HP], SMSTPCR2, 14, 0), /* USBDMAC */
|
||||||
|
[MSTP208] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 8, 0), /* MSIOF1 */
|
||||||
[MSTP207] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 7, 0), /* SCIFA5 */
|
[MSTP207] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 7, 0), /* SCIFA5 */
|
||||||
[MSTP206] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 6, 0), /* SCIFB */
|
[MSTP206] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 6, 0), /* SCIFB */
|
||||||
|
[MSTP205] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 5, 0), /* MSIOF2 */
|
||||||
[MSTP204] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 4, 0), /* SCIFA0 */
|
[MSTP204] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 4, 0), /* SCIFA0 */
|
||||||
[MSTP203] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 3, 0), /* SCIFA1 */
|
[MSTP203] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 3, 0), /* SCIFA1 */
|
||||||
[MSTP202] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 2, 0), /* SCIFA2 */
|
[MSTP202] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 2, 0), /* SCIFA2 */
|
||||||
@ -556,7 +561,10 @@ static struct clk mstp_clks[MSTP_NR] = {
|
|||||||
[MSTP413] = MSTP(&pllc1_div2_clk, SMSTPCR4, 13, 0), /* HDMI */
|
[MSTP413] = MSTP(&pllc1_div2_clk, SMSTPCR4, 13, 0), /* HDMI */
|
||||||
[MSTP411] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 11, 0), /* IIC3 */
|
[MSTP411] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 11, 0), /* IIC3 */
|
||||||
[MSTP410] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 10, 0), /* IIC4 */
|
[MSTP410] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 10, 0), /* IIC4 */
|
||||||
|
[MSTP407] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 7, 0), /* USB-DMAC1 */
|
||||||
[MSTP406] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 6, 0), /* USB1 */
|
[MSTP406] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR4, 6, 0), /* USB1 */
|
||||||
|
[MSTP405] = MSTP(&r_clk, SMSTPCR4, 5, 0), /* CMT4 */
|
||||||
|
[MSTP404] = MSTP(&r_clk, SMSTPCR4, 4, 0), /* CMT3 */
|
||||||
[MSTP403] = MSTP(&r_clk, SMSTPCR4, 3, 0), /* KEYSC */
|
[MSTP403] = MSTP(&r_clk, SMSTPCR4, 3, 0), /* KEYSC */
|
||||||
[MSTP400] = MSTP(&r_clk, SMSTPCR4, 0, 0), /* CMT2 */
|
[MSTP400] = MSTP(&r_clk, SMSTPCR4, 0, 0), /* CMT2 */
|
||||||
};
|
};
|
||||||
@ -609,6 +617,7 @@ static struct clk_lookup lookups[] = {
|
|||||||
|
|
||||||
/* MSTP32 clocks */
|
/* MSTP32 clocks */
|
||||||
CLKDEV_DEV_ID("i2c-sh_mobile.2", &mstp_clks[MSTP001]), /* IIC2 */
|
CLKDEV_DEV_ID("i2c-sh_mobile.2", &mstp_clks[MSTP001]), /* IIC2 */
|
||||||
|
CLKDEV_DEV_ID("spi_sh_msiof.0", &mstp_clks[MSTP000]), /* MSIOF0 */
|
||||||
CLKDEV_DEV_ID("uio_pdrv_genirq.4", &mstp_clks[MSTP131]), /* VEU3 */
|
CLKDEV_DEV_ID("uio_pdrv_genirq.4", &mstp_clks[MSTP131]), /* VEU3 */
|
||||||
CLKDEV_DEV_ID("uio_pdrv_genirq.3", &mstp_clks[MSTP130]), /* VEU2 */
|
CLKDEV_DEV_ID("uio_pdrv_genirq.3", &mstp_clks[MSTP130]), /* VEU2 */
|
||||||
CLKDEV_DEV_ID("uio_pdrv_genirq.2", &mstp_clks[MSTP129]), /* VEU1 */
|
CLKDEV_DEV_ID("uio_pdrv_genirq.2", &mstp_clks[MSTP129]), /* VEU1 */
|
||||||
@ -629,8 +638,11 @@ static struct clk_lookup lookups[] = {
|
|||||||
CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), /* DMAC1 */
|
CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), /* DMAC1 */
|
||||||
CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* DMAC2 */
|
CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* DMAC2 */
|
||||||
CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]), /* DMAC3 */
|
CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]), /* DMAC3 */
|
||||||
|
CLKDEV_DEV_ID("sh-dma-engine.3", &mstp_clks[MSTP214]), /* USB-DMAC0 */
|
||||||
|
CLKDEV_DEV_ID("spi_sh_msiof.1", &mstp_clks[MSTP208]), /* MSIOF1 */
|
||||||
CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */
|
CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */
|
||||||
CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP206]), /* SCIFB */
|
CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP206]), /* SCIFB */
|
||||||
|
CLKDEV_DEV_ID("spi_sh_msiof.2", &mstp_clks[MSTP205]), /* MSIOF2 */
|
||||||
CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
|
CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
|
||||||
CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */
|
CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */
|
||||||
CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]), /* SCIFA2 */
|
CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]), /* SCIFA2 */
|
||||||
@ -649,9 +661,12 @@ static struct clk_lookup lookups[] = {
|
|||||||
CLKDEV_DEV_ID("sh-mobile-hdmi", &mstp_clks[MSTP413]), /* HDMI */
|
CLKDEV_DEV_ID("sh-mobile-hdmi", &mstp_clks[MSTP413]), /* HDMI */
|
||||||
CLKDEV_DEV_ID("i2c-sh_mobile.3", &mstp_clks[MSTP411]), /* IIC3 */
|
CLKDEV_DEV_ID("i2c-sh_mobile.3", &mstp_clks[MSTP411]), /* IIC3 */
|
||||||
CLKDEV_DEV_ID("i2c-sh_mobile.4", &mstp_clks[MSTP410]), /* IIC4 */
|
CLKDEV_DEV_ID("i2c-sh_mobile.4", &mstp_clks[MSTP410]), /* IIC4 */
|
||||||
|
CLKDEV_DEV_ID("sh-dma-engine.4", &mstp_clks[MSTP407]), /* USB-DMAC1 */
|
||||||
CLKDEV_DEV_ID("r8a66597_hcd.1", &mstp_clks[MSTP406]), /* USB1 */
|
CLKDEV_DEV_ID("r8a66597_hcd.1", &mstp_clks[MSTP406]), /* USB1 */
|
||||||
CLKDEV_DEV_ID("r8a66597_udc.1", &mstp_clks[MSTP406]), /* USB1 */
|
CLKDEV_DEV_ID("r8a66597_udc.1", &mstp_clks[MSTP406]), /* USB1 */
|
||||||
CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */
|
CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */
|
||||||
|
CLKDEV_DEV_ID("sh_cmt.4", &mstp_clks[MSTP405]), /* CMT4 */
|
||||||
|
CLKDEV_DEV_ID("sh_cmt.3", &mstp_clks[MSTP404]), /* CMT3 */
|
||||||
CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */
|
CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */
|
||||||
CLKDEV_DEV_ID("sh_cmt.2", &mstp_clks[MSTP400]), /* CMT2 */
|
CLKDEV_DEV_ID("sh_cmt.2", &mstp_clks[MSTP400]), /* CMT2 */
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ void __init sh73a0_clock_init(void)
|
|||||||
__raw_writel(0x108, SD2CKCR);
|
__raw_writel(0x108, SD2CKCR);
|
||||||
|
|
||||||
/* detect main clock parent */
|
/* detect main clock parent */
|
||||||
switch ((__raw_readl(CKSCR) >> 24) & 0x03) {
|
switch ((__raw_readl(CKSCR) >> 28) & 0x03) {
|
||||||
case 0:
|
case 0:
|
||||||
main_clk.parent = &sh73a0_extal1_clk;
|
main_clk.parent = &sh73a0_extal1_clk;
|
||||||
break;
|
break;
|
||||||
|
@ -459,6 +459,10 @@ enum {
|
|||||||
SHDMA_SLAVE_SDHI2_TX,
|
SHDMA_SLAVE_SDHI2_TX,
|
||||||
SHDMA_SLAVE_MMCIF_RX,
|
SHDMA_SLAVE_MMCIF_RX,
|
||||||
SHDMA_SLAVE_MMCIF_TX,
|
SHDMA_SLAVE_MMCIF_TX,
|
||||||
|
SHDMA_SLAVE_USB0_TX,
|
||||||
|
SHDMA_SLAVE_USB0_RX,
|
||||||
|
SHDMA_SLAVE_USB1_TX,
|
||||||
|
SHDMA_SLAVE_USB1_RX,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct clk sh7372_extal1_clk;
|
extern struct clk sh7372_extal1_clk;
|
||||||
|
@ -379,7 +379,7 @@ enum {
|
|||||||
/* BBIF2 */
|
/* BBIF2 */
|
||||||
VPU,
|
VPU,
|
||||||
TSIF1,
|
TSIF1,
|
||||||
_3DG_SGX530,
|
/* 3DG */
|
||||||
_2DDMAC,
|
_2DDMAC,
|
||||||
IIC2_ALI2, IIC2_TACKI2, IIC2_WAITI2, IIC2_DTEI2,
|
IIC2_ALI2, IIC2_TACKI2, IIC2_WAITI2, IIC2_DTEI2,
|
||||||
IPMMU_IPMMUR, IPMMU_IPMMUR2,
|
IPMMU_IPMMUR, IPMMU_IPMMUR2,
|
||||||
@ -436,7 +436,7 @@ static struct intc_vect intcs_vectors[] = {
|
|||||||
/* BBIF2 */
|
/* BBIF2 */
|
||||||
INTCS_VECT(VPU, 0x980),
|
INTCS_VECT(VPU, 0x980),
|
||||||
INTCS_VECT(TSIF1, 0x9a0),
|
INTCS_VECT(TSIF1, 0x9a0),
|
||||||
INTCS_VECT(_3DG_SGX530, 0x9e0),
|
/* 3DG */
|
||||||
INTCS_VECT(_2DDMAC, 0xa00),
|
INTCS_VECT(_2DDMAC, 0xa00),
|
||||||
INTCS_VECT(IIC2_ALI2, 0xa80), INTCS_VECT(IIC2_TACKI2, 0xaa0),
|
INTCS_VECT(IIC2_ALI2, 0xa80), INTCS_VECT(IIC2_TACKI2, 0xaa0),
|
||||||
INTCS_VECT(IIC2_WAITI2, 0xac0), INTCS_VECT(IIC2_DTEI2, 0xae0),
|
INTCS_VECT(IIC2_WAITI2, 0xac0), INTCS_VECT(IIC2_DTEI2, 0xae0),
|
||||||
@ -521,7 +521,7 @@ static struct intc_mask_reg intcs_mask_registers[] = {
|
|||||||
RTDMAC_1_DEI3, RTDMAC_1_DEI2, RTDMAC_1_DEI1, RTDMAC_1_DEI0 } },
|
RTDMAC_1_DEI3, RTDMAC_1_DEI2, RTDMAC_1_DEI1, RTDMAC_1_DEI0 } },
|
||||||
{ 0xffd20198, 0xffd201d8, 8, /* IMR6SA / IMCR6SA */
|
{ 0xffd20198, 0xffd201d8, 8, /* IMR6SA / IMCR6SA */
|
||||||
{ 0, 0, MSIOF, 0,
|
{ 0, 0, MSIOF, 0,
|
||||||
_3DG_SGX530, 0, 0, 0 } },
|
0, 0, 0, 0 } },
|
||||||
{ 0xffd2019c, 0xffd201dc, 8, /* IMR7SA / IMCR7SA */
|
{ 0xffd2019c, 0xffd201dc, 8, /* IMR7SA / IMCR7SA */
|
||||||
{ 0, TMU_TUNI2, TMU_TUNI1, TMU_TUNI0,
|
{ 0, TMU_TUNI2, TMU_TUNI1, TMU_TUNI0,
|
||||||
0, 0, 0, 0 } },
|
0, 0, 0, 0 } },
|
||||||
@ -561,7 +561,6 @@ static struct intc_prio_reg intcs_prio_registers[] = {
|
|||||||
TMU_TUNI2, TSIF1 } },
|
TMU_TUNI2, TSIF1 } },
|
||||||
{ 0xffd2001c, 0, 16, 4, /* IPRHS */ { 0, 0, VEU, BEU } },
|
{ 0xffd2001c, 0, 16, 4, /* IPRHS */ { 0, 0, VEU, BEU } },
|
||||||
{ 0xffd20020, 0, 16, 4, /* IPRIS */ { 0, MSIOF, TSIF0, IIC0 } },
|
{ 0xffd20020, 0, 16, 4, /* IPRIS */ { 0, MSIOF, TSIF0, IIC0 } },
|
||||||
{ 0xffd20024, 0, 16, 4, /* IPRJS */ { 0, _3DG_SGX530, 0, 0 } },
|
|
||||||
{ 0xffd20028, 0, 16, 4, /* IPRKS */ { 0, 0, LMB, 0 } },
|
{ 0xffd20028, 0, 16, 4, /* IPRKS */ { 0, 0, LMB, 0 } },
|
||||||
{ 0xffd2002c, 0, 16, 4, /* IPRLS */ { IPMMU, 0, 0, 0 } },
|
{ 0xffd2002c, 0, 16, 4, /* IPRLS */ { IPMMU, 0, 0, 0 } },
|
||||||
{ 0xffd20030, 0, 16, 4, /* IPRMS */ { IIC2, 0, 0, 0 } },
|
{ 0xffd20030, 0, 16, 4, /* IPRMS */ { IIC2, 0, 0, 0 } },
|
||||||
|
@ -602,6 +602,150 @@ static struct platform_device dma2_device = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB-DMAC
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned int usbts_shift[] = {3, 4, 5};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
XMIT_SZ_8BYTE = 0,
|
||||||
|
XMIT_SZ_16BYTE = 1,
|
||||||
|
XMIT_SZ_32BYTE = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define USBTS_INDEX2VAL(i) (((i) & 3) << 6)
|
||||||
|
|
||||||
|
static const struct sh_dmae_channel sh7372_usb_dmae_channels[] = {
|
||||||
|
{
|
||||||
|
.offset = 0,
|
||||||
|
}, {
|
||||||
|
.offset = 0x20,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* USB DMAC0 */
|
||||||
|
static const struct sh_dmae_slave_config sh7372_usb_dmae0_slaves[] = {
|
||||||
|
{
|
||||||
|
.slave_id = SHDMA_SLAVE_USB0_TX,
|
||||||
|
.chcr = USBTS_INDEX2VAL(XMIT_SZ_8BYTE),
|
||||||
|
}, {
|
||||||
|
.slave_id = SHDMA_SLAVE_USB0_RX,
|
||||||
|
.chcr = USBTS_INDEX2VAL(XMIT_SZ_8BYTE),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct sh_dmae_pdata usb_dma0_platform_data = {
|
||||||
|
.slave = sh7372_usb_dmae0_slaves,
|
||||||
|
.slave_num = ARRAY_SIZE(sh7372_usb_dmae0_slaves),
|
||||||
|
.channel = sh7372_usb_dmae_channels,
|
||||||
|
.channel_num = ARRAY_SIZE(sh7372_usb_dmae_channels),
|
||||||
|
.ts_low_shift = 6,
|
||||||
|
.ts_low_mask = 0xc0,
|
||||||
|
.ts_high_shift = 0,
|
||||||
|
.ts_high_mask = 0,
|
||||||
|
.ts_shift = usbts_shift,
|
||||||
|
.ts_shift_num = ARRAY_SIZE(usbts_shift),
|
||||||
|
.dmaor_init = DMAOR_DME,
|
||||||
|
.chcr_offset = 0x14,
|
||||||
|
.chcr_ie_bit = 1 << 5,
|
||||||
|
.dmaor_is_32bit = 1,
|
||||||
|
.needs_tend_set = 1,
|
||||||
|
.no_dmars = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct resource sh7372_usb_dmae0_resources[] = {
|
||||||
|
{
|
||||||
|
/* Channel registers and DMAOR */
|
||||||
|
.start = 0xe68a0020,
|
||||||
|
.end = 0xe68a0064 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* VCR/SWR/DMICR */
|
||||||
|
.start = 0xe68a0000,
|
||||||
|
.end = 0xe68a0014 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* IRQ for channels */
|
||||||
|
.start = evt2irq(0x0a00),
|
||||||
|
.end = evt2irq(0x0a00),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device usb_dma0_device = {
|
||||||
|
.name = "sh-dma-engine",
|
||||||
|
.id = 3,
|
||||||
|
.resource = sh7372_usb_dmae0_resources,
|
||||||
|
.num_resources = ARRAY_SIZE(sh7372_usb_dmae0_resources),
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &usb_dma0_platform_data,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* USB DMAC1 */
|
||||||
|
static const struct sh_dmae_slave_config sh7372_usb_dmae1_slaves[] = {
|
||||||
|
{
|
||||||
|
.slave_id = SHDMA_SLAVE_USB1_TX,
|
||||||
|
.chcr = USBTS_INDEX2VAL(XMIT_SZ_8BYTE),
|
||||||
|
}, {
|
||||||
|
.slave_id = SHDMA_SLAVE_USB1_RX,
|
||||||
|
.chcr = USBTS_INDEX2VAL(XMIT_SZ_8BYTE),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct sh_dmae_pdata usb_dma1_platform_data = {
|
||||||
|
.slave = sh7372_usb_dmae1_slaves,
|
||||||
|
.slave_num = ARRAY_SIZE(sh7372_usb_dmae1_slaves),
|
||||||
|
.channel = sh7372_usb_dmae_channels,
|
||||||
|
.channel_num = ARRAY_SIZE(sh7372_usb_dmae_channels),
|
||||||
|
.ts_low_shift = 6,
|
||||||
|
.ts_low_mask = 0xc0,
|
||||||
|
.ts_high_shift = 0,
|
||||||
|
.ts_high_mask = 0,
|
||||||
|
.ts_shift = usbts_shift,
|
||||||
|
.ts_shift_num = ARRAY_SIZE(usbts_shift),
|
||||||
|
.dmaor_init = DMAOR_DME,
|
||||||
|
.chcr_offset = 0x14,
|
||||||
|
.chcr_ie_bit = 1 << 5,
|
||||||
|
.dmaor_is_32bit = 1,
|
||||||
|
.needs_tend_set = 1,
|
||||||
|
.no_dmars = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct resource sh7372_usb_dmae1_resources[] = {
|
||||||
|
{
|
||||||
|
/* Channel registers and DMAOR */
|
||||||
|
.start = 0xe68c0020,
|
||||||
|
.end = 0xe68c0064 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* VCR/SWR/DMICR */
|
||||||
|
.start = 0xe68c0000,
|
||||||
|
.end = 0xe68c0014 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* IRQ for channels */
|
||||||
|
.start = evt2irq(0x1d00),
|
||||||
|
.end = evt2irq(0x1d00),
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device usb_dma1_device = {
|
||||||
|
.name = "sh-dma-engine",
|
||||||
|
.id = 4,
|
||||||
|
.resource = sh7372_usb_dmae1_resources,
|
||||||
|
.num_resources = ARRAY_SIZE(sh7372_usb_dmae1_resources),
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &usb_dma1_platform_data,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
/* VPU */
|
/* VPU */
|
||||||
static struct uio_info vpu_platform_data = {
|
static struct uio_info vpu_platform_data = {
|
||||||
.name = "VPU5HG",
|
.name = "VPU5HG",
|
||||||
@ -829,6 +973,8 @@ static struct platform_device *sh7372_late_devices[] __initdata = {
|
|||||||
&dma0_device,
|
&dma0_device,
|
||||||
&dma1_device,
|
&dma1_device,
|
||||||
&dma2_device,
|
&dma2_device,
|
||||||
|
&usb_dma0_device,
|
||||||
|
&usb_dma1_device,
|
||||||
&vpu_device,
|
&vpu_device,
|
||||||
&veu0_device,
|
&veu0_device,
|
||||||
&veu1_device,
|
&veu1_device,
|
||||||
|
Loading…
Reference in New Issue
Block a user