diff options
Diffstat (limited to 'target/linux/ipq806x/patches/0142-ata-Add-Qualcomm-ARM-SoC-AHCI-SATA-host-controller-d.patch')
-rw-r--r-- | target/linux/ipq806x/patches/0142-ata-Add-Qualcomm-ARM-SoC-AHCI-SATA-host-controller-d.patch | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/target/linux/ipq806x/patches/0142-ata-Add-Qualcomm-ARM-SoC-AHCI-SATA-host-controller-d.patch b/target/linux/ipq806x/patches/0142-ata-Add-Qualcomm-ARM-SoC-AHCI-SATA-host-controller-d.patch deleted file mode 100644 index 5db5d9d..0000000 --- a/target/linux/ipq806x/patches/0142-ata-Add-Qualcomm-ARM-SoC-AHCI-SATA-host-controller-d.patch +++ /dev/null @@ -1,136 +0,0 @@ -From c5ea64dcf7b5d45e402e78b9f291d521669b7b80 Mon Sep 17 00:00:00 2001 -From: Kumar Gala <galak@codeaurora.org> -Date: Fri, 30 May 2014 15:35:40 -0500 -Subject: [PATCH 142/182] ata: Add Qualcomm ARM SoC AHCI SATA host controller - driver - -Add support for the Qualcomm AHCI SATA controller that exists on several -SoC and specifically the IPQ806x family of chips. The IPQ806x SATA support -requires the associated IPQ806x SATA PHY Driver to be enabled as well. - -Signed-off-by: Kumar Gala <galak@codeaurora.org> ---- - drivers/ata/Kconfig | 10 ++++++ - drivers/ata/Makefile | 1 + - drivers/ata/ahci_qcom.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 97 insertions(+) - create mode 100644 drivers/ata/ahci_qcom.c - ---- a/drivers/ata/Kconfig -+++ b/drivers/ata/Kconfig -@@ -122,6 +122,16 @@ config AHCI_IMX - - If unsure, say N. - -+config AHCI_QCOM -+ tristate "Qualcomm AHCI SATA support" -+ depends on ARCH_QCOM -+ help -+ This option enables support for AHCI SATA controller -+ integrated into Qualcomm ARM SoC chipsets. For more -+ information please refer to http://www.qualcomm.com/chipsets. -+ -+ If unsure, say N. -+ - config SATA_FSL - tristate "Freescale 3.0Gbps SATA support" - depends on FSL_SOC ---- a/drivers/ata/Makefile -+++ b/drivers/ata/Makefile -@@ -11,6 +11,7 @@ obj-$(CONFIG_SATA_SIL24) += sata_sil24.o - obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o - obj-$(CONFIG_SATA_HIGHBANK) += sata_highbank.o libahci.o - obj-$(CONFIG_AHCI_IMX) += ahci_imx.o libahci.o libahci_platform.o -+obj-$(CONFIG_AHCI_QCOM) += ahci_qcom.o libahci.o libahci_platform.o - - # SFF w/ custom DMA - obj-$(CONFIG_PDC_ADMA) += pdc_adma.o ---- /dev/null -+++ b/drivers/ata/ahci_qcom.c -@@ -0,0 +1,86 @@ -+/* -+ * Qualcomm ARM SoC AHCI SATA platform driver -+ * -+ * based on the AHCI SATA platform driver by Jeff Garzik and Anton Vorontsov -+ * -+ * Copyright (c) 2014, The Linux Foundation. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 and -+ * only version 2 as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/module.h> -+#include <linux/pm.h> -+#include <linux/device.h> -+#include <linux/platform_device.h> -+#include <linux/libata.h> -+#include <linux/ahci_platform.h> -+#include "ahci.h" -+ -+static const struct ata_port_info qcom_ahci_port_info = { -+ .flags = AHCI_FLAG_COMMON, -+ .pio_mask = ATA_PIO4, -+ .udma_mask = ATA_UDMA6, -+ .port_ops = &ahci_platform_ops, -+}; -+ -+static int qcom_ahci_probe(struct platform_device *pdev) -+{ -+ struct ahci_host_priv *hpriv; -+ struct clk *rxoob_clk; -+ int rc; -+ -+ hpriv = ahci_platform_get_resources(pdev); -+ if (IS_ERR(hpriv)) -+ return PTR_ERR(hpriv); -+ -+ /* Try and set the rxoob clk to 100Mhz */ -+ rxoob_clk = of_clk_get_by_name(pdev->dev.of_node, "rxoob"); -+ if (IS_ERR(rxoob_clk)) -+ return PTR_ERR(rxoob_clk); -+ -+ rc = clk_set_rate(rxoob_clk, 100000000); -+ if (rc) -+ return rc; -+ -+ rc = ahci_platform_enable_resources(hpriv); -+ if (rc) -+ return rc; -+ -+ rc = ahci_platform_init_host(pdev, hpriv, &qcom_ahci_port_info, 0, 0); -+ if (rc) -+ goto disable_resources; -+ -+ return 0; -+disable_resources: -+ ahci_platform_disable_resources(hpriv); -+ return rc; -+} -+ -+static const struct of_device_id qcom_ahci_of_match[] = { -+ { .compatible = "qcom,msm-ahci", }, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, qcom_ahci_of_match); -+ -+static struct platform_driver qcom_ahci_driver = { -+ .probe = qcom_ahci_probe, -+ .remove = ata_platform_remove_one, -+ .driver = { -+ .name = "qcom_ahci_qcom", -+ .owner = THIS_MODULE, -+ .of_match_table = qcom_ahci_of_match, -+ }, -+}; -+module_platform_driver(qcom_ahci_driver); -+ -+MODULE_DESCRIPTION("Qualcomm AHCI SATA platform driver"); -+MODULE_LICENSE("GPL v2"); -+MODULE_ALIAS("ahci:qcom"); |