diff --git a/target/linux/ipq40xx/files-4.19/drivers/regulator/ipq4019-vqmmc-regulator.c b/target/linux/ipq40xx/files-4.19/drivers/regulator/ipq4019-vqmmc-regulator.c deleted file mode 100644 index faf1a73403..0000000000 --- a/target/linux/ipq40xx/files-4.19/drivers/regulator/ipq4019-vqmmc-regulator.c +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -// -// Copyright (c) 2019 Mantas Pucka -// Copyright (c) 2019 Robert Marko -// -// Driver for IPQ4019 SD/MMC controller's I/O LDO voltage regulator - -#include -#include -#include -#include -#include -#include -#include -#include - -static const unsigned int ipq4019_vmmc_voltages[] = { - 1500000, 1800000, 2500000, 3000000, -}; - -static struct regulator_ops ipq4019_regulator_voltage_ops = { - .list_voltage = regulator_list_voltage_table, - .get_voltage_sel = regulator_get_voltage_sel_regmap, - .set_voltage_sel = regulator_set_voltage_sel_regmap, -}; - -static struct regulator_desc vmmc_regulator = { - .name = "vmmcq", - .ops = &ipq4019_regulator_voltage_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .volt_table = ipq4019_vmmc_voltages, - .n_voltages = ARRAY_SIZE(ipq4019_vmmc_voltages), - .vsel_reg = 0, - .vsel_mask = 0x3, -}; - -const struct regmap_config ipq4019_vmmcq_regmap_config = { - .reg_bits = 32, - .reg_stride = 4, - .val_bits = 32, -}; - -static int ipq4019_regulator_probe(struct platform_device *pdev) -{ - struct device *dev = &pdev->dev; - struct regulator_init_data *init_data; - struct regulator_config cfg = {}; - struct regulator_dev *rdev; - struct resource *res; - struct regmap *rmap; - void __iomem *base; - - init_data = of_get_regulator_init_data(dev, dev->of_node, - &vmmc_regulator); - if (!init_data) - return -EINVAL; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - rmap = devm_regmap_init_mmio(dev, base, &ipq4019_vmmcq_regmap_config); - if (IS_ERR(rmap)) - return PTR_ERR(rmap); - - cfg.dev = dev; - cfg.init_data = init_data; - cfg.of_node = dev->of_node; - cfg.regmap = rmap; - - rdev = devm_regulator_register(dev, &vmmc_regulator, &cfg); - if (IS_ERR(rdev)) { - dev_err(dev, "Failed to register regulator: %ld\n", - PTR_ERR(rdev)); - return PTR_ERR(rdev); - } - platform_set_drvdata(pdev, rdev); - - return 0; -} - -static int ipq4019_regulator_remove(struct platform_device *pdev) -{ - struct regulator_dev *rdev = platform_get_drvdata(pdev); - - regulator_unregister(rdev); - - return 0; -} - -static const struct of_device_id regulator_ipq4019_of_match[] = { - { .compatible = "qcom,ipq4019-vqmmc-regulator", }, - {}, -}; - -static struct platform_driver ipq4019_regulator_driver = { - .probe = ipq4019_regulator_probe, - .remove = ipq4019_regulator_remove, - .driver = { - .name = "regulator-vqmmc-ipq4019", - .owner = THIS_MODULE, - .of_match_table = of_match_ptr(regulator_ipq4019_of_match), - }, -}; -module_platform_driver(ipq4019_regulator_driver); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mantas Pucka "); -MODULE_DESCRIPTION("IPQ4019 VQMMC voltage regulator"); \ No newline at end of file diff --git a/target/linux/ipq40xx/files-5.4/drivers/regulator/ipq4019-vqmmc-regulator.c b/target/linux/ipq40xx/files-5.4/drivers/regulator/ipq4019-vqmmc-regulator.c deleted file mode 100644 index faf1a73403..0000000000 --- a/target/linux/ipq40xx/files-5.4/drivers/regulator/ipq4019-vqmmc-regulator.c +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -// -// Copyright (c) 2019 Mantas Pucka -// Copyright (c) 2019 Robert Marko -// -// Driver for IPQ4019 SD/MMC controller's I/O LDO voltage regulator - -#include -#include -#include -#include -#include -#include -#include -#include - -static const unsigned int ipq4019_vmmc_voltages[] = { - 1500000, 1800000, 2500000, 3000000, -}; - -static struct regulator_ops ipq4019_regulator_voltage_ops = { - .list_voltage = regulator_list_voltage_table, - .get_voltage_sel = regulator_get_voltage_sel_regmap, - .set_voltage_sel = regulator_set_voltage_sel_regmap, -}; - -static struct regulator_desc vmmc_regulator = { - .name = "vmmcq", - .ops = &ipq4019_regulator_voltage_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .volt_table = ipq4019_vmmc_voltages, - .n_voltages = ARRAY_SIZE(ipq4019_vmmc_voltages), - .vsel_reg = 0, - .vsel_mask = 0x3, -}; - -const struct regmap_config ipq4019_vmmcq_regmap_config = { - .reg_bits = 32, - .reg_stride = 4, - .val_bits = 32, -}; - -static int ipq4019_regulator_probe(struct platform_device *pdev) -{ - struct device *dev = &pdev->dev; - struct regulator_init_data *init_data; - struct regulator_config cfg = {}; - struct regulator_dev *rdev; - struct resource *res; - struct regmap *rmap; - void __iomem *base; - - init_data = of_get_regulator_init_data(dev, dev->of_node, - &vmmc_regulator); - if (!init_data) - return -EINVAL; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - rmap = devm_regmap_init_mmio(dev, base, &ipq4019_vmmcq_regmap_config); - if (IS_ERR(rmap)) - return PTR_ERR(rmap); - - cfg.dev = dev; - cfg.init_data = init_data; - cfg.of_node = dev->of_node; - cfg.regmap = rmap; - - rdev = devm_regulator_register(dev, &vmmc_regulator, &cfg); - if (IS_ERR(rdev)) { - dev_err(dev, "Failed to register regulator: %ld\n", - PTR_ERR(rdev)); - return PTR_ERR(rdev); - } - platform_set_drvdata(pdev, rdev); - - return 0; -} - -static int ipq4019_regulator_remove(struct platform_device *pdev) -{ - struct regulator_dev *rdev = platform_get_drvdata(pdev); - - regulator_unregister(rdev); - - return 0; -} - -static const struct of_device_id regulator_ipq4019_of_match[] = { - { .compatible = "qcom,ipq4019-vqmmc-regulator", }, - {}, -}; - -static struct platform_driver ipq4019_regulator_driver = { - .probe = ipq4019_regulator_probe, - .remove = ipq4019_regulator_remove, - .driver = { - .name = "regulator-vqmmc-ipq4019", - .owner = THIS_MODULE, - .of_match_table = of_match_ptr(regulator_ipq4019_of_match), - }, -}; -module_platform_driver(ipq4019_regulator_driver); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mantas Pucka "); -MODULE_DESCRIPTION("IPQ4019 VQMMC voltage regulator"); \ No newline at end of file diff --git a/target/linux/ipq40xx/patches-4.19/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch b/target/linux/ipq40xx/patches-4.19/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch deleted file mode 100644 index 3b8ac4944a..0000000000 --- a/target/linux/ipq40xx/patches-4.19/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/drivers/regulator/Kconfig -+++ b/drivers/regulator/Kconfig -@@ -334,6 +334,13 @@ config REGULATOR_HI655X - This driver provides support for the voltage regulators of the - Hisilicon Hi655x PMIC device. - -+config REGULATOR_VQMMC_IPQ4019 -+ tristate "IPQ4019 VQMMC SD LDO regulator support" -+ depends on ARCH_QCOM -+ help -+ This driver provides support for the VQMMC LDO I/0 -+ voltage regulator of the IPQ4019 SD/EMMC controller. -+ - config REGULATOR_ISL9305 - tristate "Intersil ISL9305 regulator" - depends on I2C ---- a/drivers/regulator/Makefile -+++ b/drivers/regulator/Makefile -@@ -43,6 +43,7 @@ obj-$(CONFIG_REGULATOR_GPIO) += gpio-reg - obj-$(CONFIG_REGULATOR_HI6421) += hi6421-regulator.o - obj-$(CONFIG_REGULATOR_HI6421V530) += hi6421v530-regulator.o - obj-$(CONFIG_REGULATOR_HI655X) += hi655x-regulator.o -+obj-$(CONFIG_REGULATOR_VQMMC_IPQ4019) += ipq4019-vqmmc-regulator.o - obj-$(CONFIG_REGULATOR_ISL6271A) += isl6271a-regulator.o - obj-$(CONFIG_REGULATOR_ISL9305) += isl9305.o - obj-$(CONFIG_REGULATOR_LM363X) += lm363x-regulator.o diff --git a/target/linux/ipq40xx/patches-4.19/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator-n.patch b/target/linux/ipq40xx/patches-4.19/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator-n.patch deleted file mode 100644 index fdb3f8bbcc..0000000000 --- a/target/linux/ipq40xx/patches-4.19/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator-n.patch +++ /dev/null @@ -1,33 +0,0 @@ -From beae4078c07d3cdc90473a2b35eb0d2b4f3c922c Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Sat, 14 Sep 2019 23:13:17 +0200 -Subject: [PATCH] ARM: dts: qcom: ipq4019: Add SDHCI VQMMC LDO regulator node - -IPQ4019 has a built in SD/eMMC controller which depends on -VQMMC LDO regulator working. -Since we have a driver for it lets add the appropriate node for it. - -Signed-off-by: Robert Marko ---- - arch/arm/boot/dts/qcom-ipq4019.dtsi | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -216,6 +216,16 @@ - interrupts = ; - }; - -+ vqmmc: regulator@1948000 { -+ compatible = "qcom,ipq4019-vqmmc-regulator"; -+ reg = <0x01948000 0x4>; -+ regulator-name = "vqmmc"; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-always-on; -+ status = "disabled"; -+ }; -+ - blsp_dma: dma@7884000 { - compatible = "qcom,bam-v1.7.0"; - reg = <0x07884000 0x23000>; diff --git a/target/linux/ipq40xx/patches-4.19/853-add-sdhci-msm-node-to-dts.patch b/target/linux/ipq40xx/patches-4.19/853-add-sdhci-msm-node-to-dts.patch deleted file mode 100644 index 4450d48501..0000000000 --- a/target/linux/ipq40xx/patches-4.19/853-add-sdhci-msm-node-to-dts.patch +++ /dev/null @@ -1,41 +0,0 @@ -Subject: [PATCH] ARM: dts: qcom: ipq4019: Add SDHCI controller node -Date: Thu, 15 Aug 2019 19:28:23 +0200 -Message-Id: <20190815172823.12028-1-robimarko@gmail.com> -X-Mailer: git-send-email 2.21.0 -MIME-Version: 1.0 -Sender: linux-arm-msm-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-arm-msm@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -IPQ4019 has a built in SD/eMMC controller which is supported by the -SDHCI MSM driver, by the "qcom,sdhci-msm-v4" binding. -So lets add the appropriate node for it. - -Signed-off-by: Robert Marko ---- - arch/arm/boot/dts/qcom-ipq4019.dtsi | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -226,6 +226,18 @@ - status = "disabled"; - }; - -+ sdhci: sdhci@7824900 { -+ compatible = "qcom,sdhci-msm-v4"; -+ reg = <0x7824900 0x11c>, <0x7824000 0x800>; -+ interrupts = , ; -+ interrupt-names = "hc_irq", "pwr_irq"; -+ bus-width = <8>; -+ clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>, -+ <&gcc GCC_DCD_XO_CLK>; -+ clock-names = "core", "iface", "xo"; -+ status = "disabled"; -+ }; -+ - blsp_dma: dma@7884000 { - compatible = "qcom,bam-v1.7.0"; - reg = <0x07884000 0x23000>; diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch index cc8c54265d..cd781427c4 100644 --- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch @@ -5,8 +5,8 @@ Subject: [PATCH] arm: boot: add dts files Signed-off-by: John Crispin --- - arch/arm/boot/dts/Makefile | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) + arch/arm/boot/dts/Makefile | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile diff --git a/target/linux/ipq40xx/patches-5.4/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch b/target/linux/ipq40xx/patches-5.4/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch deleted file mode 100644 index 3b8ac4944a..0000000000 --- a/target/linux/ipq40xx/patches-5.4/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/drivers/regulator/Kconfig -+++ b/drivers/regulator/Kconfig -@@ -334,6 +334,13 @@ config REGULATOR_HI655X - This driver provides support for the voltage regulators of the - Hisilicon Hi655x PMIC device. - -+config REGULATOR_VQMMC_IPQ4019 -+ tristate "IPQ4019 VQMMC SD LDO regulator support" -+ depends on ARCH_QCOM -+ help -+ This driver provides support for the VQMMC LDO I/0 -+ voltage regulator of the IPQ4019 SD/EMMC controller. -+ - config REGULATOR_ISL9305 - tristate "Intersil ISL9305 regulator" - depends on I2C ---- a/drivers/regulator/Makefile -+++ b/drivers/regulator/Makefile -@@ -43,6 +43,7 @@ obj-$(CONFIG_REGULATOR_GPIO) += gpio-reg - obj-$(CONFIG_REGULATOR_HI6421) += hi6421-regulator.o - obj-$(CONFIG_REGULATOR_HI6421V530) += hi6421v530-regulator.o - obj-$(CONFIG_REGULATOR_HI655X) += hi655x-regulator.o -+obj-$(CONFIG_REGULATOR_VQMMC_IPQ4019) += ipq4019-vqmmc-regulator.o - obj-$(CONFIG_REGULATOR_ISL6271A) += isl6271a-regulator.o - obj-$(CONFIG_REGULATOR_ISL9305) += isl9305.o - obj-$(CONFIG_REGULATOR_LM363X) += lm363x-regulator.o diff --git a/target/linux/ipq40xx/patches-5.4/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator.patch b/target/linux/ipq40xx/patches-5.4/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator.patch deleted file mode 100644 index fdb3f8bbcc..0000000000 --- a/target/linux/ipq40xx/patches-5.4/852-ARM-dts-qcom-ipq4019-Add-SDHCI-VQMMC-LDO-regulator.patch +++ /dev/null @@ -1,33 +0,0 @@ -From beae4078c07d3cdc90473a2b35eb0d2b4f3c922c Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Sat, 14 Sep 2019 23:13:17 +0200 -Subject: [PATCH] ARM: dts: qcom: ipq4019: Add SDHCI VQMMC LDO regulator node - -IPQ4019 has a built in SD/eMMC controller which depends on -VQMMC LDO regulator working. -Since we have a driver for it lets add the appropriate node for it. - -Signed-off-by: Robert Marko ---- - arch/arm/boot/dts/qcom-ipq4019.dtsi | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -216,6 +216,16 @@ - interrupts = ; - }; - -+ vqmmc: regulator@1948000 { -+ compatible = "qcom,ipq4019-vqmmc-regulator"; -+ reg = <0x01948000 0x4>; -+ regulator-name = "vqmmc"; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-always-on; -+ status = "disabled"; -+ }; -+ - blsp_dma: dma@7884000 { - compatible = "qcom,bam-v1.7.0"; - reg = <0x07884000 0x23000>; diff --git a/target/linux/ipq40xx/patches-5.4/853-add-sdhci-msm-node-to-dts.patch b/target/linux/ipq40xx/patches-5.4/853-add-sdhci-msm-node-to-dts.patch deleted file mode 100644 index 4450d48501..0000000000 --- a/target/linux/ipq40xx/patches-5.4/853-add-sdhci-msm-node-to-dts.patch +++ /dev/null @@ -1,41 +0,0 @@ -Subject: [PATCH] ARM: dts: qcom: ipq4019: Add SDHCI controller node -Date: Thu, 15 Aug 2019 19:28:23 +0200 -Message-Id: <20190815172823.12028-1-robimarko@gmail.com> -X-Mailer: git-send-email 2.21.0 -MIME-Version: 1.0 -Sender: linux-arm-msm-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-arm-msm@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -IPQ4019 has a built in SD/eMMC controller which is supported by the -SDHCI MSM driver, by the "qcom,sdhci-msm-v4" binding. -So lets add the appropriate node for it. - -Signed-off-by: Robert Marko ---- - arch/arm/boot/dts/qcom-ipq4019.dtsi | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -226,6 +226,18 @@ - status = "disabled"; - }; - -+ sdhci: sdhci@7824900 { -+ compatible = "qcom,sdhci-msm-v4"; -+ reg = <0x7824900 0x11c>, <0x7824000 0x800>; -+ interrupts = , ; -+ interrupt-names = "hc_irq", "pwr_irq"; -+ bus-width = <8>; -+ clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>, -+ <&gcc GCC_DCD_XO_CLK>; -+ clock-names = "core", "iface", "xo"; -+ status = "disabled"; -+ }; -+ - blsp_dma: dma@7884000 { - compatible = "qcom,bam-v1.7.0"; - reg = <0x07884000 0x23000>; diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index 8ffdc895f8..dd03521329 100644 --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -5,8 +5,8 @@ Subject: [PATCH] arm: boot: add dts files Signed-off-by: John Crispin --- - arch/arm/boot/dts/Makefile | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) + arch/arm/boot/dts/Makefile | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile