|  | // SPDX-License-Identifier: GPL-2.0-only | 
|  | /* | 
|  | *  linux/arch/arm/mach-mmp/avengers_lite.c | 
|  | * | 
|  | *  Support for the Marvell PXA168-based Avengers lite Development Platform. | 
|  | * | 
|  | *  Copyright (C) 2009-2010 Marvell International Ltd. | 
|  | */ | 
|  |  | 
|  | #include <linux/init.h> | 
|  | #include <linux/kernel.h> | 
|  | #include <linux/gpio-pxa.h> | 
|  | #include <linux/platform_device.h> | 
|  |  | 
|  | #include <asm/mach-types.h> | 
|  | #include <asm/mach/arch.h> | 
|  | #include "addr-map.h" | 
|  | #include "mfp-pxa168.h" | 
|  | #include "pxa168.h" | 
|  | #include "irqs.h" | 
|  |  | 
|  |  | 
|  | #include "common.h" | 
|  | #include <linux/delay.h> | 
|  |  | 
|  | /* Avengers lite MFP configurations */ | 
|  | static unsigned long avengers_lite_pin_config_V16F[] __initdata = { | 
|  | /* DEBUG_UART */ | 
|  | GPIO88_UART2_TXD, | 
|  | GPIO89_UART2_RXD, | 
|  | }; | 
|  |  | 
|  | static struct pxa_gpio_platform_data pxa168_gpio_pdata = { | 
|  | .irq_base	= MMP_GPIO_TO_IRQ(0), | 
|  | }; | 
|  |  | 
|  | static void __init avengers_lite_init(void) | 
|  | { | 
|  | mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F)); | 
|  |  | 
|  | /* on-chip devices */ | 
|  | pxa168_add_uart(2); | 
|  | platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata, | 
|  | sizeof(struct pxa_gpio_platform_data)); | 
|  | platform_device_register(&pxa168_device_gpio); | 
|  | } | 
|  |  | 
|  | MACHINE_START(AVENGERS_LITE, "PXA168 Avengers lite Development Platform") | 
|  | .map_io		= mmp_map_io, | 
|  | .nr_irqs	= MMP_NR_IRQS, | 
|  | .init_irq       = pxa168_init_irq, | 
|  | .init_time	= pxa168_timer_init, | 
|  | .init_machine   = avengers_lite_init, | 
|  | .restart	= pxa168_restart, | 
|  | MACHINE_END |