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