blob: 9f613761346b85a9dbd78eeee7b5fe0ea537cfbc [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package chromiumos.config.api;
import "src/config/proto/api/topology.proto";
option go_package = "go.chromium.org/chromiumos/config/go/api";
// Contains hardware related system features that are tracked by Google to
// differentiate distinct hardware build configurations. Generally these
// hardware-related system features are not easily probe-able at run time.
//
// This SHOULD NOT be used to track second sourced components that are drop in
// replacements.
//
// Note the types here are strings instead of enums. The individual Design
// repos should check that any CL landing has acceptable values for the string.
// Most values are effectively stringly typed enums.
message HardwareTopology {
// Specify hardware screen topology hardware. This includes differences in
// size, technology, and touch screen.
// Example Ids: "NONE" (chomebox), "OLED-15", "TFT-12", "TFT-12-TOUCH"
Topology screen = 1;
// Specify functional form factor type of hardware. This includes different
// functions like clamshell, convertible, tablet, detachable, chromebox
// Example Ids: "CLAMSHELL", "TABLET", "CONVERTIBLE", "CHROMEBOX"
Topology form_factor = 2;
// Specify the audio codec topology.
// Example Ids: "RT5682"
Topology audio_codec = 3;
// Specify the stylus topology. This includes differences in stylus presence,
// garage type, or technology type.
// Example Ids: "NONE", "GARAGED-USI", "EXTERNAL-EMR"
Topology stylus = 4;
// Specify the internal topology. This includes differences in presence,
// key layout, or backlight functionality.
// Example Ids: "NONE", "DEFAULT", "DEFAULT-BL", "NO-PWR-BL"
Topology keyboard = 5;
// Specify which thermal toplogy. This includes any differnce that would
// require new thermal tuning parameters.
// Example Ids: "DEFAULT", "LARGE-CHASIS", "LARGE-CHASIS-HIGH-PERF"
Topology thermal = 6;
// Specify the camera toplogy. This includes differences in count,
// location, camera features, or drivers.
// Example Ids: "NONE", "2A1B", "1A1B1D-ARC"
Topology camera = 7;
// Specify the microphone toplogy. This includes differences in count,
// location, and drivers.
// Example Ids: "NONE", "2C", "2C-ARRAY"
Topology microphone = 8;
// Specify the accelerometer toplogy. This includes differences in count,
// location, and drivers.
// Example Ids: "NONE", "1LID1Base", "1LID-LSM-1BASE-BMI"
Topology accelerometer = 9;
// Specify the gyroscope toplogy. This includes differences in count,
// location, and drivers.
// Example Ids: "NONE", "1LID", "1BASE-L3GD"
Topology gyroscope = 10;
// Specify the magnetometer/eCompass toplogy. This includes differences in
// count, location, and drivers.
// Example Ids: "NONE", "1BASE-BMM"
Topology magnetometer = 11;
// Specify the fingerprint sensor toplogy. This includes differences in
// count, location, and drivers.
// Example Ids: "NONE", "1C-ELAN"
Topology fingerprint = 12;
// Specify the proximity sensor toplogy. This includes differences in
// count, location, and drivers.
// Example Ids: "NONE", "1B-ELAN"
Topology proximity_sensor = 13;
// Specify the daugher board toplogy. Every unique daughter board should have
// a unique ID based on function
// Example Ids: "NONE", "1C1A", "HDMI-1A", "LTE"
Topology daughter_board = 14;
// Specify the non-volatile storage toplogy. This includes differences in
// required tuning parameters or drivers.
// Example Ids: "EMMC", "NVME"
Topology non_volatile_storage = 15;
// Specify the ram toplogy. This includes differences in speed, channel
// count, size. This does not include different vendors of memory unless
// special driver consideration is required. Each unique ID value here should
// map to a specific resistor strappping configuration on the SoC.
// Example Ids: "DUAL-8GB-2400",
Topology ram = 16;
// Specify the wifi toplogy. This includes differences in communication bus.
// Example Ids: "CNVI-JPEAK", "PCI-REALTEK"
Topology wifi = 17;
// Specify the LTE sub-board toplogy. This includes presence or absence of
// dedicated sub-board. This is sepearate from the main daughter board.
// Example Ids: "CNVI-JPEAK", "PCI-REALTEK"
Topology lte_board = 18;
// Specify the SD card reader toplogy. This only includes presence of SD card
// reader on system or not
// Example Ids: "NONE", "PRESENT"
Topology sd_reader = 19;
}