diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-22 18:03:31 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-22 18:03:31 +0100 |
commit | 13775dacca5c158a257320f4b47e1220b82e3b21 (patch) | |
tree | 5ce47e235ab61ef320f49a0cadac8f52f0beecb1 /drivers/ata/ahci_brcm.c | |
parent | 6ab9e09238fdfd742fe23b81e2d385a1cab49d9b (diff) | |
parent | b3cd92db6ecde0a1c3651771a23f45b708533de4 (diff) |
Merge tag 'for-4.20/libata-20181021' of git://git.kernel.dk/linux-block
Pull libata updates from Jens Axboe:
"Here are the libata changes queued up for 4.20:
- %pOFn device_node.name conversion (Rob Herring)
- Use LBAM/LBAH password defines instead of hardcoding (Linus
Walleij)
- Series adding support for the allwinner R40 AHCI controller
(Corentin Labbe)
- Disable ALPM for Ampere Computing device (Suman Tripathi)
- ahci bcrm fixes (Florian Fainelli)
- Redundant Kconfig defaults (Bartlomiej Zolnierkiewicz)
- Code cleanups (Nathan Chancellor)"
* tag 'for-4.20/libata-20181021' of git://git.kernel.dk/linux-block:
ata: remove redundant 'default n' from Kconfig
ata: ep93xx: Use proper enums for directions
ata: ahci_brcm: Allow using driver or DSL SoCs
ata: ahci_brcm: Match BCM63138 compatible strings
ata: ahci_brcm: Allow optional reset controller to be used
dt-bindings: ata: Document BCM63138 compatible string
pata_atiixp: Remove unnecessary parentheses
ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA
dt-bindings: ata: update ahci_sunxi bindings
ata: ahci_sunxi: add support for r40
dt-bindings: ata: ahci-platform: document phy-supply
ata: ahci_platform: add support for PHY controller regulator
dt-bindings: ata: ahci-platform: document ahci-supply
ata: ahci_platform: add support for AHCI controller regulator
dt-bindings: ata: ahci-platform: fix indentation of target-supply
libata: Use SMART LBAM/LBAH password defines
ata: ahci: Convert to using %pOFn instead of device_node.name
Diffstat (limited to 'drivers/ata/ahci_brcm.c')
-rw-r--r-- | drivers/ata/ahci_brcm.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ata/ahci_brcm.c b/drivers/ata/ahci_brcm.c index f3d557777d82..fba5a3044c8a 100644 --- a/drivers/ata/ahci_brcm.c +++ b/drivers/ata/ahci_brcm.c @@ -25,6 +25,7 @@ #include <linux/module.h> #include <linux/of.h> #include <linux/platform_device.h> +#include <linux/reset.h> #include <linux/string.h> #include "ahci.h" @@ -94,6 +95,7 @@ struct brcm_ahci_priv { u32 port_mask; u32 quirks; enum brcm_ahci_version version; + struct reset_control *rcdev; }; static inline u32 brcm_sata_readreg(void __iomem *addr) @@ -381,6 +383,7 @@ static struct scsi_host_template ahci_platform_sht = { static const struct of_device_id ahci_of_match[] = { {.compatible = "brcm,bcm7425-ahci", .data = (void *)BRCM_SATA_BCM7425}, {.compatible = "brcm,bcm7445-ahci", .data = (void *)BRCM_SATA_BCM7445}, + {.compatible = "brcm,bcm63138-ahci", .data = (void *)BRCM_SATA_BCM7445}, {.compatible = "brcm,bcm-nsp-ahci", .data = (void *)BRCM_SATA_NSP}, {}, }; @@ -411,6 +414,11 @@ static int brcm_ahci_probe(struct platform_device *pdev) if (IS_ERR(priv->top_ctrl)) return PTR_ERR(priv->top_ctrl); + /* Reset is optional depending on platform */ + priv->rcdev = devm_reset_control_get(&pdev->dev, "ahci"); + if (!IS_ERR_OR_NULL(priv->rcdev)) + reset_control_deassert(priv->rcdev); + if ((priv->version == BRCM_SATA_BCM7425) || (priv->version == BRCM_SATA_NSP)) { priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ; |