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