source: mainline/kernel/arch/arm32/include/mach/integratorcp/integratorcp.h@ 9d58539

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 9d58539 was 9d58539, checked in by Prutkov Alex <prutkov.alex@…>, 14 years ago

Fixed unix permissions for all files

  • Property mode set to 100644
File size: 3.7 KB
Line 
1/*
2 * Copyright (c) 2009 Vineeth Pillai
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup arm32integratorcp
30 * @brief Integratorcp machine specific parts.
31 * @ingroup arm32
32 * @{
33 */
34/** @file
35 * @brief Integratorcp peripheries drivers declarations.
36 */
37
38#ifndef KERN_arm32_icp_H_
39#define KERN_arm32_icp_H_
40
41#include <arch/machine_func.h>
42
43/** Last interrupt number (beginning from 0) whose status is probed
44 * from interrupt controller
45 */
46#define ICP_IRQC_MAX_IRQ 8
47#define ICP_KBD_IRQ 3
48#define ICP_TIMER_IRQ 6
49
50/** Timer frequency */
51#define ICP_TIMER_FREQ 10000
52
53#define ICP_UART 0x16000000
54#define ICP_KBD 0x18000000
55#define ICP_KBD_STAT 0x04
56#define ICP_KBD_DATA 0x08
57#define ICP_KBD_INTR_STAT 0x10
58#define ICP_RTC 0x13000000
59#define ICP_RTC1_LOAD_OFFSET 0x100
60#define ICP_RTC1_READ_OFFSET 0x104
61#define ICP_RTC1_CTL_OFFSET 0x108
62#define ICP_RTC1_INTRCLR_OFFSET 0x10C
63#define ICP_RTC1_INTRSTAT_OFFSET 0x114
64#define ICP_RTC1_BGLOAD_OFFSET 0x118
65#define ICP_RTC_CTL_VALUE 0x00E2
66#define ICP_IRQC 0x14000000
67#define ICP_IRQC_MASK_OFFSET 0xC
68#define ICP_IRQC_UNMASK_OFFSET 0x8
69#define ICP_FB 0x00800000
70#define ICP_FB_FRAME (ICP_FB >> 12)
71#define ICP_FB_NUM_FRAME 512
72#define ICP_VGA 0xC0000000
73#define ICP_CMCR 0x10000000
74#define ICP_SDRAM_MASK 0x1C
75#define ICP_SDRAMCR_OFFSET 0x20
76
77typedef struct {
78 uintptr_t uart;
79 uintptr_t kbd_ctrl;
80 uintptr_t kbd_stat;
81 uintptr_t kbd_data;
82 uintptr_t kbd_intstat;
83 uintptr_t rtc;
84 uintptr_t rtc1_load;
85 uintptr_t rtc1_read;
86 uintptr_t rtc1_ctl;
87 uintptr_t rtc1_intrclr;
88 uintptr_t rtc1_intrstat;
89 uintptr_t rtc1_bgload;
90 uintptr_t irqc;
91 uintptr_t irqc_mask;
92 uintptr_t irqc_unmask;
93 uintptr_t vga;
94 uintptr_t cmcr;
95 uintptr_t sdramcr;
96} icp_hw_map_t;
97
98
99extern void icp_init(void);
100extern void icp_output_init(void);
101extern void icp_input_init(void);
102extern void icp_timer_irq_start(void);
103extern void icp_cpu_halt(void);
104extern void icp_irq_exception(unsigned int, istate_t *);
105extern void icp_get_memory_extents(uintptr_t *, size_t *);
106extern void icp_frame_init(void);
107extern size_t icp_get_irq_count(void);
108extern const char *icp_get_platform_name(void);
109
110extern struct arm_machine_ops icp_machine_ops;
111
112/** Size of IntegratorCP IRQ number range (starting from 0) */
113#define ICP_IRQ_COUNT 8
114
115#endif
116
117/** @}
118 */
Note: See TracBrowser for help on using the repository browser.