| // Copyright 2012 Google Inc. All Rights Reserved. |
| // Author: alicejwang@google.com (Alice Wang) |
| |
| #ifndef BUNO_PLATFORM_PERIPHERAL_MAILBOX_H_ |
| #define BUNO_PLATFORM_PERIPHERAL_MAILBOX_H_ |
| |
| #include "bruno/constructormagic.h" |
| #include "common.h" |
| |
| namespace bruno_platform_peripheral { |
| |
| class Common; |
| |
| /* |
| * GPIO defintions for B2 boards: |
| * |
| * Bruno: |
| * Front view LEDs positions |
| * D20 D4621 D21 D21 |
| * |
| * Name | Schematics net name | Ref Des | Front view LED position |
| * ========================================================================== |
| * GPIO_LED_BLUE | BT_B_LED_N | D20 | The most left LED |
| * GPIO_LED_RED | 7425_R_LED_N | D4621 | The 2nd left LED (dual color) |
| * GPIO_LED_ACT_BLUE | 7425_ACT_LED_N | D4621 | The 2nd left LED (dual color) |
| * GPIO_LED_STANDBY0 | STANDBY_LED_N0 | D21/D22 | The 2 right LEDs |
| * |
| * |
| * Bruno-IS: |
| * Name | Schematics net name | Ref Des |
| * ========================================================================== |
| * GPIO_LED_RED | 7425_R_LED_N | D4621-D4623 (dual color LEDs) |
| * GPIO_LED_ACT_BLUE | 7425_ACT_LED_N | D4621-D4623 (dual color LEDs) |
| * |
| */ |
| class Mailbox { |
| public: |
| |
| static const std::string kMailboxFanPercentFile; |
| static const std::string kMailboxFanSpeedFile; |
| static const std::string kMailboxCpuTemperatureFile; |
| static const std::string kMailboxCpuVoltageFile; |
| static const std::string kMailboxReadyFile; |
| |
| explicit Mailbox() {} |
| virtual ~Mailbox() {} |
| |
| bool ReadFanSpeed(uint16_t *fan_speed); |
| bool ReadSocTemperature(float *soc_temperature); |
| bool ReadSocVoltage(std::string *soc_voltage); |
| bool WriteFanDutyCycle(uint16_t duty_cycle); |
| bool ReadFanDutyCycle(uint16_t *duty_cycle); |
| bool CheckIfMailBoxIsReady(void); |
| |
| private: |
| bool WriteValueString(const std::string& out_file, const std::string& value_str); |
| bool ReadValueString(const std::string& in_file, std::string *value_str); |
| |
| DISALLOW_COPY_AND_ASSIGN(Mailbox); |
| }; |
| |
| } // namespace bruno_platform_peripheral |
| |
| #endif // BUNO_PLATFORM_PERIPHERAL_MAILBOX_H_ |