| /* |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| // C++ namespace: android::hardware::google::pixel::PixelAtoms |
| package android.hardware.google.pixel.PixelAtoms; |
| |
| option java_package = "android.hardware.google.pixel"; |
| option java_outer_classname = "PixelAtoms"; |
| |
| /* |
| * Please note that the following features are not currently supported by |
| * the IStats->reportVendorAtom implementation: |
| * - types outside of int, long, float, and string (ex. uint) |
| * - submessages within an atom |
| * - repeated fields - arrays must be unrolled |
| * - field # 1 - this will be occupied by the vendor namespace |
| */ |
| |
| /* Allocated Westworld atom IDs. */ |
| enum Ids { |
| // AOSP atom ID range starts at 105000 |
| CHARGE_STATS = 105000; |
| VOLTAGE_TIER_STATS = 105001; |
| BATTERY_CAPACITY = 105002; |
| STORAGE_UFS_HEALTH = 105003; |
| F2FS_STATS = 105004; |
| ZRAM_MM_STAT = 105005; |
| ZRAM_BD_STAT = 105006; |
| BOOT_STATS = 105007; |
| WIRELESS_CHARGING_STATS = 105008; |
| DEVICE_ORIENTATION = 105009; |
| FG_CAPACITY = 105010; |
| PD_VID_PID = 105011; |
| BATTERY_EEPROM = 105012; |
| |
| // AOSP atom ID range ends at 109999 |
| } |
| |
| /* Westworld-supported reverse domain names. */ |
| message ReverseDomainNames { |
| optional string pixel = 1 [default = "com.google.pixel"]; |
| } |
| |
| /* A message containing detailed statistics and debug information about a charge session. */ |
| message ChargeStats { |
| /* Charge Adapter stats. */ |
| enum AdapterType { |
| ADAPTER_TYPE_UNKNOWN = 0; |
| ADAPTER_TYPE_USB = 1; |
| ADAPTER_TYPE_USB_SDP = 2; |
| ADAPTER_TYPE_USB_DCP = 3; |
| ADAPTER_TYPE_USB_CDP = 4; |
| ADAPTER_TYPE_USB_ACA = 5; |
| ADAPTER_TYPE_USB_C = 6; |
| ADAPTER_TYPE_USB_PD = 7; |
| ADAPTER_TYPE_USB_PD_DRP = 8; |
| ADAPTER_TYPE_USB_PD_PPS = 9; |
| ADAPTER_TYPE_USB_PD_BRICKID = 10; |
| ADAPTER_TYPE_HVDCP = 11; |
| ADAPTER_TYPE_HVDCP3 = 12; |
| ADAPTER_TYPE_FLOAT = 13; |
| ADAPTER_TYPE_WLC = 14; |
| ADAPTER_TYPE_WLC_EPP = 15; |
| ADAPTER_TYPE_WLC_SPP = 16; |
| } |
| /* Type of charge adapter, enumerated above. */ |
| optional AdapterType adapter_type = 2; |
| /* Max negotiated voltage by charge adapter, in mV. */ |
| optional int32 adapter_voltage = 3; |
| /* Max negotiated current by charge adapter current, in mA. */ |
| optional int32 adapter_amperage = 4; |
| |
| /* Stats at beginning of charge session. */ |
| /* System State of Charge, in percent. */ |
| optional int32 ssoc_in = 5; |
| /* Voltage in mV. */ |
| optional int32 voltage_in = 6; |
| |
| /* Stats at end of charge session. */ |
| /* System State of Charge, in percent. */ |
| optional int32 ssoc_out = 7; |
| /* Voltage in mV. */ |
| optional int32 voltage_out = 8; |
| } |
| |
| /* A message containing stats from each charge voltage tier. */ |
| message VoltageTierStats { |
| /* Voltage tier number, custom to implementation, should be <= 3. */ |
| optional int32 voltage_tier = 2; |
| |
| /* Stats when entering voltage tier. */ |
| /* State of charge, in percent. */ |
| optional float soc_in = 3; |
| /* Coulomb count, in mAh. */ |
| optional int32 cc_in = 4; |
| /* Battery temperature, in deciC. */ |
| optional int32 temp_in = 5; |
| |
| /* Time spent at various charge speeds, in seconds. */ |
| optional int32 time_fast_secs = 6; |
| optional int32 time_taper_secs = 7; |
| optional int32 time_other_secs = 8; |
| |
| /* Battery temperature stats, in deciC. */ |
| optional int32 temp_min = 9; |
| optional int32 temp_avg = 10; |
| optional int32 temp_max = 11; |
| |
| /* Battery current stats, in mA. */ |
| optional int32 ibatt_min = 12; |
| optional int32 ibatt_avg = 13; |
| optional int32 ibatt_max = 14; |
| |
| /* Input current limit stats, in mA. */ |
| optional int32 icl_min = 15; |
| optional int32 icl_avg = 16; |
| optional int32 icl_max = 17; |
| } |
| |
| /* A message containing an alternate proprietary full battery capacity estimate. */ |
| message BatteryCapacity { |
| /* Sum of the change in coulomb count. */ |
| optional int32 delta_cc_sum = 2; |
| /* Sum of the change in state of charge (battery level). */ |
| optional int32 delta_vfsoc_sum = 3; |
| } |
| |
| /* A message containing health values of UFS */ |
| message StorageUfsHealth { |
| /* The value of lifetimeA for UFS health */ |
| optional int32 lifetime_a = 2; |
| /* The value of lifetimeB for UFS health */ |
| optional int32 lifetime_b = 3; |
| /* The value of lifetimeC for UFS health */ |
| optional int32 lifetime_c = 4; |
| } |
| |
| /* A message containing filesystem stats of F2FS */ |
| message F2fsStatsInfo { |
| /* The value of dirty segments of f2fs */ |
| optional int32 dirty_segments = 2; |
| /* The value of free segments of f2fs */ |
| optional int32 free_segments = 3; |
| /* The times of checkpoint function called in foreground*/ |
| optional int32 cp_calls_fg = 4; |
| /* The times of checkpoint function called in background */ |
| optional int32 cp_calls_bg = 5; |
| /* The times of garbage collection function called in foreground */ |
| optional int32 gc_calls_fg = 6; |
| /* The times of garbage collection function called in background */ |
| optional int32 gc_calls_bg = 7; |
| /* The amount of blocks been moved by garbage collection in foreground */ |
| optional int32 moved_blocks_fg = 8; |
| /* The amount of blocks been moved by garbage collection in background */ |
| optional int32 moved_blocks_bg = 9; |
| /* The average of how many valid blocks is in a segment */ |
| optional int32 valid_blocks = 10; |
| } |
| |
| message ZramMmStat { |
| /* The value of original memory size */ |
| optional int64 orig_data_size = 2; |
| /* The value of compressed memory size */ |
| optional int64 compr_data_size = 3; |
| /* The value of consumed memory size to store compressed memory */ |
| optional int64 mem_used_total = 4; |
| /* The value of number of page filled with same elements data */ |
| optional int64 same_pages = 5; |
| /* The value of number of incompressible page */ |
| optional int64 huge_pages = 6; |
| } |
| |
| message ZramBdStat { |
| /* the number of pages in backing device */ |
| optional int64 bd_count = 2; |
| /* The number of pages readed from backing device */ |
| optional int64 bd_reads = 3; |
| /* The number of pages written to backing device */ |
| optional int64 bd_writes = 4; |
| } |
| |
| /* A message containing boot times */ |
| message BootStatsInfo { |
| /* The F2FS fsck time in secs */ |
| optional int32 fsck_time_sec = 2; |
| /* The F2FS mounted time in secs */ |
| optional int32 mounted_time_sec = 3; |
| /* The F2FS checkpoint=disable time in secs */ |
| optional int32 checkpoint_time_sec = 4; |
| } |
| |
| /* A message containing wireless charging health info. */ |
| message WirelessChargingStats { |
| /* Captures if a google charger used when start wireless charging */ |
| enum ChargerVendor { |
| VENDOR_UNKNOWN = 0; |
| VENDOR_GOOGLE = 1; |
| } |
| |
| optional ChargerVendor charger_vendor = 2; |
| } |
| |
| /* Current device Orientation */ |
| message DeviceOrientation { |
| enum Orientation { |
| ORIENTATION_UNKNOWN = 0; |
| ORIENTATION_0 = 1; |
| ORIENTATION_90 = 2; |
| ORIENTATION_180 = 3; |
| ORIENTATION_270 = 4; |
| } |
| |
| /* Device orientation. */ |
| optional Orientation orientation = 2; |
| } |
| |
| /* Raw battery capacity stats */ |
| message BatteryCapacityFG { |
| enum LogReason { |
| LOG_REASON_UNKNOWN = 0; |
| LOG_REASON_CONNECTED = 1; |
| LOG_REASON_DISCONNECTED = 2; |
| LOG_REASON_FULL_CHARGE = 3; |
| LOG_REASON_PERCENT_SKIP = 4; |
| LOG_REASON_DIVERGING_FG = 5; |
| } |
| |
| /* Uevent logging reason, enumerated above. */ |
| optional LogReason capacity_log_reason = 2; |
| |
| /* The battery capacity reported from the FG (fuel gauge) hardware */ |
| optional float capacity_gdf = 3; |
| /* The filtered system battery capacity reported to the UI */ |
| optional float capacity_ssoc = 4; |
| /* The fuel gauge capacity curve midpoint FG (fuel gauge) value */ |
| optional float capacity_gdf_curve = 5; |
| /* The fuel gauge capacity curve midpoint UI value */ |
| optional float capacity_ssoc_curve = 6; |
| } |
| |
| message PdVidPid { |
| /* Vendor ID of wired charger */ |
| optional int32 vid = 2; |
| /* Product ID of wired charger */ |
| optional int32 pid = 3; |
| } |
| |
| message BatteryEEPROM { |
| /* The cycle count number; record of charge/discharge times */ |
| optional int32 cycle_cnt = 2; |
| /* The current full capacity of the battery under nominal conditions */ |
| optional int32 full_cap = 3; |
| /* The battery equivalent series resistance */ |
| optional int32 esr = 4; |
| /* Battery resistance related to temperature change */ |
| optional int32 rslow = 5; |
| /* Battery health indicator reflecting the battery age state */ |
| optional int32 soh = 6; |
| /* The battery temperature */ |
| optional int32 batt_temp = 7; |
| |
| /* Battery state of charge (SOC) shutdown point */ |
| optional int32 cutoff_soc = 8; |
| /* Raw battery state of charge (SOC), based on battery current (CC = Coulomb Counter) */ |
| optional int32 cc_soc = 9; |
| /* Estimated battery state of charge (SOC) from batt_soc with endpoint limiting (0% and 100%) */ |
| optional int32 sys_soc = 10; |
| /* Filtered monotonic SOC, handles situations where the cutoff_soc is increased and |
| * then decreased from the battery physical properties |
| */ |
| optional int32 msoc = 11; |
| /* Estimated SOC derived from cc_soc that provides voltage loop feedback correction using |
| * battery voltage, current, and status values |
| */ |
| optional int32 batt_soc = 12; |
| |
| /* Field used for data padding in the EEPROM data */ |
| optional int32 reserve = 13; |
| |
| /* The maximum battery temperature ever seen */ |
| optional int32 max_temp = 14; |
| /* The minimum battery temperature ever seen */ |
| optional int32 min_temp = 15; |
| /* The maximum battery voltage ever seen */ |
| optional int32 max_vbatt = 16; |
| /* The minimum battery voltage ever seen */ |
| optional int32 min_vbatt = 17; |
| /* The maximum battery current ever seen */ |
| optional int32 max_ibatt = 18; |
| /* The minimum battery current ever seen */ |
| optional int32 min_ibatt = 19; |
| /* Field used to verify the integrity of the EEPROM data */ |
| optional int32 checksum = 20; |
| } |