Message ID | 20230105134622.254560-5-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | ARM: pxa: remove all unused boards&drivers | expand |
On Thu, 5 Jan 2023 at 14:46, Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > 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@baylibre.com> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: "Rafael J. Wysocki" <rafael@kernel.org> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Dominik Brodowski <linux@dominikbrodowski.net> > Cc: linux-clk@vger.kernel.org > Cc: linux-pm@vger.kernel.org > Cc: linux-mmc@vger.kernel.org > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # 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 >
On 05-01-23, 14:45, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > 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@baylibre.com> > Cc: Stephen Boyd <sboyd@kernel.org> > Cc: "Rafael J. Wysocki" <rafael@kernel.org> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Dominik Brodowski <linux@dominikbrodowski.net> > Cc: linux-clk@vger.kernel.org > Cc: linux-pm@vger.kernel.org > Cc: linux-mmc@vger.kernel.org > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/cpufreq/pxa3xx-cpufreq.c | 21 +- Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Arnd Bergmann <arnd@kernel.org> writes: > 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. Hi Arnd, Here you're dropping pxa variant support. For the currently "partly" working boards in devicetree, such a zylonite, this will break their current support. For example the zylonite I have which is working on DT has a pxa310 variant. The cm-x300, which also works in DT, has a pxa320 variant. What these boards need is their IO mappings and cpufreq to still work after your serie in DT. What bothers me are the changes to : - drivers/clk/pxa/clk-pxa3xx.c - drivers/cpufreq/pxa3xx-cpufreq.c Here the clock changes will probably remove the clock provided to specific pxa310/pxa320 drivers for example. I don't know how you want to proceed, yet this change will break some pxa3xx platforms. Cheers. -- Robert
On Sun, Jan 8, 2023, at 09:49, Robert Jarzmik wrote: > Arnd Bergmann <arnd@kernel.org> writes: >> 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. > > Hi Arnd, > > Here you're dropping pxa variant support. For the currently > "partly" working boards in devicetree, such a zylonite, this > will break their current support. > > For example the zylonite I have which is working on DT has a > pxa310 variant. > The cm-x300, which also works in DT, has a pxa320 variant. > > What these boards need is their IO mappings and cpufreq to still > work after > your serie in DT. What bothers me are the changes to : > - drivers/clk/pxa/clk-pxa3xx.c > - drivers/cpufreq/pxa3xx-cpufreq.c > > Here the clock changes will probably remove the clock provided to > specific > pxa310/pxa320 drivers for example. > > I don't know how you want to proceed, yet this change will break > some pxa3xx platforms. Hi Robert, Thanks for pointing this out, I thought that I had caught all the missing dependencies ones after you pointed out the AC97_BUS_NEW that I fixed in patch 14.
On Sun, Jan 8, 2023, at 14:40, Arnd Bergmann wrote: > On Sun, Jan 8, 2023, at 09:49, Robert Jarzmik wrote: >> Arnd Bergmann <arnd@kernel.org> writes: > If that's all you think is missing, I can add this > trivial patch as well and rework the series to not > drop code that depends on PXA310/PXA320: > > --- a/arch/arm/mach-pxa/Kconfig > +++ b/arch/arm/mach-pxa/Kconfig > @@ -45,6 +45,8 @@ config MACH_PXA27X_DT > config MACH_PXA3XX_DT > bool "Support PXA3xx platforms from device tree" > select CPU_PXA300 > + select CPU_PXA310 > + select CPU_PXA320 > select PINCTRL > select POWER_SUPPLY > select PXA3xx I've put this in a separate branch now and will submit it as a bugfix along with two other patches for issues I found while testing omap1. I've dropped the pxa310/320 removal now, but kept the pxa93x removal, since that has no DT support at all and remains dead code. Arnd
"Arnd Bergmann" <arnd@arndb.de> writes: > Hi Robert, Hi Arnd, > Thanks for pointing this out, I thought that I had caught > all the missing dependencies ones after you pointed out > the AC97_BUS_NEW that I fixed in patch 14. Sorry I've not seen this one in my previous review. > From what I can tell, commit b5aaaa666a85 ("ARM: pxa: add > Kconfig dependencies for ATAGS based boards"), the > PXA310/PXA320 DT support became dead code because > MACH_PXA3XX_DT only selects CPU_PXA300, so if it worked > before that commit, it now needs CONFIG_UNUSED_BOARD_FILES > and CONFIG_EXPERT as well as enabling one of the legacy > board files with the corresponding chip support. > > If that's all you think is missing, I can add this > trivial patch as well and rework the series to not > drop code that depends on PXA310/PXA320: Yes, that would be great ! > Can you have a look at the other patches to see if there > are more removed drivers or platform bits that are currently > dead code but are actually required? Yes, I've been through your whole serie and that's the last thing I have identified. I've read carefully all the patches now, and the whole serie looks good to me. So with this patch and keeping the clocks and cpufreq parts for pxa3*0, you can add everywhere my : Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Cheers. -- Robert
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