lkml.org 
[lkml]   [2022]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.16 169/217] mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
    Date
    From: Hector Martin <marcan@marcan.st>

    [ Upstream commit 189f1d9bc3a5ea3e442e119e4a5deda63da8c462 ]

    This is required on some Apple ARM64 laptops using this controller.
    As is typical on DT platforms, pull these quirks from the device tree
    using the standard mmc bindings.

    See Documentation/devicetree/bindings/mmc/mmc-controller.yaml

    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Link: https://lore.kernel.org/r/20211215161045.38843-2-marcan@marcan.st
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/mmc/host/sdhci-pci-gli.c | 11 +++++++++++
    1 file changed, 11 insertions(+)

    diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c
    index 4fd99c1e82ba3..ad50f16658fe2 100644
    --- a/drivers/mmc/host/sdhci-pci-gli.c
    +++ b/drivers/mmc/host/sdhci-pci-gli.c
    @@ -12,6 +12,7 @@
    #include <linux/pci.h>
    #include <linux/mmc/mmc.h>
    #include <linux/delay.h>
    +#include <linux/of.h>
    #include "sdhci.h"
    #include "sdhci-pci.h"
    #include "cqhci.h"
    @@ -116,6 +117,8 @@
    #define PCI_GLI_9755_PECONF 0x44
    #define PCI_GLI_9755_LFCLK GENMASK(14, 12)
    #define PCI_GLI_9755_DMACLK BIT(29)
    +#define PCI_GLI_9755_INVERT_CD BIT(30)
    +#define PCI_GLI_9755_INVERT_WP BIT(31)

    #define PCI_GLI_9755_CFG2 0x48
    #define PCI_GLI_9755_CFG2_L1DLY GENMASK(28, 24)
    @@ -570,6 +573,14 @@ static void gl9755_hw_setting(struct sdhci_pci_slot *slot)
    gl9755_wt_on(pdev);

    pci_read_config_dword(pdev, PCI_GLI_9755_PECONF, &value);
    + /*
    + * Apple ARM64 platforms using these chips may have
    + * inverted CD/WP detection.
    + */
    + if (of_property_read_bool(pdev->dev.of_node, "cd-inverted"))
    + value |= PCI_GLI_9755_INVERT_CD;
    + if (of_property_read_bool(pdev->dev.of_node, "wp-inverted"))
    + value |= PCI_GLI_9755_INVERT_WP;
    value &= ~PCI_GLI_9755_LFCLK;
    value &= ~PCI_GLI_9755_DMACLK;
    pci_write_config_dword(pdev, PCI_GLI_9755_PECONF, value);
    --
    2.34.1
    \
     
     \ /
      Last update: 2022-01-18 03:39    [W:4.055 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site