Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memory: atmel-sdramc: remove the driver

Driver does only clock request + enable for DDR clocks. DDR clocks are
enabled by bootloader and need to stay that way in Linux. To avoid having
these clocks disabled by clock subsystem in case there are no Linux
consumers for them the clocks were marked as critical in clock drivers
(in commit 68b3b6f1773d ("clk: at91: mark ddr clocks as critical")).
With this, there is no need to have a separate driver that only does
clock request + enable.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20230516072405.2696225-1-claudiu.beznea@microchip.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

authored by

Claudiu Beznea and committed by
Krzysztof Kozlowski
d3369a4b 1d9e93fa

-90
-4
arch/arm/mach-at91/Kconfig
··· 97 97 depends on ARCH_MULTI_V5 98 98 select ATMEL_AIC_IRQ 99 99 select ATMEL_PM if PM 100 - select ATMEL_SDRAMC 101 100 select CPU_ARM926T 102 101 select HAVE_AT91_SMD 103 102 select HAVE_AT91_USB_CLK ··· 130 131 depends on ARCH_MULTI_V5 131 132 select ATMEL_AIC5_IRQ 132 133 select ATMEL_PM if PM 133 - select ATMEL_SDRAMC 134 134 select CPU_ARM926T 135 135 select HAVE_AT91_USB_CLK 136 136 select HAVE_AT91_GENERATED_CLK ··· 211 213 bool 212 214 select ATMEL_AIC5_IRQ 213 215 select ATMEL_PM if PM 214 - select ATMEL_SDRAMC 215 216 select MEMORY 216 217 select SOC_SAM_V7 217 218 select SRAM if PM ··· 231 234 bool 232 235 select ARM_GIC 233 236 select ATMEL_PM if PM 234 - select ATMEL_SDRAMC 235 237 select MEMORY 236 238 select SOC_SAM_V7 237 239 select SRAM if PM
-11
drivers/memory/Kconfig
··· 30 30 If you have an embedded system with an AMBA bus and a PL172 31 31 controller, say Y or M here. 32 32 33 - config ATMEL_SDRAMC 34 - bool "Atmel (Multi-port DDR-)SDRAM Controller" 35 - default y if ARCH_AT91 36 - depends on ARCH_AT91 || COMPILE_TEST 37 - depends on OF 38 - help 39 - This driver is for Atmel SDRAM Controller or Atmel Multi-port 40 - DDR-SDRAM Controller available on Atmel AT91SAM9 and SAMA5 SoCs. 41 - Starting with the at91sam9g45, this controller supports SDR, DDR and 42 - LP-DDR memories. 43 - 44 33 config ATMEL_EBI 45 34 bool "Atmel EBI driver" 46 35 default y if ARCH_AT91
-1
drivers/memory/Makefile
··· 8 8 obj-$(CONFIG_OF) += of_memory.o 9 9 endif 10 10 obj-$(CONFIG_ARM_PL172_MPMC) += pl172.o 11 - obj-$(CONFIG_ATMEL_SDRAMC) += atmel-sdramc.o 12 11 obj-$(CONFIG_ATMEL_EBI) += atmel-ebi.o 13 12 obj-$(CONFIG_BRCMSTB_DPFE) += brcmstb_dpfe.o 14 13 obj-$(CONFIG_BRCMSTB_MEMC) += brcmstb_memc.o
-74
drivers/memory/atmel-sdramc.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Atmel (Multi-port DDR-)SDRAM Controller driver 4 - * 5 - * Author: Alexandre Belloni <alexandre.belloni@free-electrons.com> 6 - * 7 - * Copyright (C) 2014 Atmel 8 - */ 9 - 10 - #include <linux/clk.h> 11 - #include <linux/err.h> 12 - #include <linux/kernel.h> 13 - #include <linux/init.h> 14 - #include <linux/of_platform.h> 15 - #include <linux/platform_device.h> 16 - 17 - struct at91_ramc_caps { 18 - bool has_ddrck; 19 - bool has_mpddr_clk; 20 - }; 21 - 22 - static const struct at91_ramc_caps at91rm9200_caps = { }; 23 - 24 - static const struct at91_ramc_caps at91sam9g45_caps = { 25 - .has_ddrck = 1, 26 - .has_mpddr_clk = 0, 27 - }; 28 - 29 - static const struct at91_ramc_caps sama5d3_caps = { 30 - .has_ddrck = 1, 31 - .has_mpddr_clk = 1, 32 - }; 33 - 34 - static const struct of_device_id atmel_ramc_of_match[] = { 35 - { .compatible = "atmel,at91rm9200-sdramc", .data = &at91rm9200_caps, }, 36 - { .compatible = "atmel,at91sam9260-sdramc", .data = &at91rm9200_caps, }, 37 - { .compatible = "atmel,at91sam9g45-ddramc", .data = &at91sam9g45_caps, }, 38 - { .compatible = "atmel,sama5d3-ddramc", .data = &sama5d3_caps, }, 39 - {}, 40 - }; 41 - 42 - static int atmel_ramc_probe(struct platform_device *pdev) 43 - { 44 - const struct at91_ramc_caps *caps; 45 - struct clk *clk; 46 - 47 - caps = of_device_get_match_data(&pdev->dev); 48 - 49 - if (caps->has_ddrck) { 50 - clk = devm_clk_get_enabled(&pdev->dev, "ddrck"); 51 - if (IS_ERR(clk)) 52 - return PTR_ERR(clk); 53 - } 54 - 55 - if (caps->has_mpddr_clk) { 56 - clk = devm_clk_get_enabled(&pdev->dev, "mpddr"); 57 - if (IS_ERR(clk)) { 58 - pr_err("AT91 RAMC: couldn't get mpddr clock\n"); 59 - return PTR_ERR(clk); 60 - } 61 - } 62 - 63 - return 0; 64 - } 65 - 66 - static struct platform_driver atmel_ramc_driver = { 67 - .probe = atmel_ramc_probe, 68 - .driver = { 69 - .name = "atmel-ramc", 70 - .of_match_table = atmel_ramc_of_match, 71 - }, 72 - }; 73 - 74 - builtin_platform_driver(atmel_ramc_driver);