18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * linux/arch/arm/mach-omap1/board-generic.c
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Modified from board-innovator1510.c
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Code for generic OMAP board. Should work on many OMAP systems where
88c2ecf20Sopenharmony_ci * the device drivers take care of all the necessary hardware initialization.
98c2ecf20Sopenharmony_ci * Do not put any board specific code to this file; create a new machine
108c2ecf20Sopenharmony_ci * type if you need custom low-level initializations.
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#include <linux/gpio.h>
138c2ecf20Sopenharmony_ci#include <linux/kernel.h>
148c2ecf20Sopenharmony_ci#include <linux/init.h>
158c2ecf20Sopenharmony_ci#include <linux/platform_device.h>
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#include <mach/hardware.h>
188c2ecf20Sopenharmony_ci#include <asm/mach-types.h>
198c2ecf20Sopenharmony_ci#include <asm/mach/arch.h>
208c2ecf20Sopenharmony_ci#include <asm/mach/map.h>
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci#include <mach/mux.h>
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci#include <mach/usb.h>
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#include "common.h"
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci/* assume no Mini-AB port */
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP15XX
318c2ecf20Sopenharmony_cistatic struct omap_usb_config generic1510_usb_config __initdata = {
328c2ecf20Sopenharmony_ci	.register_host	= 1,
338c2ecf20Sopenharmony_ci	.register_dev	= 1,
348c2ecf20Sopenharmony_ci	.hmc_mode	= 16,
358c2ecf20Sopenharmony_ci	.pins[0]	= 3,
368c2ecf20Sopenharmony_ci};
378c2ecf20Sopenharmony_ci#endif
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci#if defined(CONFIG_ARCH_OMAP16XX)
408c2ecf20Sopenharmony_cistatic struct omap_usb_config generic1610_usb_config __initdata = {
418c2ecf20Sopenharmony_ci#ifdef CONFIG_USB_OTG
428c2ecf20Sopenharmony_ci	.otg		= 1,
438c2ecf20Sopenharmony_ci#endif
448c2ecf20Sopenharmony_ci	.register_host	= 1,
458c2ecf20Sopenharmony_ci	.register_dev	= 1,
468c2ecf20Sopenharmony_ci	.hmc_mode	= 16,
478c2ecf20Sopenharmony_ci	.pins[0]	= 6,
488c2ecf20Sopenharmony_ci};
498c2ecf20Sopenharmony_ci#endif
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_cistatic void __init omap_generic_init(void)
528c2ecf20Sopenharmony_ci{
538c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP15XX
548c2ecf20Sopenharmony_ci	if (cpu_is_omap15xx()) {
558c2ecf20Sopenharmony_ci		/* mux pins for uarts */
568c2ecf20Sopenharmony_ci		omap_cfg_reg(UART1_TX);
578c2ecf20Sopenharmony_ci		omap_cfg_reg(UART1_RTS);
588c2ecf20Sopenharmony_ci		omap_cfg_reg(UART2_TX);
598c2ecf20Sopenharmony_ci		omap_cfg_reg(UART2_RTS);
608c2ecf20Sopenharmony_ci		omap_cfg_reg(UART3_TX);
618c2ecf20Sopenharmony_ci		omap_cfg_reg(UART3_RX);
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		omap1_usb_init(&generic1510_usb_config);
648c2ecf20Sopenharmony_ci	}
658c2ecf20Sopenharmony_ci#endif
668c2ecf20Sopenharmony_ci#if defined(CONFIG_ARCH_OMAP16XX)
678c2ecf20Sopenharmony_ci	if (!cpu_is_omap1510()) {
688c2ecf20Sopenharmony_ci		omap1_usb_init(&generic1610_usb_config);
698c2ecf20Sopenharmony_ci	}
708c2ecf20Sopenharmony_ci#endif
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci	omap_serial_init();
738c2ecf20Sopenharmony_ci	omap_register_i2c_bus(1, 100, NULL, 0);
748c2ecf20Sopenharmony_ci}
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciMACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
778c2ecf20Sopenharmony_ci	/* Maintainer: Tony Lindgren <tony@atomide.com> */
788c2ecf20Sopenharmony_ci	.atag_offset	= 0x100,
798c2ecf20Sopenharmony_ci	.map_io		= omap16xx_map_io,
808c2ecf20Sopenharmony_ci	.init_early	= omap1_init_early,
818c2ecf20Sopenharmony_ci	.init_irq	= omap1_init_irq,
828c2ecf20Sopenharmony_ci	.handle_irq	= omap1_handle_irq,
838c2ecf20Sopenharmony_ci	.init_machine	= omap_generic_init,
848c2ecf20Sopenharmony_ci	.init_late	= omap1_init_late,
858c2ecf20Sopenharmony_ci	.init_time	= omap1_timer_init,
868c2ecf20Sopenharmony_ci	.restart	= omap1_restart,
878c2ecf20Sopenharmony_ciMACHINE_END
88