Author: andrew
Date: Sun Feb 15 11:23:27 2015
New Revision: 278797
URL: https://svnweb.freebsd.org/changeset/base/278797

Log:
  Add the structures needed to get/set the power state. These can be used
  when, for example, we boot without U-Boot and wish to enable USB, or to
  suspend an unneeded device.
  
  MFC after:    1 week

Modified:
  head/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h   Sun Feb 15 08:52:09 
2015        (r278796)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h   Sun Feb 15 11:23:27 
2015        (r278797)
@@ -52,6 +52,53 @@ struct bcm2835_mbox_tag_hdr {
        uint32_t        val_len;
 };
 
+#define BCM2835_MBOX_POWER_ID_EMMC             0x00000000
+#define BCM2835_MBOX_POWER_ID_UART0            0x00000001
+#define BCM2835_MBOX_POWER_ID_UART1            0x00000002
+#define BCM2835_MBOX_POWER_ID_USB_HCD          0x00000003
+#define BCM2835_MBOX_POWER_ID_I2C0             0x00000004
+#define BCM2835_MBOX_POWER_ID_I2C1             0x00000005
+#define BCM2835_MBOX_POWER_ID_I2C2             0x00000006
+#define BCM2835_MBOX_POWER_ID_SPI              0x00000007
+#define BCM2835_MBOX_POWER_ID_CCP2TX           0x00000008
+
+#define BCM2835_MBOX_POWER_ON                  (1 << 0)
+#define BCM2835_MBOX_POWER_WAIT                        (1 << 1)
+
+#define BCM2835_MBOX_TAG_GET_POWER_STATE       0x00020001
+#define BCM2835_MBOX_TAG_SET_POWER_STATE       0x00028001
+
+struct msg_get_power_state {
+       struct bcm2835_mbox_hdr hdr;
+       struct bcm2835_mbox_tag_hdr tag_hdr;
+       union {
+               struct {
+                       uint32_t device_id;
+               } req;
+               struct {
+                       uint32_t device_id;
+                       uint32_t state;
+               } resp;
+       } body;
+       uint32_t end_tag;
+};
+
+struct msg_set_power_state {
+       struct bcm2835_mbox_hdr hdr;
+       struct bcm2835_mbox_tag_hdr tag_hdr;
+       union {
+               struct {
+                       uint32_t device_id;
+                       uint32_t state;
+               } req;
+               struct {
+                       uint32_t device_id;
+                       uint32_t state;
+               } resp;
+       } body;
+       uint32_t end_tag;
+};
+
 #define BCM2835_MBOX_CLOCK_ID_EMMC             0x00000001
 #define BCM2835_MBOX_CLOCK_ID_UART             0x00000002
 #define BCM2835_MBOX_CLOCK_ID_ARM              0x00000003
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to