mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
ata: sata_rcar: Disable DIPM mode for r8a7790 ES1
Unlike other SATA R-Car r8a7790 controllers the r8a7790 ES1 SATA R-Car controller needs to be run with DIPM disabled. Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Tejun Heo <tj@kernel.org> Cc: stable@vger.kernel.org
This commit is contained in:
parent
cac7f24298
commit
aa1cf25887
@ -3,7 +3,8 @@
|
|||||||
Required properties:
|
Required properties:
|
||||||
- compatible : should contain one of the following:
|
- compatible : should contain one of the following:
|
||||||
- "renesas,sata-r8a7779" for R-Car H1
|
- "renesas,sata-r8a7779" for R-Car H1
|
||||||
- "renesas,sata-r8a7790" for R-Car H2
|
- "renesas,sata-r8a7790-es1" for R-Car H2 ES1
|
||||||
|
- "renesas,sata-r8a7790" for R-Car H2 other than ES1
|
||||||
- "renesas,sata-r8a7791" for R-Car M2
|
- "renesas,sata-r8a7791" for R-Car M2
|
||||||
- reg : address and length of the SATA registers;
|
- reg : address and length of the SATA registers;
|
||||||
- interrupts : must consist of one interrupt specifier.
|
- interrupts : must consist of one interrupt specifier.
|
||||||
|
@ -146,6 +146,7 @@
|
|||||||
enum sata_rcar_type {
|
enum sata_rcar_type {
|
||||||
RCAR_GEN1_SATA,
|
RCAR_GEN1_SATA,
|
||||||
RCAR_GEN2_SATA,
|
RCAR_GEN2_SATA,
|
||||||
|
RCAR_R8A7790_ES1_SATA,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sata_rcar_priv {
|
struct sata_rcar_priv {
|
||||||
@ -763,6 +764,9 @@ static void sata_rcar_setup_port(struct ata_host *host)
|
|||||||
ap->udma_mask = ATA_UDMA6;
|
ap->udma_mask = ATA_UDMA6;
|
||||||
ap->flags |= ATA_FLAG_SATA;
|
ap->flags |= ATA_FLAG_SATA;
|
||||||
|
|
||||||
|
if (priv->type == RCAR_R8A7790_ES1_SATA)
|
||||||
|
ap->flags |= ATA_FLAG_NO_DIPM;
|
||||||
|
|
||||||
ioaddr->cmd_addr = base + SDATA_REG;
|
ioaddr->cmd_addr = base + SDATA_REG;
|
||||||
ioaddr->ctl_addr = base + SSDEVCON_REG;
|
ioaddr->ctl_addr = base + SSDEVCON_REG;
|
||||||
ioaddr->scr_addr = base + SCRSSTS_REG;
|
ioaddr->scr_addr = base + SCRSSTS_REG;
|
||||||
@ -792,6 +796,7 @@ static void sata_rcar_init_controller(struct ata_host *host)
|
|||||||
sata_rcar_gen1_phy_init(priv);
|
sata_rcar_gen1_phy_init(priv);
|
||||||
break;
|
break;
|
||||||
case RCAR_GEN2_SATA:
|
case RCAR_GEN2_SATA:
|
||||||
|
case RCAR_R8A7790_ES1_SATA:
|
||||||
sata_rcar_gen2_phy_init(priv);
|
sata_rcar_gen2_phy_init(priv);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -837,6 +842,10 @@ static struct of_device_id sata_rcar_match[] = {
|
|||||||
.compatible = "renesas,sata-r8a7790",
|
.compatible = "renesas,sata-r8a7790",
|
||||||
.data = (void *)RCAR_GEN2_SATA
|
.data = (void *)RCAR_GEN2_SATA
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.compatible = "renesas,sata-r8a7790-es1",
|
||||||
|
.data = (void *)RCAR_R8A7790_ES1_SATA
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.compatible = "renesas,sata-r8a7791",
|
.compatible = "renesas,sata-r8a7791",
|
||||||
.data = (void *)RCAR_GEN2_SATA
|
.data = (void *)RCAR_GEN2_SATA
|
||||||
@ -849,6 +858,7 @@ static const struct platform_device_id sata_rcar_id_table[] = {
|
|||||||
{ "sata_rcar", RCAR_GEN1_SATA }, /* Deprecated by "sata-r8a7779" */
|
{ "sata_rcar", RCAR_GEN1_SATA }, /* Deprecated by "sata-r8a7779" */
|
||||||
{ "sata-r8a7779", RCAR_GEN1_SATA },
|
{ "sata-r8a7779", RCAR_GEN1_SATA },
|
||||||
{ "sata-r8a7790", RCAR_GEN2_SATA },
|
{ "sata-r8a7790", RCAR_GEN2_SATA },
|
||||||
|
{ "sata-r8a7790-es1", RCAR_R8A7790_ES1_SATA },
|
||||||
{ "sata-r8a7791", RCAR_GEN2_SATA },
|
{ "sata-r8a7791", RCAR_GEN2_SATA },
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user