Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d47fbb59 authored by Florian Fainelli's avatar Florian Fainelli Committed by Ralf Baechle
Browse files

MIPS: AR7: Make board code register ar7_wdt as a platform device



This patch makes the board code register the ar7_wdt driver as a platform
device. We move the dynamic resource calculation here since the driver
should not be aware of the AR7 SoC version it is running on.

Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 6f4c7b32
Loading
Loading
Loading
Loading
+32 −0
Original line number Original line Diff line number Diff line
@@ -417,6 +417,20 @@ static struct platform_device ar7_udc = {
	.num_resources = ARRAY_SIZE(usb_res),
	.num_resources = ARRAY_SIZE(usb_res),
};
};


static struct resource ar7_wdt_res = {
	.name = "regs",
	.start = -1, /* Filled at runtime */
	.end = -1, /* Filled at runtime */
	.flags = IORESOURCE_MEM,
};

static struct platform_device ar7_wdt = {
	.id = -1,
	.name  = "ar7_wdt",
	.resource = &ar7_wdt_res,
	.num_resources = 1,
};

static inline unsigned char char2hex(char h)
static inline unsigned char char2hex(char h)
{
{
	switch (h) {
	switch (h) {
@@ -487,6 +501,7 @@ static void __init detect_leds(void)


static int __init ar7_register_devices(void)
static int __init ar7_register_devices(void)
{
{
	u16 chip_id;
	int res;
	int res;
#ifdef CONFIG_SERIAL_8250
#ifdef CONFIG_SERIAL_8250
	static struct uart_port uart_port[2];
	static struct uart_port uart_port[2];
@@ -565,6 +580,23 @@ static int __init ar7_register_devices(void)


	res = platform_device_register(&ar7_udc);
	res = platform_device_register(&ar7_udc);


	chip_id = ar7_chip_id();
	switch (chip_id) {
	case AR7_CHIP_7100:
	case AR7_CHIP_7200:
		ar7_wdt_res.start = AR7_REGS_WDT;
		break;
	case AR7_CHIP_7300:
		ar7_wdt_res.start = UR8_REGS_WDT;
		break;
	default:
		break;
	}

	ar7_wdt_res.end = ar7_wdt_res.start + 0x20;

	res = platform_device_register(&ar7_wdt);

	return res;
	return res;
}
}
arch_initcall(ar7_register_devices);
arch_initcall(ar7_register_devices);