Add mailbox timeout.
[tart.git] / platform / bcm2835 / include / mailbox.h
blobd857e0de45c0f45baec0b02ead73b6d53a0273e7
1 #ifndef _BCM2835_MAILBOX_H
2 #define _BCM2835_MAILBOX_H
4 #include <stdint.h>
6 #define MAILBOX_BASE 0x2000B880
7 #define MAILBOX_POLL 0x10
8 #define MAILBOX_SENDER 0x14
9 #define MAILBOX_STATUS 0x18
10 #define MAILBOX_CONFIG 0x1C
11 #define MAILBOX_WRITE 0x20
13 #define EMMC_CLOCK_ID 0x01
14 #define UART_CLOCK_ID 0x02
15 #define ARM_CLOCK_ID 0x03
16 #define CORE_CLOCK_ID 0x04
17 #define V3D_CLOCK_ID 0x05
18 #define H264_CLOCK_ID 0x06
19 #define ISP_CLOCK_ID 0x07
20 #define SDRAM_CLOCK_ID 0x08
21 #define PIXEL_CLOCK_ID 0x09
22 #define PWM_CLOCK_ID 0x0A
24 #define MAILBOX_ARM_TO_VC 8
26 #define MAILBOX_SUCCESS 0x80000000
28 #define MAILBOX_TIMEOUT 100
31 * Synchronously write to the mailbox.
32 * uint32_t data.
33 * uint8_t channel.
35 void mailbox_write(uint32_t data, uint8_t channel);
38 * Synchronously read from the mailbox.
39 * uint8_t channel.
41 * Returns:
42 * uint32_t.
44 uint32_t mailbox_read(uint8_t channel);
46 #endif /* _BCM2835_MAILBOX_H */