1 /* $OpenBSD: omap4.c,v 1.3 2013/11/06 19:03:07 syl Exp $ */
4 * Copyright (c) 2011 Uwe Stuehler <uwe@openbsd.org>
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.
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.
19 #include <sys/param.h>
20 #include <sys/systm.h>
21 #include <sys/device.h>
23 #include <machine/bus.h>
25 #include <armv7/armv7/armv7var.h>
27 #define OMAPID_ADDR 0x4a002000
28 #define OMAPID_SIZE 0x1000
30 #define WD_ADDR 0x4a314000
33 #define GPIOx_SIZE 0x1000
34 #define GPIO1_ADDR 0x4a310000
35 #define GPIO2_ADDR 0x48055000
36 #define GPIO3_ADDR 0x48057000
37 #define GPIO4_ADDR 0x48059000
38 #define GPIO5_ADDR 0x4805b000
39 #define GPIO6_ADDR 0x4805d000
48 #define UARTx_SIZE 0x400
49 #define UART1_ADDR 0x4806A000
50 #define UART2_ADDR 0x4806C000
51 #define UART3_ADDR 0x48020000
52 #define UART4_ADDR 0x4806E000
59 #define HSMMCx_SIZE 0x200
60 #define HSMMC1_ADDR 0x4809c100
63 #define PRM_ADDR 0x4a306000
64 #define PRM_SIZE 0x2000
65 #define CM1_ADDR 0x4a004000
66 #define CM1_SIZE 0x1000
67 #define CM2_ADDR 0x4a008000
68 #define CM2_SIZE 0x2000
69 #define SCRM_ADDR 0x4a30a000
70 #define SCRM_SIZE 0x1000
71 #define PCNF1_ADDR 0x4a100000
72 #define PCNF1_SIZE 0x1000
73 #define PCNF2_ADDR 0x4a31e000
74 #define PCNF2_SIZE 0x1000
76 #define HSUSBHOST_ADDR 0x4a064000
77 #define HSUSBHOST_SIZE 0x800
78 #define USBEHCI_ADDR 0x4a064c00
79 #define USBEHCI_SIZE 0x400
80 #define USBOHCI_ADDR 0x4a064800
81 #define USBOHCI_SIZE 0x400
82 #define USBEHCI_IRQ 77
84 struct armv7_dev omap4_devs
[] = {
87 * Power, Reset and Clock Manager
93 { PRM_ADDR
, PRM_SIZE
},
94 { CM1_ADDR
, CM1_SIZE
},
95 { CM2_ADDR
, CM2_SIZE
},
100 * OMAP identification registers/fuses
105 .mem
= { { OMAPID_ADDR
, OMAPID_SIZE
} },
114 .mem
= { { GPIO1_ADDR
, GPIOx_SIZE
} },
120 .mem
= { { GPIO2_ADDR
, GPIOx_SIZE
} },
126 .mem
= { { GPIO3_ADDR
, GPIOx_SIZE
} },
132 .mem
= { { GPIO4_ADDR
, GPIOx_SIZE
} },
138 .mem
= { { GPIO5_ADDR
, GPIOx_SIZE
} },
144 .mem
= { { GPIO6_ADDR
, GPIOx_SIZE
} },
154 .mem
= { { WD_ADDR
, WD_SIZE
} }
163 .mem
= { { UART3_ADDR
, UARTx_SIZE
} },
173 .mem
= { { HSMMC1_ADDR
, HSMMCx_SIZE
} },
174 .irq
= { HSMMC1_IRQ
}
184 { USBEHCI_ADDR
, USBEHCI_SIZE
},
185 { HSUSBHOST_ADDR
, HSUSBHOST_SIZE
},
187 .irq
= { USBEHCI_IRQ
}
199 armv7_set_devs(omap4_devs
);