18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/mach-ixp4xx/ixdp425-setup.c 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * IXDP425/IXCDP1100 board-setup 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright (C) 2003-2005 MontaVista Software, Inc. 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * Author: Deepak Saxena <dsaxena@plexity.net> 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/kernel.h> 138c2ecf20Sopenharmony_ci#include <linux/init.h> 148c2ecf20Sopenharmony_ci#include <linux/device.h> 158c2ecf20Sopenharmony_ci#include <linux/serial.h> 168c2ecf20Sopenharmony_ci#include <linux/tty.h> 178c2ecf20Sopenharmony_ci#include <linux/serial_8250.h> 188c2ecf20Sopenharmony_ci#include <linux/gpio/machine.h> 198c2ecf20Sopenharmony_ci#include <linux/io.h> 208c2ecf20Sopenharmony_ci#include <linux/mtd/mtd.h> 218c2ecf20Sopenharmony_ci#include <linux/mtd/rawnand.h> 228c2ecf20Sopenharmony_ci#include <linux/mtd/partitions.h> 238c2ecf20Sopenharmony_ci#include <linux/mtd/platnand.h> 248c2ecf20Sopenharmony_ci#include <linux/delay.h> 258c2ecf20Sopenharmony_ci#include <linux/gpio.h> 268c2ecf20Sopenharmony_ci#include <asm/types.h> 278c2ecf20Sopenharmony_ci#include <asm/setup.h> 288c2ecf20Sopenharmony_ci#include <asm/memory.h> 298c2ecf20Sopenharmony_ci#include <mach/hardware.h> 308c2ecf20Sopenharmony_ci#include <asm/mach-types.h> 318c2ecf20Sopenharmony_ci#include <asm/irq.h> 328c2ecf20Sopenharmony_ci#include <asm/mach/arch.h> 338c2ecf20Sopenharmony_ci#include <asm/mach/flash.h> 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#include "irqs.h" 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define IXDP425_SDA_PIN 7 388c2ecf20Sopenharmony_ci#define IXDP425_SCL_PIN 6 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci/* NAND Flash pins */ 418c2ecf20Sopenharmony_ci#define IXDP425_NAND_NCE_PIN 12 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci#define IXDP425_NAND_CMD_BYTE 0x01 448c2ecf20Sopenharmony_ci#define IXDP425_NAND_ADDR_BYTE 0x02 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_cistatic struct flash_platform_data ixdp425_flash_data = { 478c2ecf20Sopenharmony_ci .map_name = "cfi_probe", 488c2ecf20Sopenharmony_ci .width = 2, 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cistatic struct resource ixdp425_flash_resource = { 528c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 538c2ecf20Sopenharmony_ci}; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_cistatic struct platform_device ixdp425_flash = { 568c2ecf20Sopenharmony_ci .name = "IXP4XX-Flash", 578c2ecf20Sopenharmony_ci .id = 0, 588c2ecf20Sopenharmony_ci .dev = { 598c2ecf20Sopenharmony_ci .platform_data = &ixdp425_flash_data, 608c2ecf20Sopenharmony_ci }, 618c2ecf20Sopenharmony_ci .num_resources = 1, 628c2ecf20Sopenharmony_ci .resource = &ixdp425_flash_resource, 638c2ecf20Sopenharmony_ci}; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci#if defined(CONFIG_MTD_NAND_PLATFORM) || \ 668c2ecf20Sopenharmony_ci defined(CONFIG_MTD_NAND_PLATFORM_MODULE) 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_cistatic struct mtd_partition ixdp425_partitions[] = { 698c2ecf20Sopenharmony_ci { 708c2ecf20Sopenharmony_ci .name = "ixp400 NAND FS 0", 718c2ecf20Sopenharmony_ci .offset = 0, 728c2ecf20Sopenharmony_ci .size = SZ_8M 738c2ecf20Sopenharmony_ci }, { 748c2ecf20Sopenharmony_ci .name = "ixp400 NAND FS 1", 758c2ecf20Sopenharmony_ci .offset = MTDPART_OFS_APPEND, 768c2ecf20Sopenharmony_ci .size = MTDPART_SIZ_FULL 778c2ecf20Sopenharmony_ci }, 788c2ecf20Sopenharmony_ci}; 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_cistatic void 818c2ecf20Sopenharmony_ciixdp425_flash_nand_cmd_ctrl(struct nand_chip *this, int cmd, unsigned int ctrl) 828c2ecf20Sopenharmony_ci{ 838c2ecf20Sopenharmony_ci int offset = (int)nand_get_controller_data(this); 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci if (ctrl & NAND_CTRL_CHANGE) { 868c2ecf20Sopenharmony_ci if (ctrl & NAND_NCE) { 878c2ecf20Sopenharmony_ci gpio_set_value(IXDP425_NAND_NCE_PIN, 0); 888c2ecf20Sopenharmony_ci udelay(5); 898c2ecf20Sopenharmony_ci } else 908c2ecf20Sopenharmony_ci gpio_set_value(IXDP425_NAND_NCE_PIN, 1); 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci offset = (ctrl & NAND_CLE) ? IXDP425_NAND_CMD_BYTE : 0; 938c2ecf20Sopenharmony_ci offset |= (ctrl & NAND_ALE) ? IXDP425_NAND_ADDR_BYTE : 0; 948c2ecf20Sopenharmony_ci nand_set_controller_data(this, (void *)offset); 958c2ecf20Sopenharmony_ci } 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci if (cmd != NAND_CMD_NONE) 988c2ecf20Sopenharmony_ci writeb(cmd, this->legacy.IO_ADDR_W + offset); 998c2ecf20Sopenharmony_ci} 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_cistatic struct platform_nand_data ixdp425_flash_nand_data = { 1028c2ecf20Sopenharmony_ci .chip = { 1038c2ecf20Sopenharmony_ci .nr_chips = 1, 1048c2ecf20Sopenharmony_ci .chip_delay = 30, 1058c2ecf20Sopenharmony_ci .partitions = ixdp425_partitions, 1068c2ecf20Sopenharmony_ci .nr_partitions = ARRAY_SIZE(ixdp425_partitions), 1078c2ecf20Sopenharmony_ci }, 1088c2ecf20Sopenharmony_ci .ctrl = { 1098c2ecf20Sopenharmony_ci .cmd_ctrl = ixdp425_flash_nand_cmd_ctrl 1108c2ecf20Sopenharmony_ci } 1118c2ecf20Sopenharmony_ci}; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_cistatic struct resource ixdp425_flash_nand_resource = { 1148c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 1158c2ecf20Sopenharmony_ci}; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_cistatic struct platform_device ixdp425_flash_nand = { 1188c2ecf20Sopenharmony_ci .name = "gen_nand", 1198c2ecf20Sopenharmony_ci .id = -1, 1208c2ecf20Sopenharmony_ci .dev = { 1218c2ecf20Sopenharmony_ci .platform_data = &ixdp425_flash_nand_data, 1228c2ecf20Sopenharmony_ci }, 1238c2ecf20Sopenharmony_ci .num_resources = 1, 1248c2ecf20Sopenharmony_ci .resource = &ixdp425_flash_nand_resource, 1258c2ecf20Sopenharmony_ci}; 1268c2ecf20Sopenharmony_ci#endif /* CONFIG_MTD_NAND_PLATFORM */ 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_cistatic struct gpiod_lookup_table ixdp425_i2c_gpiod_table = { 1298c2ecf20Sopenharmony_ci .dev_id = "i2c-gpio.0", 1308c2ecf20Sopenharmony_ci .table = { 1318c2ecf20Sopenharmony_ci GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", IXDP425_SDA_PIN, 1328c2ecf20Sopenharmony_ci NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 1338c2ecf20Sopenharmony_ci GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", IXDP425_SCL_PIN, 1348c2ecf20Sopenharmony_ci NULL, 1, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 1358c2ecf20Sopenharmony_ci }, 1368c2ecf20Sopenharmony_ci}; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_cistatic struct platform_device ixdp425_i2c_gpio = { 1398c2ecf20Sopenharmony_ci .name = "i2c-gpio", 1408c2ecf20Sopenharmony_ci .id = 0, 1418c2ecf20Sopenharmony_ci .dev = { 1428c2ecf20Sopenharmony_ci .platform_data = NULL, 1438c2ecf20Sopenharmony_ci }, 1448c2ecf20Sopenharmony_ci}; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_cistatic struct resource ixdp425_uart_resources[] = { 1478c2ecf20Sopenharmony_ci { 1488c2ecf20Sopenharmony_ci .start = IXP4XX_UART1_BASE_PHYS, 1498c2ecf20Sopenharmony_ci .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, 1508c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM 1518c2ecf20Sopenharmony_ci }, 1528c2ecf20Sopenharmony_ci { 1538c2ecf20Sopenharmony_ci .start = IXP4XX_UART2_BASE_PHYS, 1548c2ecf20Sopenharmony_ci .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, 1558c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM 1568c2ecf20Sopenharmony_ci } 1578c2ecf20Sopenharmony_ci}; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_cistatic struct plat_serial8250_port ixdp425_uart_data[] = { 1608c2ecf20Sopenharmony_ci { 1618c2ecf20Sopenharmony_ci .mapbase = IXP4XX_UART1_BASE_PHYS, 1628c2ecf20Sopenharmony_ci .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, 1638c2ecf20Sopenharmony_ci .irq = IRQ_IXP4XX_UART1, 1648c2ecf20Sopenharmony_ci .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 1658c2ecf20Sopenharmony_ci .iotype = UPIO_MEM, 1668c2ecf20Sopenharmony_ci .regshift = 2, 1678c2ecf20Sopenharmony_ci .uartclk = IXP4XX_UART_XTAL, 1688c2ecf20Sopenharmony_ci }, 1698c2ecf20Sopenharmony_ci { 1708c2ecf20Sopenharmony_ci .mapbase = IXP4XX_UART2_BASE_PHYS, 1718c2ecf20Sopenharmony_ci .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, 1728c2ecf20Sopenharmony_ci .irq = IRQ_IXP4XX_UART2, 1738c2ecf20Sopenharmony_ci .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 1748c2ecf20Sopenharmony_ci .iotype = UPIO_MEM, 1758c2ecf20Sopenharmony_ci .regshift = 2, 1768c2ecf20Sopenharmony_ci .uartclk = IXP4XX_UART_XTAL, 1778c2ecf20Sopenharmony_ci }, 1788c2ecf20Sopenharmony_ci { }, 1798c2ecf20Sopenharmony_ci}; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_cistatic struct platform_device ixdp425_uart = { 1828c2ecf20Sopenharmony_ci .name = "serial8250", 1838c2ecf20Sopenharmony_ci .id = PLAT8250_DEV_PLATFORM, 1848c2ecf20Sopenharmony_ci .dev.platform_data = ixdp425_uart_data, 1858c2ecf20Sopenharmony_ci .num_resources = 2, 1868c2ecf20Sopenharmony_ci .resource = ixdp425_uart_resources 1878c2ecf20Sopenharmony_ci}; 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci/* Built-in 10/100 Ethernet MAC interfaces */ 1908c2ecf20Sopenharmony_cistatic struct resource ixp425_npeb_resources[] = { 1918c2ecf20Sopenharmony_ci { 1928c2ecf20Sopenharmony_ci .start = IXP4XX_EthB_BASE_PHYS, 1938c2ecf20Sopenharmony_ci .end = IXP4XX_EthB_BASE_PHYS + 0x0fff, 1948c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 1958c2ecf20Sopenharmony_ci }, 1968c2ecf20Sopenharmony_ci}; 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_cistatic struct resource ixp425_npec_resources[] = { 1998c2ecf20Sopenharmony_ci { 2008c2ecf20Sopenharmony_ci .start = IXP4XX_EthC_BASE_PHYS, 2018c2ecf20Sopenharmony_ci .end = IXP4XX_EthC_BASE_PHYS + 0x0fff, 2028c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 2038c2ecf20Sopenharmony_ci }, 2048c2ecf20Sopenharmony_ci}; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_cistatic struct eth_plat_info ixdp425_plat_eth[] = { 2078c2ecf20Sopenharmony_ci { 2088c2ecf20Sopenharmony_ci .phy = 0, 2098c2ecf20Sopenharmony_ci .rxq = 3, 2108c2ecf20Sopenharmony_ci .txreadyq = 20, 2118c2ecf20Sopenharmony_ci }, { 2128c2ecf20Sopenharmony_ci .phy = 1, 2138c2ecf20Sopenharmony_ci .rxq = 4, 2148c2ecf20Sopenharmony_ci .txreadyq = 21, 2158c2ecf20Sopenharmony_ci } 2168c2ecf20Sopenharmony_ci}; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_cistatic struct platform_device ixdp425_eth[] = { 2198c2ecf20Sopenharmony_ci { 2208c2ecf20Sopenharmony_ci .name = "ixp4xx_eth", 2218c2ecf20Sopenharmony_ci .id = IXP4XX_ETH_NPEB, 2228c2ecf20Sopenharmony_ci .dev.platform_data = ixdp425_plat_eth, 2238c2ecf20Sopenharmony_ci .num_resources = ARRAY_SIZE(ixp425_npeb_resources), 2248c2ecf20Sopenharmony_ci .resource = ixp425_npeb_resources, 2258c2ecf20Sopenharmony_ci }, { 2268c2ecf20Sopenharmony_ci .name = "ixp4xx_eth", 2278c2ecf20Sopenharmony_ci .id = IXP4XX_ETH_NPEC, 2288c2ecf20Sopenharmony_ci .dev.platform_data = ixdp425_plat_eth + 1, 2298c2ecf20Sopenharmony_ci .num_resources = ARRAY_SIZE(ixp425_npec_resources), 2308c2ecf20Sopenharmony_ci .resource = ixp425_npec_resources, 2318c2ecf20Sopenharmony_ci } 2328c2ecf20Sopenharmony_ci}; 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_cistatic struct platform_device *ixdp425_devices[] __initdata = { 2358c2ecf20Sopenharmony_ci &ixdp425_i2c_gpio, 2368c2ecf20Sopenharmony_ci &ixdp425_flash, 2378c2ecf20Sopenharmony_ci#if defined(CONFIG_MTD_NAND_PLATFORM) || \ 2388c2ecf20Sopenharmony_ci defined(CONFIG_MTD_NAND_PLATFORM_MODULE) 2398c2ecf20Sopenharmony_ci &ixdp425_flash_nand, 2408c2ecf20Sopenharmony_ci#endif 2418c2ecf20Sopenharmony_ci &ixdp425_uart, 2428c2ecf20Sopenharmony_ci &ixdp425_eth[0], 2438c2ecf20Sopenharmony_ci &ixdp425_eth[1], 2448c2ecf20Sopenharmony_ci}; 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_cistatic void __init ixdp425_init(void) 2478c2ecf20Sopenharmony_ci{ 2488c2ecf20Sopenharmony_ci ixp4xx_sys_init(); 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci ixdp425_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 2518c2ecf20Sopenharmony_ci ixdp425_flash_resource.end = 2528c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci#if defined(CONFIG_MTD_NAND_PLATFORM) || \ 2558c2ecf20Sopenharmony_ci defined(CONFIG_MTD_NAND_PLATFORM_MODULE) 2568c2ecf20Sopenharmony_ci ixdp425_flash_nand_resource.start = IXP4XX_EXP_BUS_BASE(3), 2578c2ecf20Sopenharmony_ci ixdp425_flash_nand_resource.end = IXP4XX_EXP_BUS_BASE(3) + 0x10 - 1; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci gpio_request(IXDP425_NAND_NCE_PIN, "NAND NCE pin"); 2608c2ecf20Sopenharmony_ci gpio_direction_output(IXDP425_NAND_NCE_PIN, 0); 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci /* Configure expansion bus for NAND Flash */ 2638c2ecf20Sopenharmony_ci *IXP4XX_EXP_CS3 = IXP4XX_EXP_BUS_CS_EN | 2648c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_STROBE_T(1) | /* extend by 1 clock */ 2658c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_CYCLES(0) | /* Intel cycles */ 2668c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_SIZE(0) | /* 512bytes addr space*/ 2678c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_WR_EN | 2688c2ecf20Sopenharmony_ci IXP4XX_EXP_BUS_BYTE_EN; /* 8 bit data bus */ 2698c2ecf20Sopenharmony_ci#endif 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ci if (cpu_is_ixp43x()) { 2728c2ecf20Sopenharmony_ci ixdp425_uart.num_resources = 1; 2738c2ecf20Sopenharmony_ci ixdp425_uart_data[1].flags = 0; 2748c2ecf20Sopenharmony_ci } 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci gpiod_add_lookup_table(&ixdp425_i2c_gpiod_table); 2778c2ecf20Sopenharmony_ci platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); 2788c2ecf20Sopenharmony_ci} 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_IXDP425 2818c2ecf20Sopenharmony_ciMACHINE_START(IXDP425, "Intel IXDP425 Development Platform") 2828c2ecf20Sopenharmony_ci /* Maintainer: MontaVista Software, Inc. */ 2838c2ecf20Sopenharmony_ci .map_io = ixp4xx_map_io, 2848c2ecf20Sopenharmony_ci .init_early = ixp4xx_init_early, 2858c2ecf20Sopenharmony_ci .init_irq = ixp4xx_init_irq, 2868c2ecf20Sopenharmony_ci .init_time = ixp4xx_timer_init, 2878c2ecf20Sopenharmony_ci .atag_offset = 0x100, 2888c2ecf20Sopenharmony_ci .init_machine = ixdp425_init, 2898c2ecf20Sopenharmony_ci#if defined(CONFIG_PCI) 2908c2ecf20Sopenharmony_ci .dma_zone_size = SZ_64M, 2918c2ecf20Sopenharmony_ci#endif 2928c2ecf20Sopenharmony_ci .restart = ixp4xx_restart, 2938c2ecf20Sopenharmony_ciMACHINE_END 2948c2ecf20Sopenharmony_ci#endif 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_IXDP465 2978c2ecf20Sopenharmony_ciMACHINE_START(IXDP465, "Intel IXDP465 Development Platform") 2988c2ecf20Sopenharmony_ci /* Maintainer: MontaVista Software, Inc. */ 2998c2ecf20Sopenharmony_ci .map_io = ixp4xx_map_io, 3008c2ecf20Sopenharmony_ci .init_early = ixp4xx_init_early, 3018c2ecf20Sopenharmony_ci .init_irq = ixp4xx_init_irq, 3028c2ecf20Sopenharmony_ci .init_time = ixp4xx_timer_init, 3038c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3048c2ecf20Sopenharmony_ci .init_machine = ixdp425_init, 3058c2ecf20Sopenharmony_ci#if defined(CONFIG_PCI) 3068c2ecf20Sopenharmony_ci .dma_zone_size = SZ_64M, 3078c2ecf20Sopenharmony_ci#endif 3088c2ecf20Sopenharmony_ciMACHINE_END 3098c2ecf20Sopenharmony_ci#endif 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_PRPMC1100 3128c2ecf20Sopenharmony_ciMACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") 3138c2ecf20Sopenharmony_ci /* Maintainer: MontaVista Software, Inc. */ 3148c2ecf20Sopenharmony_ci .map_io = ixp4xx_map_io, 3158c2ecf20Sopenharmony_ci .init_early = ixp4xx_init_early, 3168c2ecf20Sopenharmony_ci .init_irq = ixp4xx_init_irq, 3178c2ecf20Sopenharmony_ci .init_time = ixp4xx_timer_init, 3188c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3198c2ecf20Sopenharmony_ci .init_machine = ixdp425_init, 3208c2ecf20Sopenharmony_ci#if defined(CONFIG_PCI) 3218c2ecf20Sopenharmony_ci .dma_zone_size = SZ_64M, 3228c2ecf20Sopenharmony_ci#endif 3238c2ecf20Sopenharmony_ciMACHINE_END 3248c2ecf20Sopenharmony_ci#endif 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_ci#ifdef CONFIG_MACH_KIXRP435 3278c2ecf20Sopenharmony_ciMACHINE_START(KIXRP435, "Intel KIXRP435 Reference Platform") 3288c2ecf20Sopenharmony_ci /* Maintainer: MontaVista Software, Inc. */ 3298c2ecf20Sopenharmony_ci .map_io = ixp4xx_map_io, 3308c2ecf20Sopenharmony_ci .init_early = ixp4xx_init_early, 3318c2ecf20Sopenharmony_ci .init_irq = ixp4xx_init_irq, 3328c2ecf20Sopenharmony_ci .init_time = ixp4xx_timer_init, 3338c2ecf20Sopenharmony_ci .atag_offset = 0x100, 3348c2ecf20Sopenharmony_ci .init_machine = ixdp425_init, 3358c2ecf20Sopenharmony_ci#if defined(CONFIG_PCI) 3368c2ecf20Sopenharmony_ci .dma_zone_size = SZ_64M, 3378c2ecf20Sopenharmony_ci#endif 3388c2ecf20Sopenharmony_ciMACHINE_END 3398c2ecf20Sopenharmony_ci#endif 340