18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *  linux/arch/arm/mach-mmp/avengers_lite.c
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *  Support for the Marvell PXA168-based Avengers lite Development Platform.
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci *  Copyright (C) 2009-2010 Marvell International Ltd.
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include <linux/init.h>
118c2ecf20Sopenharmony_ci#include <linux/kernel.h>
128c2ecf20Sopenharmony_ci#include <linux/gpio-pxa.h>
138c2ecf20Sopenharmony_ci#include <linux/platform_device.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#include <asm/mach-types.h>
168c2ecf20Sopenharmony_ci#include <asm/mach/arch.h>
178c2ecf20Sopenharmony_ci#include "addr-map.h"
188c2ecf20Sopenharmony_ci#include "mfp-pxa168.h"
198c2ecf20Sopenharmony_ci#include "pxa168.h"
208c2ecf20Sopenharmony_ci#include "irqs.h"
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#include "common.h"
248c2ecf20Sopenharmony_ci#include <linux/delay.h>
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci/* Avengers lite MFP configurations */
278c2ecf20Sopenharmony_cistatic unsigned long avengers_lite_pin_config_V16F[] __initdata = {
288c2ecf20Sopenharmony_ci	/* DEBUG_UART */
298c2ecf20Sopenharmony_ci	GPIO88_UART2_TXD,
308c2ecf20Sopenharmony_ci	GPIO89_UART2_RXD,
318c2ecf20Sopenharmony_ci};
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_cistatic struct pxa_gpio_platform_data pxa168_gpio_pdata = {
348c2ecf20Sopenharmony_ci	.irq_base	= MMP_GPIO_TO_IRQ(0),
358c2ecf20Sopenharmony_ci};
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_cistatic void __init avengers_lite_init(void)
388c2ecf20Sopenharmony_ci{
398c2ecf20Sopenharmony_ci	mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F));
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	/* on-chip devices */
428c2ecf20Sopenharmony_ci	pxa168_add_uart(2);
438c2ecf20Sopenharmony_ci	platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
448c2ecf20Sopenharmony_ci				 sizeof(struct pxa_gpio_platform_data));
458c2ecf20Sopenharmony_ci	platform_device_register(&pxa168_device_gpio);
468c2ecf20Sopenharmony_ci}
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciMACHINE_START(AVENGERS_LITE, "PXA168 Avengers lite Development Platform")
498c2ecf20Sopenharmony_ci	.map_io		= mmp_map_io,
508c2ecf20Sopenharmony_ci	.nr_irqs	= MMP_NR_IRQS,
518c2ecf20Sopenharmony_ci	.init_irq       = pxa168_init_irq,
528c2ecf20Sopenharmony_ci	.init_time	= pxa168_timer_init,
538c2ecf20Sopenharmony_ci	.init_machine   = avengers_lite_init,
548c2ecf20Sopenharmony_ci	.restart	= pxa168_restart,
558c2ecf20Sopenharmony_ciMACHINE_END
56