summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/raspberrypi/include/vc.h')
-rw-r--r--c/src/lib/libbsp/arm/raspberrypi/include/vc.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/vc.h b/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
new file mode 100644
index 0000000000..4e91fde832
--- /dev/null
+++ b/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
@@ -0,0 +1,140 @@
+/**
+ * @file
+ *
+ * @ingroup raspberrypi_vc
+ *
+ * @brief video core support.
+ *
+ */
+
+/*
+ * Copyright (c) 2015 Yang Qiao
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ *
+ * http://www.rtems.org/license/LICENSE
+ *
+ */
+
+#ifndef LIBBSP_ARM_RASPBERRYPI_VC_H
+#define LIBBSP_ARM_RASPBERRYPI_VC_H
+
+/**
+ * @defgroup raspberrypi_vc Register Definitions
+ *
+ * @ingroup arm_raspberrypi
+ *
+ * @brief Register Definitions
+ *
+ * @{
+ */
+
+typedef struct
+{
+ uint32_t width;
+ uint32_t height;
+} bcm2835_get_display_size_entries;
+
+int
+bcm2835_mailbox_get_display_size(bcm2835_get_display_size_entries* _entries);
+
+
+typedef enum
+{
+ bcm2835_mailbox_pixel_order_bgr = 0,
+ bcm2835_mailbox_pixel_order_rgb = 1
+} bcm2835_pixel_order;
+
+typedef enum
+{
+ bcm2835_mailbox_alpha_mode_0_opaque = 0,
+ bcm2835_mailbox_alpha_mode_0_transparent = 1,
+ bcm2835_mailbox_alpha_mode_ignored = 2
+} bcm2835_alpha_mode;
+
+typedef struct
+{
+ uint32_t xres;
+ uint32_t yres;
+ uint32_t xvirt;
+ uint32_t yvirt;
+ uint32_t depth;
+ bcm2835_pixel_order pixel_order;
+ bcm2835_alpha_mode alpha_mode;
+ uint32_t voffset_x;
+ uint32_t voffset_y;
+ uint32_t overscan_left;
+ uint32_t overscan_right;
+ uint32_t overscan_top;
+ uint32_t overscan_bottom;
+ uint32_t base;
+ size_t size;
+ uint32_t pitch;
+} bcm2835_init_frame_buffer_entries;
+
+int
+bcm2835_mailbox_init_frame_buffer(bcm2835_init_frame_buffer_entries* _entries);
+
+typedef struct
+{
+ uint32_t pitch;
+}bcm2835_get_pitch_entries;
+
+int
+bcm2835_mailbox_get_pitch(bcm2835_get_pitch_entries* _entries);
+
+typedef struct
+{
+ char cmdline[1024];
+} bcm2835_get_cmdline_entries;
+
+int
+bcm2835_mailbox_get_cmdline(bcm2835_get_cmdline_entries* _entries);
+
+typedef enum
+{
+ bcm2835_mailbox_power_udid_sd_card = 0x00000000u,
+ bcm2835_mailbox_power_udid_uart0 = 0x00000001u,
+ bcm2835_mailbox_power_udid_uart1 = 0x00000002u,
+ bcm2835_mailbox_power_udid_usb_hcd = 0x00000003u,
+ bcm2835_mailbox_power_udid_i2c0 = 0x00000004u,
+ bcm2835_mailbox_power_udid_i2c1 = 0x00000005u,
+ bcm2835_mailbox_power_udid_i2c2 = 0x00000006u,
+ bcm2835_mailbox_power_udid_spi = 0x00000007u,
+ bcm2835_mailbox_power_udid_ccp2tx = 0x00000008u,
+} bcm2835_power_device_id;
+
+typedef struct
+{
+ bcm2835_power_device_id dev_id;
+ uint32_t state;
+} bcm2835_set_power_state_entries;
+
+#define BCM2835_MAILBOX_SET_POWER_STATE_REQ_ON (1 << 0)
+#define BCM2835_MAILBOX_SET_POWER_STATE_REQ_WAIT (1 << 1)
+#define BCM2835_MAILBOX_POWER_STATE_ON (1 << 0)
+#define BCM2835_MAILBOX_POWER_STATE_NODEV (1 << 1)
+int
+bcm2835_mailbox_set_power_state(bcm2835_set_power_state_entries* _entries);
+
+typedef struct
+{
+ uint32_t base;
+ size_t size;
+}bcm2835_get_arm_memory_entries;
+
+int
+bcm2835_mailbox_get_arm_memory(bcm2835_get_arm_memory_entries* _entries);
+
+typedef struct
+{
+ uint32_t base;
+ size_t size;
+}bcm2835_get_vc_memory_entries;
+
+int
+bcm2835_mailbox_get_vc_memory(bcm2835_get_vc_memory_entries* _entries);
+/** @} */
+
+#endif /* LIBBSP_ARM_RASPBERRYPI_VC_H */