blob: 2bc4ba393ff842a805ec63dfc08b48589c7871b3 [file] [log] [blame]
// Copyright 2019 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 prototype;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype";
import "prototype/common.proto";
import "prototype/partner.proto";
import "google/protobuf/descriptor.proto";
message ComponentId {
string value = 1;
}
message Component {
ComponentId id = 1;
oneof type {
Soc soc = 2;
Memory memory = 3;
Bluetooth bluetooth = 4;
Camera camera = 5;
Touchscreen touchscreen = 6;
}
message Soc {
enum Architecture {
ARCHITECTURE_UNDEFINED = 0;
X86 = 1;
X86_64 = 2;
ARM = 3;
ARM64 = 4;
}
extend google.protobuf.EnumValueOptions {
Architecture arch = 1914503;
}
enum Family {
FAMILY_UNDEFINED = 0;
RK3399 = 1 [(arch) = ARM64];
GEMINI_LAKE = 2 [(arch) = X86_64];
}
Family family = 1;
string model = 2;
int32 cores = 3;
}
message Memory {
enum Type {
TYPE_UNDEFINED = 0;
DDR = 1;
DDR2 = 2;
DDR3 = 3;
DDR4 = 4;
LP_DDR3 = 5;
LP_DDR4 = 6;
}
Type type = 1;
int32 speed_mhz = 2;
ByteSize size = 3;
string part_number = 4;
PartnerId manufacturer_id = 5;
}
message Bluetooth {
UsbDeviceId usb_device_id = 1;
}
message Camera {
enum Feature {
FEATURE_UNKNOWN = 0;
ACTIVITY_LED = 1;
}
enum ClockType {
CLOCK_TYPE_UNDEFINED = 0;
MONOTONIC = 1;
BOOTTIME = 2;
}
repeated Feature features = 1;
ClockType clock_type = 2;
}
message Touchscreen {
string vendor_id = 1;
string product_id = 2;
string fw_version = 3;
string fw_path = 4;
}
}
message ComponentList {
repeated Component value = 1;
}