Re: [PATCH 04/27] ARM: pxa: drop pxa310/pxa320/pxa93x support

From: Ulf Hansson
Date: Thu Jan 05 2023 - 10:00:22 EST


On Thu, 5 Jan 2023 at 14:46, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> There is currently no devicetree support for any of these three
> SoCs, and no board files remain. As it seems unlikely that anyone
> is going to add DT support soon, let's drop the SoC specific code
> now.
>
> Cc: Michael Turquette <mturquette@xxxxxxxxxxxx>
> Cc: Stephen Boyd <sboyd@xxxxxxxxxx>
> Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx>
> Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
> Cc: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
> Cc: linux-clk@xxxxxxxxxxxxxxx
> Cc: linux-pm@xxxxxxxxxxxxxxx
> Cc: linux-mmc@xxxxxxxxxxxxxxx
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> # For MMC

Kind regards
Uffe

> ---
> arch/arm/mach-pxa/devices.h | 1 -
> arch/arm/mach-pxa/mfp-pxa300.h | 52 ----
> arch/arm/mach-pxa/mfp-pxa930.h | 495 -------------------------------
> arch/arm/mach-pxa/pxa300.c | 17 +-
> arch/arm/mach-pxa/pxa3xx.c | 4 +-
> drivers/clk/pxa/clk-pxa3xx.c | 22 +-
> drivers/cpufreq/pxa3xx-cpufreq.c | 21 +-
> drivers/mmc/host/pxamci.c | 3 +-
> drivers/pcmcia/pxa2xx_base.c | 6 -
> include/linux/soc/pxa/cpu.h | 93 +-----
> 10 files changed, 9 insertions(+), 705 deletions(-)
> delete mode 100644 arch/arm/mach-pxa/mfp-pxa930.h
>
> diff --git a/arch/arm/mach-pxa/devices.h b/arch/arm/mach-pxa/devices.h
> index 82c83939017a..1c252eca39c1 100644
> --- a/arch/arm/mach-pxa/devices.h
> +++ b/arch/arm/mach-pxa/devices.h
> @@ -54,7 +54,6 @@ extern struct platform_device pxa_device_asoc_ssp4;
> extern struct platform_device pxa25x_device_gpio;
> extern struct platform_device pxa27x_device_gpio;
> extern struct platform_device pxa3xx_device_gpio;
> -extern struct platform_device pxa93x_device_gpio;
>
> void __init pxa_register_device(struct platform_device *dev, void *data);
> void __init pxa2xx_set_dmac_info(struct mmp_dma_platdata *dma_pdata);
> diff --git a/arch/arm/mach-pxa/mfp-pxa300.h b/arch/arm/mach-pxa/mfp-pxa300.h
> index 1223e350cea0..058698e7e513 100644
> --- a/arch/arm/mach-pxa/mfp-pxa300.h
> +++ b/arch/arm/mach-pxa/mfp-pxa300.h
> @@ -27,15 +27,6 @@
> #define GPIO61_GPIO MFP_CFG(GPIO61, AF0)
> #define GPIO62_GPIO MFP_CFG(GPIO62, AF0)
>
> -#ifdef CONFIG_CPU_PXA310
> -#define GPIO7_2_GPIO MFP_CFG(GPIO7_2, AF0)
> -#define GPIO8_2_GPIO MFP_CFG(GPIO8_2, AF0)
> -#define GPIO9_2_GPIO MFP_CFG(GPIO9_2, AF0)
> -#define GPIO10_2_GPIO MFP_CFG(GPIO10_2, AF0)
> -#define GPIO11_2_GPIO MFP_CFG(GPIO11_2, AF0)
> -#define GPIO12_2_GPIO MFP_CFG(GPIO12_2, AF0)
> -#endif
> -
> /* Chip Select */
> #define GPIO1_nCS2 MFP_CFG(GPIO1, AF1)
> #define GPIO2_nCS3 MFP_CFG(GPIO2, AF1)
> @@ -526,47 +517,4 @@
> #define GPIO46_UTM_PHYDATA_7 MFP_CFG(GPIO46, AF3)
> #endif /* CONFIG_CPU_PXA300 */
>
> -/*
> - * PXA310 specific MFP configurations
> - */
> -#ifdef CONFIG_CPU_PXA310
> -/* USB P2 */
> -#define GPIO36_USB_P2_1 MFP_CFG(GPIO36, AF1)
> -#define GPIO30_USB_P2_2 MFP_CFG(GPIO30, AF1)
> -#define GPIO35_USB_P2_3 MFP_CFG(GPIO35, AF1)
> -#define GPIO32_USB_P2_4 MFP_CFG(GPIO32, AF1)
> -#define GPIO34_USB_P2_5 MFP_CFG(GPIO34, AF1)
> -#define GPIO31_USB_P2_6 MFP_CFG(GPIO31, AF1)
> -
> -/* MMC1 */
> -#define GPIO24_MMC1_CMD MFP_CFG(GPIO24, AF3)
> -#define GPIO29_MMC1_DAT0 MFP_CFG(GPIO29, AF3)
> -
> -/* MMC3 */
> -#define GPIO103_MMC3_CLK MFP_CFG(GPIO103, AF2)
> -#define GPIO105_MMC3_CMD MFP_CFG(GPIO105, AF2)
> -#define GPIO11_2_MMC3_CLK MFP_CFG(GPIO11_2, AF1)
> -#define GPIO12_2_MMC3_CMD MFP_CFG(GPIO12_2, AF1)
> -#define GPIO7_2_MMC3_DAT0 MFP_CFG(GPIO7_2, AF1)
> -#define GPIO8_2_MMC3_DAT1 MFP_CFG(GPIO8_2, AF1)
> -#define GPIO9_2_MMC3_DAT2 MFP_CFG(GPIO9_2, AF1)
> -#define GPIO10_2_MMC3_DAT3 MFP_CFG(GPIO10_2, AF1)
> -
> -/* ULPI */
> -#define GPIO38_ULPI_CLK MFP_CFG(GPIO38, AF1)
> -#define GPIO30_ULPI_DATA_OUT_0 MFP_CFG(GPIO30, AF3)
> -#define GPIO31_ULPI_DATA_OUT_1 MFP_CFG(GPIO31, AF3)
> -#define GPIO32_ULPI_DATA_OUT_2 MFP_CFG(GPIO32, AF3)
> -#define GPIO33_ULPI_DATA_OUT_3 MFP_CFG(GPIO33, AF3)
> -#define GPIO34_ULPI_DATA_OUT_4 MFP_CFG(GPIO34, AF3)
> -#define GPIO35_ULPI_DATA_OUT_5 MFP_CFG(GPIO35, AF3)
> -#define GPIO36_ULPI_DATA_OUT_6 MFP_CFG(GPIO36, AF3)
> -#define GPIO37_ULPI_DATA_OUT_7 MFP_CFG(GPIO37, AF3)
> -#define GPIO33_ULPI_OTG_INTR MFP_CFG(GPIO33, AF1)
> -
> -#define ULPI_DIR MFP_CFG_DRV(ULPI_DIR, AF0, DS01X)
> -#define ULPI_NXT MFP_CFG_DRV(ULPI_NXT, AF0, DS01X)
> -#define ULPI_STP MFP_CFG_DRV(ULPI_STP, AF0, DS01X)
> -#endif /* CONFIG_CPU_PXA310 */
> -
> #endif /* __ASM_ARCH_MFP_PXA300_H */
> diff --git a/arch/arm/mach-pxa/mfp-pxa930.h b/arch/arm/mach-pxa/mfp-pxa930.h
> deleted file mode 100644
> index 0d195d3a8c61..000000000000
> diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
> index f77ec118d5b9..accd270ff8e2 100644
> --- a/arch/arm/mach-pxa/pxa300.c
> +++ b/arch/arm/mach-pxa/pxa300.c
> @@ -69,28 +69,13 @@ static struct mfp_addr_map pxa300_mfp_addr_map[] __initdata = {
> MFP_ADDR_END,
> };
>
> -/* override pxa300 MFP register addresses */
> -static struct mfp_addr_map pxa310_mfp_addr_map[] __initdata = {
> - MFP_ADDR_X(GPIO30, GPIO98, 0x0418),
> - MFP_ADDR_X(GPIO7_2, GPIO12_2, 0x052C),
> -
> - MFP_ADDR(ULPI_STP, 0x040C),
> - MFP_ADDR(ULPI_NXT, 0x0410),
> - MFP_ADDR(ULPI_DIR, 0x0414),
> -
> - MFP_ADDR_END,
> -};
> -
> static int __init pxa300_init(void)
> {
> - if (cpu_is_pxa300() || cpu_is_pxa310()) {
> + if (cpu_is_pxa300()) {
> mfp_init_base(io_p2v(MFPR_BASE));
> mfp_init_addr(pxa300_mfp_addr_map);
> }
>
> - if (cpu_is_pxa310())
> - mfp_init_addr(pxa310_mfp_addr_map);
> -
> return 0;
> }
>
> diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
> index b26f00fc75d5..7a02ddb30969 100644
> --- a/arch/arm/mach-pxa/pxa3xx.c
> +++ b/arch/arm/mach-pxa/pxa3xx.c
> @@ -496,8 +496,6 @@ static int __init pxa3xx_init(void)
> pxa3xx_init_pm();
>
> enable_irq_wake(IRQ_WAKEUP0);
> - if (cpu_is_pxa320())
> - enable_irq_wake(IRQ_WAKEUP1);
>
> register_syscore_ops(&pxa_irq_syscore_ops);
> register_syscore_ops(&pxa3xx_mfp_syscore_ops);
> @@ -509,7 +507,7 @@ static int __init pxa3xx_init(void)
> ret = platform_add_devices(devices, ARRAY_SIZE(devices));
> if (ret)
> return ret;
> - if (cpu_is_pxa300() || cpu_is_pxa310() || cpu_is_pxa320()) {
> + if (cpu_is_pxa300()) {
> platform_device_add_data(&pxa3xx_device_gpio,
> &pxa3xx_gpio_pdata,
> sizeof(pxa3xx_gpio_pdata));
> diff --git a/drivers/clk/pxa/clk-pxa3xx.c b/drivers/clk/pxa/clk-pxa3xx.c
> index 42958a542662..9b45dc297b22 100644
> --- a/drivers/clk/pxa/clk-pxa3xx.c
> +++ b/drivers/clk/pxa/clk-pxa3xx.c
> @@ -269,19 +269,6 @@ static struct desc_clk_cken pxa300_310_clocks[] __initdata = {
> PXA3XX_CKEN_1RATE("pxa3xx-gpio", NULL, GPIO, pxa3xx_13MHz_bus_parents),
> };
>
> -static struct desc_clk_cken pxa320_clocks[] __initdata = {
> - PXA3XX_PBUS_CKEN("pxa3xx-nand", NULL, NAND, 1, 2, 1, 6, 0),
> - PXA3XX_PBUS_CKEN("pxa3xx-gcu", NULL, PXA320_GCU, 1, 1, 1, 1, 0),
> - PXA3XX_CKEN_1RATE("pxa3xx-gpio", NULL, GPIO, pxa3xx_13MHz_bus_parents),
> -};
> -
> -static struct desc_clk_cken pxa93x_clocks[] __initdata = {
> -
> - PXA3XX_PBUS_CKEN("pxa3xx-gcu", NULL, PXA300_GCU, 1, 1, 1, 1, 0),
> - PXA3XX_PBUS_CKEN("pxa3xx-nand", NULL, NAND, 1, 2, 1, 4, 0),
> - PXA3XX_CKEN_1RATE("pxa93x-gpio", NULL, GPIO, pxa3xx_13MHz_bus_parents),
> -};
> -
> static unsigned long clk_pxa3xx_system_bus_get_rate(struct clk_hw *hw,
> unsigned long parent_rate)
> {
> @@ -446,13 +433,8 @@ int __init pxa3xx_clocks_init(void __iomem *regs, void __iomem *oscc_reg)
> ret = clk_pxa_cken_init(pxa3xx_clocks, ARRAY_SIZE(pxa3xx_clocks), regs);
> if (ret)
> return ret;
> - if (cpu_is_pxa320())
> - return clk_pxa_cken_init(pxa320_clocks,
> - ARRAY_SIZE(pxa320_clocks), regs);
> - if (cpu_is_pxa300() || cpu_is_pxa310())
> - return clk_pxa_cken_init(pxa300_310_clocks,
> - ARRAY_SIZE(pxa300_310_clocks), regs);
> - return clk_pxa_cken_init(pxa93x_clocks, ARRAY_SIZE(pxa93x_clocks), regs);
> + return clk_pxa_cken_init(pxa300_310_clocks,
> + ARRAY_SIZE(pxa300_310_clocks), regs);
> }
>
> static void __init pxa3xx_dt_clocks_init(struct device_node *np)
> diff --git a/drivers/cpufreq/pxa3xx-cpufreq.c b/drivers/cpufreq/pxa3xx-cpufreq.c
> index 4afa48d172db..23bc3c7a6288 100644
> --- a/drivers/cpufreq/pxa3xx-cpufreq.c
> +++ b/drivers/cpufreq/pxa3xx-cpufreq.c
> @@ -91,15 +91,6 @@ static struct pxa3xx_freq_info pxa300_freqs[] = {
> OP(624, 24, 2, 208, 260, 208, 312, 3, 1375, 1400), /* 624MHz */
> };
>
> -static struct pxa3xx_freq_info pxa320_freqs[] = {
> - /* CPU XL XN HSS DMEM SMEM SRAM DFI VCC_CORE VCC_SRAM */
> - OP(104, 8, 1, 104, 260, 78, 104, 3, 1000, 1100), /* 104MHz */
> - OP(208, 16, 1, 104, 260, 104, 156, 2, 1000, 1100), /* 208MHz */
> - OP(416, 16, 2, 156, 260, 104, 208, 2, 1100, 1200), /* 416MHz */
> - OP(624, 24, 2, 208, 260, 208, 312, 3, 1375, 1400), /* 624MHz */
> - OP(806, 31, 2, 208, 260, 208, 312, 3, 1400, 1400), /* 806MHz */
> -};
> -
> static unsigned int pxa3xx_freqs_num;
> static struct pxa3xx_freq_info *pxa3xx_freqs;
> static struct cpufreq_frequency_table *pxa3xx_freqs_table;
> @@ -186,17 +177,11 @@ static int pxa3xx_cpufreq_init(struct cpufreq_policy *policy)
>
> /* set default policy and cpuinfo */
> policy->min = policy->cpuinfo.min_freq = 104000;
> - policy->max = policy->cpuinfo.max_freq =
> - (cpu_is_pxa320()) ? 806000 : 624000;
> + policy->max = policy->cpuinfo.max_freq = 624000;
> policy->cpuinfo.transition_latency = 1000; /* FIXME: 1 ms, assumed */
>
> - if (cpu_is_pxa300() || cpu_is_pxa310())
> - ret = setup_freqs_table(policy, pxa300_freqs,
> - ARRAY_SIZE(pxa300_freqs));
> -
> - if (cpu_is_pxa320())
> - ret = setup_freqs_table(policy, pxa320_freqs,
> - ARRAY_SIZE(pxa320_freqs));
> + ret = setup_freqs_table(policy, pxa300_freqs,
> + ARRAY_SIZE(pxa300_freqs));
>
> if (ret) {
> pr_err("failed to setup frequency table\n");
> diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
> index 2a988f942b6c..60bdd691c391 100644
> --- a/drivers/mmc/host/pxamci.c
> +++ b/drivers/mmc/host/pxamci.c
> @@ -44,8 +44,7 @@
> #define NR_SG 1
> #define CLKRT_OFF (~0)
>
> -#define mmc_has_26MHz() (cpu_is_pxa300() || cpu_is_pxa310() \
> - || cpu_is_pxa935())
> +#define mmc_has_26MHz() (cpu_is_pxa300())
>
> struct pxamci_host {
> struct mmc_host *mmc;
> diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
> index 5254028354f4..a6c6ee034582 100644
> --- a/drivers/pcmcia/pxa2xx_base.c
> +++ b/drivers/pcmcia/pxa2xx_base.c
> @@ -268,12 +268,6 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
> goto err0;
> }
>
> - if (cpu_is_pxa320() && ops->nr > 1) {
> - dev_err(&dev->dev, "pxa320 supports only one pcmcia slot");
> - ret = -EINVAL;
> - goto err0;
> - }
> -
> clk = devm_clk_get(&dev->dev, NULL);
> if (IS_ERR(clk))
> return -ENODEV;
> diff --git a/include/linux/soc/pxa/cpu.h b/include/linux/soc/pxa/cpu.h
> index 5782450ee45c..0f894d12fe1d 100644
> --- a/include/linux/soc/pxa/cpu.h
> +++ b/include/linux/soc/pxa/cpu.h
> @@ -56,12 +56,6 @@
> * PXA935 B1 0x56056938 0x8E653013
> */
> #ifdef CONFIG_PXA25x
> -#define __cpu_is_pxa210(id) \
> - ({ \
> - unsigned int _id = (id) & 0xf3f0; \
> - _id == 0x2120; \
> - })
> -
> #define __cpu_is_pxa250(id) \
> ({ \
> unsigned int _id = (id) & 0xf3ff; \
> @@ -80,7 +74,6 @@
> _id == 0x2100; \
> })
> #else
> -#define __cpu_is_pxa210(id) (0)
> #define __cpu_is_pxa250(id) (0)
> #define __cpu_is_pxa255(id) (0)
> #define __cpu_is_pxa25x(id) (0)
> @@ -106,51 +99,6 @@
> #define __cpu_is_pxa300(id) (0)
> #endif
>
> -#ifdef CONFIG_CPU_PXA310
> -#define __cpu_is_pxa310(id) \
> - ({ \
> - unsigned int _id = (id) >> 4 & 0xfff; \
> - _id == 0x689; \
> - })
> -#else
> -#define __cpu_is_pxa310(id) (0)
> -#endif
> -
> -#ifdef CONFIG_CPU_PXA320
> -#define __cpu_is_pxa320(id) \
> - ({ \
> - unsigned int _id = (id) >> 4 & 0xfff; \
> - _id == 0x603 || _id == 0x682; \
> - })
> -#else
> -#define __cpu_is_pxa320(id) (0)
> -#endif
> -
> -#ifdef CONFIG_CPU_PXA930
> -#define __cpu_is_pxa930(id) \
> - ({ \
> - unsigned int _id = (id) >> 4 & 0xfff; \
> - _id == 0x683; \
> - })
> -#else
> -#define __cpu_is_pxa930(id) (0)
> -#endif
> -
> -#ifdef CONFIG_CPU_PXA935
> -#define __cpu_is_pxa935(id) \
> - ({ \
> - unsigned int _id = (id) >> 4 & 0xfff; \
> - _id == 0x693; \
> - })
> -#else
> -#define __cpu_is_pxa935(id) (0)
> -#endif
> -
> -#define cpu_is_pxa210() \
> - ({ \
> - __cpu_is_pxa210(read_cpuid_id()); \
> - })
> -
> #define cpu_is_pxa250() \
> ({ \
> __cpu_is_pxa250(read_cpuid_id()); \
> @@ -176,27 +124,6 @@
> __cpu_is_pxa300(read_cpuid_id()); \
> })
>
> -#define cpu_is_pxa310() \
> - ({ \
> - __cpu_is_pxa310(read_cpuid_id()); \
> - })
> -
> -#define cpu_is_pxa320() \
> - ({ \
> - __cpu_is_pxa320(read_cpuid_id()); \
> - })
> -
> -#define cpu_is_pxa930() \
> - ({ \
> - __cpu_is_pxa930(read_cpuid_id()); \
> - })
> -
> -#define cpu_is_pxa935() \
> - ({ \
> - __cpu_is_pxa935(read_cpuid_id()); \
> - })
> -
> -
>
> /*
> * CPUID Core Generation Bit
> @@ -215,25 +142,12 @@
> #ifdef CONFIG_PXA3xx
> #define __cpu_is_pxa3xx(id) \
> ({ \
> - __cpu_is_pxa300(id) \
> - || __cpu_is_pxa310(id) \
> - || __cpu_is_pxa320(id) \
> - || __cpu_is_pxa93x(id); \
> + __cpu_is_pxa300(id); \
> })
> #else
> #define __cpu_is_pxa3xx(id) (0)
> #endif
>
> -#if defined(CONFIG_CPU_PXA930) || defined(CONFIG_CPU_PXA935)
> -#define __cpu_is_pxa93x(id) \
> - ({ \
> - __cpu_is_pxa930(id) \
> - || __cpu_is_pxa935(id); \
> - })
> -#else
> -#define __cpu_is_pxa93x(id) (0)
> -#endif
> -
> #define cpu_is_pxa2xx() \
> ({ \
> __cpu_is_pxa2xx(read_cpuid_id()); \
> @@ -244,9 +158,4 @@
> __cpu_is_pxa3xx(read_cpuid_id()); \
> })
>
> -#define cpu_is_pxa93x() \
> - ({ \
> - __cpu_is_pxa93x(read_cpuid_id()); \
> - })
> -
> #endif
> --
> 2.39.0
>