Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.4.
 1/*
 2 * kzm9d board support
 3 *
 4 * Copyright (C) 2012  Renesas Solutions Corp.
 5 * Copyright (C) 2012  Magnus Damm
 6 *
 7 * This program is free software; you can redistribute it and/or modify
 8 * it under the terms of the GNU General Public License as published by
 9 * the Free Software Foundation; version 2 of the License.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 */
20
21#include <linux/kernel.h>
22#include <linux/interrupt.h>
23#include <linux/platform_device.h>
24#include <linux/smsc911x.h>
25#include <mach/common.h>
26#include <mach/emev2.h>
27#include <asm/mach-types.h>
28#include <asm/mach/arch.h>
29#include <asm/hardware/gic.h>
30
31/* Ether */
32static struct resource smsc911x_resources[] = {
33	[0] = {
34		.start	= 0x20000000,
35		.end	= 0x2000ffff,
36		.flags	= IORESOURCE_MEM,
37	},
38	[1] = {
39		.start	= EMEV2_GPIO_IRQ(1),
40		.flags	= IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
41	},
42};
43
44static struct smsc911x_platform_config smsc911x_platdata = {
45	.flags		= SMSC911X_USE_32BIT,
46	.irq_type	= SMSC911X_IRQ_TYPE_PUSH_PULL,
47	.irq_polarity	= SMSC911X_IRQ_POLARITY_ACTIVE_HIGH,
48};
49
50static struct platform_device smsc91x_device = {
51	.name	= "smsc911x",
52	.id	= 0,
53	.dev	= {
54		  .platform_data = &smsc911x_platdata,
55		},
56	.num_resources	= ARRAY_SIZE(smsc911x_resources),
57	.resource	= smsc911x_resources,
58};
59
60static struct platform_device *kzm9d_devices[] __initdata = {
61	&smsc91x_device,
62};
63
64void __init kzm9d_add_standard_devices(void)
65{
66	emev2_add_standard_devices();
67
68	platform_add_devices(kzm9d_devices, ARRAY_SIZE(kzm9d_devices));
69}
70
71static const char *kzm9d_boards_compat_dt[] __initdata = {
72	"renesas,kzm9d",
73	NULL,
74};
75
76DT_MACHINE_START(KZM9D_DT, "kzm9d")
77	.map_io		= emev2_map_io,
78	.init_early	= emev2_add_early_devices,
79	.nr_irqs	= NR_IRQS_LEGACY,
80	.init_irq	= emev2_init_irq,
81	.handle_irq	= gic_handle_irq,
82	.init_machine	= kzm9d_add_standard_devices,
83	.init_late	= shmobile_init_late,
84	.timer		= &shmobile_timer,
85	.dt_compat	= kzm9d_boards_compat_dt,
86MACHINE_END