xref: /openbsd/sys/arch/armv7/omap/omap4.c (revision a4a50d96)
1 /* $OpenBSD: omap4.c,v 1.7 2021/03/25 04:12:01 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 
21 #include <machine/bus.h>
22 
23 #include <armv7/armv7/armv7var.h>
24 
25 #define OMAPID_ADDR	0x4a002000
26 #define OMAPID_SIZE	0x1000
27 
28 #define PRM_ADDR	0x4a306000
29 #define PRM_SIZE	0x2000
30 #define CM1_ADDR	0x4a004000
31 #define CM1_SIZE	0x1000
32 #define CM2_ADDR	0x4a008000
33 #define CM2_SIZE	0x2000
34 
35 struct armv7_dev omap4_devs[] = {
36 
37 	/*
38 	 * Power, Reset and Clock Manager
39 	 */
40 
41 	{ .name = "prcm",
42 	  .unit = 0,
43 	  .mem = {
44 	    { PRM_ADDR, PRM_SIZE },
45 	    { CM1_ADDR, CM1_SIZE },
46 	    { CM2_ADDR, CM2_SIZE },
47 	  },
48 	},
49 
50 	/*
51 	 * OMAP identification registers/fuses
52 	 */
53 
54 	{ .name = "omapid",
55 	  .unit = 0,
56 	  .mem = { { OMAPID_ADDR, OMAPID_SIZE } },
57 	},
58 
59 	/* Terminator */
60 	{ .name = NULL,
61 	  .unit = 0,
62 	}
63 };
64 
65 void
omap4_init(void)66 omap4_init(void)
67 {
68 	armv7_set_devs(omap4_devs);
69 }
70