Linux Audio

Check our new training course

Loading...
v3.5.6
 
  1/*
  2 * arch/arm/mach-ixp4xx/wg302-setup.c
  3 *
  4 * Board setup for the Netgear WG302 v2 and WAG302 v2
  5 *
  6 * Copyright (C) 2007 Imre Kaloz <Kaloz@openwrt.org>
  7 *
  8 * based on coyote-setup.c:
  9 *      Copyright (C) 2003-2005 MontaVista Software, Inc.
 10 *
 11 * Author: Imre Kaloz <kaloz@openwrt.org>
 12 *
 13 */
 14
 15#include <linux/kernel.h>
 16#include <linux/init.h>
 17#include <linux/device.h>
 18#include <linux/serial.h>
 19#include <linux/tty.h>
 20#include <linux/serial_8250.h>
 21
 22#include <asm/types.h>
 23#include <asm/setup.h>
 24#include <asm/memory.h>
 25#include <mach/hardware.h>
 26#include <asm/irq.h>
 27#include <asm/mach-types.h>
 28#include <asm/mach/arch.h>
 29#include <asm/mach/flash.h>
 30
 
 
 31static struct flash_platform_data wg302v2_flash_data = {
 32	.map_name	= "cfi_probe",
 33	.width		= 2,
 34};
 35
 36static struct resource wg302v2_flash_resource = {
 37	.flags		= IORESOURCE_MEM,
 38};
 39
 40static struct platform_device wg302v2_flash = {
 41	.name		= "IXP4XX-Flash",
 42	.id		= 0,
 43	.dev		= {
 44		.platform_data = &wg302v2_flash_data,
 45	},
 46	.num_resources	= 1,
 47	.resource	= &wg302v2_flash_resource,
 48};
 49
 50static struct resource wg302v2_uart_resource = {
 51	.start	= IXP4XX_UART2_BASE_PHYS,
 52	.end	= IXP4XX_UART2_BASE_PHYS + 0x0fff,
 53	.flags	= IORESOURCE_MEM,
 54};
 55
 56static struct plat_serial8250_port wg302v2_uart_data[] = {
 57	{
 58		.mapbase	= IXP4XX_UART2_BASE_PHYS,
 59		.membase	= (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
 60		.irq		= IRQ_IXP4XX_UART2,
 61		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
 62		.iotype		= UPIO_MEM,
 63		.regshift	= 2,
 64		.uartclk	= IXP4XX_UART_XTAL,
 65	},
 66	{ },
 67};
 68
 69static struct platform_device wg302v2_uart = {
 70	.name		= "serial8250",
 71	.id		= PLAT8250_DEV_PLATFORM,
 72	.dev			= {
 73		.platform_data	= wg302v2_uart_data,
 74	},
 75	.num_resources	= 1,
 76	.resource	= &wg302v2_uart_resource,
 77};
 78
 79static struct platform_device *wg302v2_devices[] __initdata = {
 80	&wg302v2_flash,
 81	&wg302v2_uart,
 82};
 83
 84static void __init wg302v2_init(void)
 85{
 86	ixp4xx_sys_init();
 87
 88	wg302v2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
 89	wg302v2_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + SZ_32M - 1;
 90
 91	*IXP4XX_EXP_CS0 |= IXP4XX_FLASH_WRITABLE;
 92	*IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0;
 93
 94	platform_add_devices(wg302v2_devices, ARRAY_SIZE(wg302v2_devices));
 95}
 96
 97#ifdef CONFIG_MACH_WG302V2
 98MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2")
 99	/* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
100	.map_io		= ixp4xx_map_io,
101	.init_early	= ixp4xx_init_early,
102	.init_irq	= ixp4xx_init_irq,
103	.timer		= &ixp4xx_timer,
104	.atag_offset	= 0x100,
105	.init_machine	= wg302v2_init,
106#if defined(CONFIG_PCI)
107	.dma_zone_size	= SZ_64M,
108#endif
109	.restart	= ixp4xx_restart,
110MACHINE_END
111#endif
v5.4
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * arch/arm/mach-ixp4xx/wg302-setup.c
  4 *
  5 * Board setup for the Netgear WG302 v2 and WAG302 v2
  6 *
  7 * Copyright (C) 2007 Imre Kaloz <Kaloz@openwrt.org>
  8 *
  9 * based on coyote-setup.c:
 10 *      Copyright (C) 2003-2005 MontaVista Software, Inc.
 11 *
 12 * Author: Imre Kaloz <kaloz@openwrt.org>
 13 *
 14 */
 15
 16#include <linux/kernel.h>
 17#include <linux/init.h>
 18#include <linux/device.h>
 19#include <linux/serial.h>
 20#include <linux/tty.h>
 21#include <linux/serial_8250.h>
 22
 23#include <asm/types.h>
 24#include <asm/setup.h>
 25#include <asm/memory.h>
 26#include <mach/hardware.h>
 27#include <asm/irq.h>
 28#include <asm/mach-types.h>
 29#include <asm/mach/arch.h>
 30#include <asm/mach/flash.h>
 31
 32#include "irqs.h"
 33
 34static struct flash_platform_data wg302v2_flash_data = {
 35	.map_name	= "cfi_probe",
 36	.width		= 2,
 37};
 38
 39static struct resource wg302v2_flash_resource = {
 40	.flags		= IORESOURCE_MEM,
 41};
 42
 43static struct platform_device wg302v2_flash = {
 44	.name		= "IXP4XX-Flash",
 45	.id		= 0,
 46	.dev		= {
 47		.platform_data = &wg302v2_flash_data,
 48	},
 49	.num_resources	= 1,
 50	.resource	= &wg302v2_flash_resource,
 51};
 52
 53static struct resource wg302v2_uart_resource = {
 54	.start	= IXP4XX_UART2_BASE_PHYS,
 55	.end	= IXP4XX_UART2_BASE_PHYS + 0x0fff,
 56	.flags	= IORESOURCE_MEM,
 57};
 58
 59static struct plat_serial8250_port wg302v2_uart_data[] = {
 60	{
 61		.mapbase	= IXP4XX_UART2_BASE_PHYS,
 62		.membase	= (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
 63		.irq		= IRQ_IXP4XX_UART2,
 64		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
 65		.iotype		= UPIO_MEM,
 66		.regshift	= 2,
 67		.uartclk	= IXP4XX_UART_XTAL,
 68	},
 69	{ },
 70};
 71
 72static struct platform_device wg302v2_uart = {
 73	.name		= "serial8250",
 74	.id		= PLAT8250_DEV_PLATFORM,
 75	.dev			= {
 76		.platform_data	= wg302v2_uart_data,
 77	},
 78	.num_resources	= 1,
 79	.resource	= &wg302v2_uart_resource,
 80};
 81
 82static struct platform_device *wg302v2_devices[] __initdata = {
 83	&wg302v2_flash,
 84	&wg302v2_uart,
 85};
 86
 87static void __init wg302v2_init(void)
 88{
 89	ixp4xx_sys_init();
 90
 91	wg302v2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
 92	wg302v2_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + SZ_32M - 1;
 93
 94	*IXP4XX_EXP_CS0 |= IXP4XX_FLASH_WRITABLE;
 95	*IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0;
 96
 97	platform_add_devices(wg302v2_devices, ARRAY_SIZE(wg302v2_devices));
 98}
 99
100#ifdef CONFIG_MACH_WG302V2
101MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2")
102	/* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
103	.map_io		= ixp4xx_map_io,
104	.init_early	= ixp4xx_init_early,
105	.init_irq	= ixp4xx_init_irq,
106	.init_time	= ixp4xx_timer_init,
107	.atag_offset	= 0x100,
108	.init_machine	= wg302v2_init,
109#if defined(CONFIG_PCI)
110	.dma_zone_size	= SZ_64M,
111#endif
112	.restart	= ixp4xx_restart,
113MACHINE_END
114#endif