XenevaOS
Loading...
Searching...
No Matches
rpi3bp.h
Go to the documentation of this file.
1
30#ifndef __RASPBERRY_PI3B_H__
31#define __RASPBERRY_PI3B_H__
32
33#ifdef __TARGET_BOARD_RPI3__
34
35#include <stdint.h>
36#include <Hal/AA64/aa64cpu.h>
37
38
39
40#define INT_SRC_CNTPSIRQ (1ULL<<0)
41#define INT_SRC_CNTPNSIRQ (1ULL<<1)
42#define INT_SRC_CNTHPIRQ (1ULL<<2)
43#define INT_SRC_CNTVIRQ (1ULL<<3)
44#define INT_SRC_MAILBOX0 (1ULL<<4)
45#define INT_SRC_MAILBOX1 (1ULL<<5)
46#define INT_SRC_MAILBOX2 (1ULL<<6)
47#define INT_SRC_MAILBOX3 (1ULL<<7)
48#define INT_SRC_GPU (1ULL<<8)
49#define INT_SRC_PMU (1ULL<<9)
50#define INT_SRC_AXI (1ULL<<10)
51
52#define TIMER_IRQ_ENABLE (1ULL<<1)
53#define TIMER_FIQ_ENABLE (1ULL<<3)
54
55/* Mailbox Tags */
56#define TAG_GET_BOARD_REV 0x00010002
57#define TAG_ALLOCATE_BUFFER 0x00040001
58#define TAG_RELEASE_BUFFER 0x00048001
59#define TAG_BLANK_SCREEN 0x00040002
60#define TAG_SET_PHYS_WH 0x00048003
61#define TAG_SET_VIRT_WH 0x00048004
62#define TAG_SET_DEPTH 0x00048005
63#define TAG_SET_PIXEL_ORDER 0x00048006
64#define TAG_GET_PITCH 0x00040008
65#define TAG_SET_VIRT_OFFSET 0x00048009
66#define TAG_SET_BACKLIGHT 0x0004800F
67#define TAG_GET_TOUCHBUF 0x0004000F
68#define TAG_SET_TOUCHBUF 0x0004801F
69#define TAG_GET_DISPLAY_ID 0x00040013
70#define TAG_SET_DSI_TIMING 00x00048014
71#define TAG_LAST 0x00000000
72
73
74extern uint32_t AuRPI3LocalIRQGetPending();
75
76/*
77 * AuRPI3PeripheralIRQGetPending -- read pending interrupts from
78 * peripheral base
79 */
80extern uint32_t AuRPI3PeripheralIRQGetPending2();
81
82extern uint32_t AuRPI3PeripheralIRQGetPending1();
83/*
84 * AuRPI3Initialize -- initialize the basic board requirement
85 */
86extern void AuRPI3Initialize();
87
88/* RPI3ICInit -- initialize RPI3 local interrupt controller */
89extern void AuRPI3ICInit();
90
91/*
92 * RPI3_IRQ_handler -- handle pending IRQs
93 * @param regs -- Pointer to AA64 register struct
94 */
95extern void RPI3_IRQ_handler(AA64Registers* regs);
96
97/*
98 * AuRPI3PeripheralIRQEnable -- enable particular peripheral irq
99 * @param irq_num -- irq number of the specific peripheral
100 */
101extern void AuRPI3PeripheralIRQEnable(uint32_t irq_num);
102
103
104extern void AuVC4DSIInit();
105
106extern void AuRPI3DelayUS(uint32_t us);
107
108extern void AuRPIDelayMS(uint32_t ms);
109
110/*
111 * AuRPIInitializeFramebuffer -- initializes framebuffer
112 * @param width -- fb width by pixels
113 * @param height -- fb height by pixels
114 * @param depth -- fb depth
115 */
116bool AuRPIInitializeFramebuffer(uint32_t width, uint32_t height, uint32_t depth);
117
118#endif
119
120
121#endif
unsigned int uint32_t
Definition acefiex.h:163
Definition aa64cpu.h:49
void AuVC4DSIInit()
Definition vc4dsi.c:752