omap4.c revision 1.5
1/* $OpenBSD: omap4.c,v 1.5 2017/03/01 05:10:05 jsg Exp $ */
2
3/*
4 * Copyright (c) 2011 Uwe Stuehler <uwe@openbsd.org>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19#include <sys/param.h>
20#include <sys/systm.h>
21#include <sys/device.h>
22
23#include <machine/bus.h>
24
25#include <armv7/armv7/armv7var.h>
26
27#define OMAPID_ADDR	0x4a002000
28#define OMAPID_SIZE	0x1000
29
30#define PRM_ADDR	0x4a306000
31#define PRM_SIZE	0x2000
32#define CM1_ADDR	0x4a004000
33#define CM1_SIZE	0x1000
34#define CM2_ADDR	0x4a008000
35#define CM2_SIZE	0x2000
36#define SCRM_ADDR	0x4a30a000
37#define SCRM_SIZE	0x1000
38#define PCNF1_ADDR	0x4a100000
39#define PCNF1_SIZE	0x1000
40#define PCNF2_ADDR	0x4a31e000
41#define PCNF2_SIZE	0x1000
42
43#define HSUSBHOST_ADDR	0x4a064000
44#define HSUSBHOST_SIZE	0x800
45#define USBEHCI_ADDR	0x4a064c00
46#define USBEHCI_SIZE	0x400
47#define USBOHCI_ADDR	0x4a064800
48#define USBOHCI_SIZE	0x400
49#define USBEHCI_IRQ	77
50
51struct armv7_dev omap4_devs[] = {
52
53	/*
54	 * Power, Reset and Clock Manager
55	 */
56
57	{ .name = "prcm",
58	  .unit = 0,
59	  .mem = {
60	    { PRM_ADDR, PRM_SIZE },
61	    { CM1_ADDR, CM1_SIZE },
62	    { CM2_ADDR, CM2_SIZE },
63	  },
64	},
65
66	/*
67	 * OMAP identification registers/fuses
68	 */
69
70	{ .name = "omapid",
71	  .unit = 0,
72	  .mem = { { OMAPID_ADDR, OMAPID_SIZE } },
73	},
74
75	/*
76	 * USB
77	 */
78
79	{ .name = "ehci",
80	  .unit = 0,
81	  .mem = {
82		  { USBEHCI_ADDR, USBEHCI_SIZE },
83		  { HSUSBHOST_ADDR, HSUSBHOST_SIZE },
84	  },
85	  .irq = { USBEHCI_IRQ }
86	},
87
88	/* Terminator */
89	{ .name = NULL,
90	  .unit = 0,
91	}
92};
93
94void
95omap4_init(void)
96{
97	armv7_set_devs(omap4_devs);
98}
99