Unverified Commit 917195d6 authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Arnd Bergmann
Browse files

ARM: pxa: consolidate GPIO chip platform data



The platform data for the GPIO controllers for the boards using non-DT
setup is the same between PXA25x (gumstix) and PXA27x (Spitz) devices.
Move it into devices.c to consolidate code. It will help with conversion
to software nodes/properties.

Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240628180852.1738922-3-dmitry.torokhov@gmail.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 78ab3d35
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <linux/clk-provider.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/gpio-pxa.h>
#include <linux/platform_data/i2c-pxa.h>
#include <linux/soc/pxa/cpu.h>

@@ -17,6 +18,7 @@
#include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/mmp_dma.h>

#include "mfp-pxa2xx.h"
#include "regs-ost.h"
#include "reset.h"
#include "devices.h"
@@ -650,11 +652,19 @@ struct resource pxa_resource_gpio[] = {
	},
};

static struct pxa_gpio_platform_data pxa2xx_gpio_info = {
	.irq_base	= PXA_GPIO_TO_IRQ(0),
	.gpio_set_wake	= gpio_set_wake,
};

struct platform_device pxa25x_device_gpio = {
	.name		= "pxa25x-gpio",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(pxa_resource_gpio),
	.resource	= pxa_resource_gpio,
	.dev		= {
		.platform_data	= &pxa2xx_gpio_info,
	},
};

struct platform_device pxa27x_device_gpio = {
@@ -662,6 +672,9 @@ struct platform_device pxa27x_device_gpio = {
	.id		= -1,
	.num_resources	= ARRAY_SIZE(pxa_resource_gpio),
	.resource	= pxa_resource_gpio,
	.dev		= {
		.platform_data	= &pxa2xx_gpio_info,
	},
};

static struct resource pxa_dma_resource[] = {
+1 −6
Original line number Diff line number Diff line
@@ -178,12 +178,8 @@ void __init pxa25x_map_io(void)
	pxa25x_get_clk_frequency_khz(1);
}

static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = {
	.irq_base	= PXA_GPIO_TO_IRQ(0),
	.gpio_set_wake	= gpio_set_wake,
};

static struct platform_device *pxa25x_devices[] __initdata = {
	&pxa25x_device_gpio,
	&pxa25x_device_udc,
	&pxa_device_pmu,
	&pxa_device_i2s,
@@ -244,7 +240,6 @@ static int __init pxa25x_init(void)

		if (!of_have_populated_dt()) {
			pxa2xx_set_dmac_info(&pxa25x_dma_pdata);
			pxa_register_device(&pxa25x_device_gpio, &pxa25x_gpio_info);
			ret = platform_add_devices(pxa25x_devices,
						   ARRAY_SIZE(pxa25x_devices));
		}
+1 −7
Original line number Diff line number Diff line
@@ -276,12 +276,8 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
	pxa_register_device(&pxa27x_device_i2c_power, info);
}

static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = {
	.irq_base	= PXA_GPIO_TO_IRQ(0),
	.gpio_set_wake	= gpio_set_wake,
};

static struct platform_device *devices[] __initdata = {
	&pxa27x_device_gpio,
	&pxa27x_device_udc,
	&pxa_device_pmu,
	&pxa_device_i2s,
@@ -345,8 +341,6 @@ static int __init pxa27x_init(void)
		register_syscore_ops(&pxa2xx_mfp_syscore_ops);

		if (!of_have_populated_dt()) {
			pxa_register_device(&pxa27x_device_gpio,
					    &pxa27x_gpio_info);
			pxa2xx_set_dmac_info(&pxa27x_dma_pdata);
			ret = platform_add_devices(devices,
						   ARRAY_SIZE(devices));