18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/mach-ep93xx/edb93xx.c 48c2ecf20Sopenharmony_ci * Cirrus Logic EDB93xx Development Board support. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * EDB93XX, EDB9301, EDB9307A 78c2ecf20Sopenharmony_ci * Copyright (C) 2008-2009 H Hartley Sweeten <hsweeten@visionengravers.com> 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * EDB9302 108c2ecf20Sopenharmony_ci * Copyright (C) 2006 George Kashperko <george@chas.com.ua> 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci * EDB9302A, EDB9315, EDB9315A 138c2ecf20Sopenharmony_ci * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org> 148c2ecf20Sopenharmony_ci * 158c2ecf20Sopenharmony_ci * EDB9307 168c2ecf20Sopenharmony_ci * Copyright (C) 2007 Herbert Valerio Riedel <hvr@gnu.org> 178c2ecf20Sopenharmony_ci * 188c2ecf20Sopenharmony_ci * EDB9312 198c2ecf20Sopenharmony_ci * Copyright (C) 2006 Infosys Technologies Limited 208c2ecf20Sopenharmony_ci * Toufeeq Hussain <toufeeq_hussain@infosys.com> 218c2ecf20Sopenharmony_ci */ 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#include <linux/kernel.h> 248c2ecf20Sopenharmony_ci#include <linux/init.h> 258c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 268c2ecf20Sopenharmony_ci#include <linux/i2c.h> 278c2ecf20Sopenharmony_ci#include <linux/spi/spi.h> 288c2ecf20Sopenharmony_ci#include <linux/gpio/machine.h> 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#include <sound/cs4271.h> 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#include "hardware.h" 338c2ecf20Sopenharmony_ci#include <linux/platform_data/video-ep93xx.h> 348c2ecf20Sopenharmony_ci#include <linux/platform_data/spi-ep93xx.h> 358c2ecf20Sopenharmony_ci#include "gpio-ep93xx.h" 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#include <asm/mach-types.h> 388c2ecf20Sopenharmony_ci#include <asm/mach/arch.h> 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#include "soc.h" 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_cistatic void __init edb93xx_register_flash(void) 438c2ecf20Sopenharmony_ci{ 448c2ecf20Sopenharmony_ci if (machine_is_edb9307() || machine_is_edb9312() || 458c2ecf20Sopenharmony_ci machine_is_edb9315()) { 468c2ecf20Sopenharmony_ci ep93xx_register_flash(4, EP93XX_CS6_PHYS_BASE, SZ_32M); 478c2ecf20Sopenharmony_ci } else { 488c2ecf20Sopenharmony_ci ep93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_16M); 498c2ecf20Sopenharmony_ci } 508c2ecf20Sopenharmony_ci} 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_cistatic struct ep93xx_eth_data __initdata edb93xx_eth_data = { 538c2ecf20Sopenharmony_ci .phy_id = 1, 548c2ecf20Sopenharmony_ci}; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci/************************************************************************* 588c2ecf20Sopenharmony_ci * EDB93xx i2c peripheral handling 598c2ecf20Sopenharmony_ci *************************************************************************/ 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_cistatic struct i2c_board_info __initdata edb93xxa_i2c_board_info[] = { 628c2ecf20Sopenharmony_ci { 638c2ecf20Sopenharmony_ci I2C_BOARD_INFO("isl1208", 0x6f), 648c2ecf20Sopenharmony_ci }, 658c2ecf20Sopenharmony_ci}; 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_cistatic struct i2c_board_info __initdata edb93xx_i2c_board_info[] = { 688c2ecf20Sopenharmony_ci { 698c2ecf20Sopenharmony_ci I2C_BOARD_INFO("ds1337", 0x68), 708c2ecf20Sopenharmony_ci }, 718c2ecf20Sopenharmony_ci}; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_cistatic void __init edb93xx_register_i2c(void) 748c2ecf20Sopenharmony_ci{ 758c2ecf20Sopenharmony_ci if (machine_is_edb9302a() || machine_is_edb9307a() || 768c2ecf20Sopenharmony_ci machine_is_edb9315a()) { 778c2ecf20Sopenharmony_ci ep93xx_register_i2c(edb93xxa_i2c_board_info, 788c2ecf20Sopenharmony_ci ARRAY_SIZE(edb93xxa_i2c_board_info)); 798c2ecf20Sopenharmony_ci } else if (machine_is_edb9302() || machine_is_edb9307() 808c2ecf20Sopenharmony_ci || machine_is_edb9312() || machine_is_edb9315()) { 818c2ecf20Sopenharmony_ci ep93xx_register_i2c(edb93xx_i2c_board_info, 828c2ecf20Sopenharmony_ci ARRAY_SIZE(edb93xx_i2c_board_info)); 838c2ecf20Sopenharmony_ci } 848c2ecf20Sopenharmony_ci} 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci/************************************************************************* 888c2ecf20Sopenharmony_ci * EDB93xx SPI peripheral handling 898c2ecf20Sopenharmony_ci *************************************************************************/ 908c2ecf20Sopenharmony_cistatic struct cs4271_platform_data edb93xx_cs4271_data = { 918c2ecf20Sopenharmony_ci .gpio_nreset = -EINVAL, /* filled in later */ 928c2ecf20Sopenharmony_ci}; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_cistatic struct spi_board_info edb93xx_spi_board_info[] __initdata = { 958c2ecf20Sopenharmony_ci { 968c2ecf20Sopenharmony_ci .modalias = "cs4271", 978c2ecf20Sopenharmony_ci .platform_data = &edb93xx_cs4271_data, 988c2ecf20Sopenharmony_ci .max_speed_hz = 6000000, 998c2ecf20Sopenharmony_ci .bus_num = 0, 1008c2ecf20Sopenharmony_ci .chip_select = 0, 1018c2ecf20Sopenharmony_ci .mode = SPI_MODE_3, 1028c2ecf20Sopenharmony_ci }, 1038c2ecf20Sopenharmony_ci}; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_cistatic struct gpiod_lookup_table edb93xx_spi_cs_gpio_table = { 1068c2ecf20Sopenharmony_ci .dev_id = "spi0", 1078c2ecf20Sopenharmony_ci .table = { 1088c2ecf20Sopenharmony_ci GPIO_LOOKUP("A", 6, "cs", GPIO_ACTIVE_LOW), 1098c2ecf20Sopenharmony_ci { }, 1108c2ecf20Sopenharmony_ci }, 1118c2ecf20Sopenharmony_ci}; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_cistatic struct ep93xx_spi_info edb93xx_spi_info __initdata = { 1148c2ecf20Sopenharmony_ci /* Intentionally left blank */ 1158c2ecf20Sopenharmony_ci}; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_cistatic void __init edb93xx_register_spi(void) 1188c2ecf20Sopenharmony_ci{ 1198c2ecf20Sopenharmony_ci if (machine_is_edb9301() || machine_is_edb9302()) 1208c2ecf20Sopenharmony_ci edb93xx_cs4271_data.gpio_nreset = EP93XX_GPIO_LINE_EGPIO1; 1218c2ecf20Sopenharmony_ci else if (machine_is_edb9302a() || machine_is_edb9307a()) 1228c2ecf20Sopenharmony_ci edb93xx_cs4271_data.gpio_nreset = EP93XX_GPIO_LINE_H(2); 1238c2ecf20Sopenharmony_ci else if (machine_is_edb9315a()) 1248c2ecf20Sopenharmony_ci edb93xx_cs4271_data.gpio_nreset = EP93XX_GPIO_LINE_EGPIO14; 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci gpiod_add_lookup_table(&edb93xx_spi_cs_gpio_table); 1278c2ecf20Sopenharmony_ci ep93xx_register_spi(&edb93xx_spi_info, edb93xx_spi_board_info, 1288c2ecf20Sopenharmony_ci ARRAY_SIZE(edb93xx_spi_board_info)); 1298c2ecf20Sopenharmony_ci} 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci/************************************************************************* 1338c2ecf20Sopenharmony_ci * EDB93xx I2S 1348c2ecf20Sopenharmony_ci *************************************************************************/ 1358c2ecf20Sopenharmony_cistatic struct platform_device edb93xx_audio_device = { 1368c2ecf20Sopenharmony_ci .name = "edb93xx-audio", 1378c2ecf20Sopenharmony_ci .id = -1, 1388c2ecf20Sopenharmony_ci}; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_cistatic int __init edb93xx_has_audio(void) 1418c2ecf20Sopenharmony_ci{ 1428c2ecf20Sopenharmony_ci return (machine_is_edb9301() || machine_is_edb9302() || 1438c2ecf20Sopenharmony_ci machine_is_edb9302a() || machine_is_edb9307a() || 1448c2ecf20Sopenharmony_ci machine_is_edb9315a()); 1458c2ecf20Sopenharmony_ci} 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_cistatic void __init edb93xx_register_i2s(void) 1488c2ecf20Sopenharmony_ci{ 1498c2ecf20Sopenharmony_ci if (edb93xx_has_audio()) { 1508c2ecf20Sopenharmony_ci ep93xx_register_i2s(); 1518c2ecf20Sopenharmony_ci platform_device_register(&edb93xx_audio_device); 1528c2ecf20Sopenharmony_ci } 1538c2ecf20Sopenharmony_ci} 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci/************************************************************************* 1578c2ecf20Sopenharmony_ci * EDB93xx pwm 1588c2ecf20Sopenharmony_ci *************************************************************************/ 1598c2ecf20Sopenharmony_cistatic void __init edb93xx_register_pwm(void) 1608c2ecf20Sopenharmony_ci{ 1618c2ecf20Sopenharmony_ci if (machine_is_edb9301() || 1628c2ecf20Sopenharmony_ci machine_is_edb9302() || machine_is_edb9302a()) { 1638c2ecf20Sopenharmony_ci /* EP9301 and EP9302 only have pwm.1 (EGPIO14) */ 1648c2ecf20Sopenharmony_ci ep93xx_register_pwm(0, 1); 1658c2ecf20Sopenharmony_ci } else if (machine_is_edb9307() || machine_is_edb9307a()) { 1668c2ecf20Sopenharmony_ci /* EP9307 only has pwm.0 (PWMOUT) */ 1678c2ecf20Sopenharmony_ci ep93xx_register_pwm(1, 0); 1688c2ecf20Sopenharmony_ci } else { 1698c2ecf20Sopenharmony_ci /* EP9312 and EP9315 have both */ 1708c2ecf20Sopenharmony_ci ep93xx_register_pwm(1, 1); 1718c2ecf20Sopenharmony_ci } 1728c2ecf20Sopenharmony_ci} 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci/************************************************************************* 1768c2ecf20Sopenharmony_ci * EDB93xx framebuffer 1778c2ecf20Sopenharmony_ci *************************************************************************/ 1788c2ecf20Sopenharmony_cistatic struct ep93xxfb_mach_info __initdata edb93xxfb_info = { 1798c2ecf20Sopenharmony_ci .flags = 0, 1808c2ecf20Sopenharmony_ci}; 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_cistatic int __init edb93xx_has_fb(void) 1838c2ecf20Sopenharmony_ci{ 1848c2ecf20Sopenharmony_ci /* These platforms have an ep93xx with video capability */ 1858c2ecf20Sopenharmony_ci return machine_is_edb9307() || machine_is_edb9307a() || 1868c2ecf20Sopenharmony_ci machine_is_edb9312() || machine_is_edb9315() || 1878c2ecf20Sopenharmony_ci machine_is_edb9315a(); 1888c2ecf20Sopenharmony_ci} 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_cistatic void __init edb93xx_register_fb(void) 1918c2ecf20Sopenharmony_ci{ 1928c2ecf20Sopenharmony_ci if (!edb93xx_has_fb()) 1938c2ecf20Sopenharmony_ci return; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci if (machine_is_edb9307a() || machine_is_edb9315a()) 1968c2ecf20Sopenharmony_ci edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN0; 1978c2ecf20Sopenharmony_ci else 1988c2ecf20Sopenharmony_ci edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN3; 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci ep93xx_register_fb(&edb93xxfb_info); 2018c2ecf20Sopenharmony_ci} 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ci/************************************************************************* 2058c2ecf20Sopenharmony_ci * EDB93xx IDE 2068c2ecf20Sopenharmony_ci *************************************************************************/ 2078c2ecf20Sopenharmony_cistatic int __init edb93xx_has_ide(void) 2088c2ecf20Sopenharmony_ci{ 2098c2ecf20Sopenharmony_ci /* 2108c2ecf20Sopenharmony_ci * Although EDB9312 and EDB9315 do have IDE capability, they have 2118c2ecf20Sopenharmony_ci * INTRQ line wired as pull-up, which makes using IDE interface 2128c2ecf20Sopenharmony_ci * problematic. 2138c2ecf20Sopenharmony_ci */ 2148c2ecf20Sopenharmony_ci return machine_is_edb9312() || machine_is_edb9315() || 2158c2ecf20Sopenharmony_ci machine_is_edb9315a(); 2168c2ecf20Sopenharmony_ci} 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_cistatic void __init edb93xx_register_ide(void) 2198c2ecf20Sopenharmony_ci{ 2208c2ecf20Sopenharmony_ci if (!edb93xx_has_ide()) 2218c2ecf20Sopenharmony_ci return; 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci ep93xx_register_ide(); 2248c2ecf20Sopenharmony_ci} 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_cistatic void __init edb93xx_init_machine(void) 2288c2ecf20Sopenharmony_ci{ 2298c2ecf20Sopenharmony_ci ep93xx_init_devices(); 2308c2ecf20Sopenharmony_ci edb93xx_register_flash(); 2318c2ecf20Sopenharmony_ci ep93xx_register_eth(&edb93xx_eth_data, 1); 2328c2ecf20Sopenharmony_ci edb93xx_register_i2c(); 2338c2ecf20Sopenharmony_ci edb93xx_register_spi(); 2348c2ecf20Sopenharmony_ci edb93xx_register_i2s(); 2358c2ecf20Sopenharmony_ci edb93xx_register_pwm(); 2368c2ecf20Sopenharmony_ci edb93xx_register_fb(); 2378c2ecf20Sopenharmony_ci edb93xx_register_ide(); 2388c2ecf20Sopenharmony_ci ep93xx_register_adc(); 2398c2ecf20Sopenharmony_ci} 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9301 2438c2ecf20Sopenharmony_ciMACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") 2448c2ecf20Sopenharmony_ci /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ 2458c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2468c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 2478c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 2488c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 2498c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 2508c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 2518c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 2528c2ecf20Sopenharmony_ciMACHINE_END 2538c2ecf20Sopenharmony_ci#endif 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9302 2568c2ecf20Sopenharmony_ciMACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") 2578c2ecf20Sopenharmony_ci /* Maintainer: George Kashperko <george@chas.com.ua> */ 2588c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2598c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 2608c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 2618c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 2628c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 2638c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 2648c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 2658c2ecf20Sopenharmony_ciMACHINE_END 2668c2ecf20Sopenharmony_ci#endif 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9302A 2698c2ecf20Sopenharmony_ciMACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") 2708c2ecf20Sopenharmony_ci /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ 2718c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2728c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 2738c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 2748c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 2758c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 2768c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 2778c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 2788c2ecf20Sopenharmony_ciMACHINE_END 2798c2ecf20Sopenharmony_ci#endif 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9307 2828c2ecf20Sopenharmony_ciMACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") 2838c2ecf20Sopenharmony_ci /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ 2848c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2858c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 2868c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 2878c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 2888c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 2898c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 2908c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 2918c2ecf20Sopenharmony_ciMACHINE_END 2928c2ecf20Sopenharmony_ci#endif 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9307A 2958c2ecf20Sopenharmony_ciMACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") 2968c2ecf20Sopenharmony_ci /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ 2978c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2988c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 2998c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 3008c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 3018c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 3028c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 3038c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 3048c2ecf20Sopenharmony_ciMACHINE_END 3058c2ecf20Sopenharmony_ci#endif 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9312 3088c2ecf20Sopenharmony_ciMACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") 3098c2ecf20Sopenharmony_ci /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ 3108c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3118c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 3128c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 3138c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 3148c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 3158c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 3168c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 3178c2ecf20Sopenharmony_ciMACHINE_END 3188c2ecf20Sopenharmony_ci#endif 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9315 3218c2ecf20Sopenharmony_ciMACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") 3228c2ecf20Sopenharmony_ci /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ 3238c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3248c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 3258c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 3268c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 3278c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 3288c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 3298c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 3308c2ecf20Sopenharmony_ciMACHINE_END 3318c2ecf20Sopenharmony_ci#endif 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_EDB9315A 3348c2ecf20Sopenharmony_ciMACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") 3358c2ecf20Sopenharmony_ci /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ 3368c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3378c2ecf20Sopenharmony_ci .map_io = ep93xx_map_io, 3388c2ecf20Sopenharmony_ci .init_irq = ep93xx_init_irq, 3398c2ecf20Sopenharmony_ci .init_time = ep93xx_timer_init, 3408c2ecf20Sopenharmony_ci .init_machine = edb93xx_init_machine, 3418c2ecf20Sopenharmony_ci .init_late = ep93xx_init_late, 3428c2ecf20Sopenharmony_ci .restart = ep93xx_restart, 3438c2ecf20Sopenharmony_ciMACHINE_END 3448c2ecf20Sopenharmony_ci#endif 345