• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Functions related to partner configs.
2
3See proto definitions for descriptions of arguments.
4"""
5
6# Needed to load from @proto. Add @unused to silence lint.
7load("//config/util/bindings/proto.star", "protos")
8load(
9    "@proto//chromiumos/config/api/partner.proto",
10    partner_pb = "chromiumos.config.api",
11)
12load(
13    "@proto//chromiumos/config/api/partner_id.proto",
14    partner_id_pb = "chromiumos.config.api",
15)
16
17def _create_touch_partner(
18        name,
19        vendor_id,
20        symlink_file_format,
21        destination_file_format = "{product_id}_{fw_version}.bin"):
22    partner = _create(name)
23    partner.touch_vendor = partner_pb.Partner.TouchVendor(
24        vendor_id = vendor_id,
25        symlink_file_format = symlink_file_format,
26        destination_file_format = destination_file_format,
27    )
28    return partner
29
30def _create_display_partner(vendor_code):
31    partner = _create(vendor_code)
32    partner.display_panel_vendor = partner_pb.Partner.DisplayPanelVendor(
33        vendor_code = vendor_code,
34    )
35    return partner
36
37def _create_battery_partner(name):
38    partner = _create(name)
39    partner.battery_vendor = partner_pb.Partner.BatteryVendor(
40        vendor_name = name,
41    )
42    return partner
43
44def _create(name):
45    """Builds a Partner proto."""
46    partner_id = partner_id_pb.PartnerId(value = name)
47    return partner_pb.Partner(
48        id = partner_id,
49        name = name,
50    )
51
52_WACOM_FW_FORMAT = "_firmware_{vendor_id}_{product_id}.hex"
53_EMRIGHT_FW_FORMAT = "emright_firmware_{vendor_id}_{product_id}.bin"
54
55partner = struct(
56    create = _create,
57    display_panel = struct(
58        AUO = _create_display_partner(
59            vendor_code = "AUO",
60        ),
61        BOE = _create_display_partner(
62            vendor_code = "BOE",
63        ),
64        CMN = _create_display_partner(
65            vendor_code = "CMN",
66        ),
67        IVO = _create_display_partner(
68            vendor_code = "IVO",
69        ),
70        INX = _create_display_partner(
71            vendor_code = "INX",
72        ),
73    ),
74    touch = struct(
75        ELAN = _create_touch_partner(
76            name = "elan",
77            vendor_id = "04F3",
78            symlink_file_format = "elan_i2c_{product_id}.bin",
79        ),
80        ELAN_EEPROM = _create_touch_partner(
81            name = "elan_eeprom",
82            vendor_id = "04F3",
83            symlink_file_format = "elan_eeprom_{product_id}.bin",
84        ),
85        ELAN_TS = _create_touch_partner(
86            name = "elants",
87            vendor_id = "04F3",
88            symlink_file_format = "elants_i2c_{product_id}.bin",
89        ),
90        ELAN_HID_TS = _create_touch_partner(
91            name = "elants_hid",
92            vendor_id = "04F3",
93            symlink_file_format = "elants_i2chid_{product_id}.bin",
94        ),
95        EMRIGHT = _create_touch_partner(
96            name = "emright",
97            vendor_id = "2C68",
98            symlink_file_format = _EMRIGHT_FW_FORMAT,
99        ),
100        EMRIGHT_AUO = _create_touch_partner(
101            name = "emright_auo",
102            vendor_id = "AF06",
103            symlink_file_format = _EMRIGHT_FW_FORMAT,
104        ),
105        EMRIGHT_BOE = _create_touch_partner(
106            name = "emright_boe",
107            vendor_id = "E509",
108            symlink_file_format = _EMRIGHT_FW_FORMAT,
109        ),
110        GOODIX = _create_touch_partner(
111            name = "goodix",
112            vendor_id = "27C6",
113            symlink_file_format = "goodix_firmware_{product_id}.bin",
114        ),
115        G2TOUCH = _create_touch_partner(
116            name = "g2touch",
117            vendor_id = "2A94",
118            symlink_file_format = "g2touch_{product_id}.bin",
119            destination_file_format = "PID_{product_id}_{fw_version}.bin",
120        ),
121        HIMAX = _create_touch_partner(
122            name = "himax",
123            vendor_id = "4858",
124            symlink_file_format = "himax_i2chid_{product_id}.bin",
125            destination_file_format = "{product_id}_{fw_version}.bin",
126        ),
127        MELFAS = _create_touch_partner(
128            name = "melfas",
129            vendor_id = "1FD2",
130            symlink_file_format = "melfas_mip4_{product_id}.fw",
131            destination_file_format = "{product_id}_{fw_version}.fw",
132        ),
133        PIXART = _create_touch_partner(
134            name = "pixart",
135            vendor_id = "093A",
136            symlink_file_format = "pix_tp{product_series}_{product_id}.bin",
137        ),
138        RAYDIUM = _create_touch_partner(
139            name = "raydium",
140            vendor_id = "2386",
141            symlink_file_format = "raydium_0x{product_series}{product_id}.fw",
142            destination_file_format = "raydium_0x{product_series}{product_id}_{fw_version}.fw",
143        ),
144        SIS = _create_touch_partner(
145            name = "sis",
146            vendor_id = "0457",
147            symlink_file_format = "sis_{product_id}.bin",
148        ),
149        SYNAPTICS = _create_touch_partner(
150            name = "synaptics",
151            vendor_id = "06CB",
152            symlink_file_format = "hid-{vendor_id}_{product_id}",
153        ),
154        WACOM = _create_touch_partner(
155            name = "wacom",
156            vendor_id = "056A",
157            symlink_file_format = "wacom" + _WACOM_FW_FORMAT,
158        ),
159        WACOM2 = _create_touch_partner(
160            name = "wacom2",
161            vendor_id = "2D1F",
162            symlink_file_format = "wacom2" + _WACOM_FW_FORMAT,
163        ),
164        WACOM_AUO = _create_touch_partner(
165            name = "wacom_auo",
166            vendor_id = "AF06",
167            symlink_file_format = "wacom" + _WACOM_FW_FORMAT,
168        ),
169        WACOM_BOE = _create_touch_partner(
170            name = "wacom_boe",
171            vendor_id = "E509",
172            symlink_file_format = "wacom2" + _WACOM_FW_FORMAT,
173        ),
174        WEIDA = _create_touch_partner(
175            name = "weida",
176            vendor_id = "2575",
177            symlink_file_format = "wdt{product_series}_{product_id}.bin",
178        ),
179        ZINITIX = _create_touch_partner(
180            name = "zinitix",
181            vendor_id = "14E5",
182            symlink_file_format = "zinitix_firmware.bin",
183            destination_file_format = "zinitix_{product_id}_{fw_version}.bin",
184        ),
185        WACOM_BUGZZY = _create_touch_partner(
186            name = "wacom",
187            vendor_id = "2D1F",
188            symlink_file_format = "wacom_firmware.hex",
189            destination_file_format = "wacom_{product_id}_{fw_version}.hex",
190        ),
191        ILITEK = _create_touch_partner(
192            name = "ilitek",
193            vendor_id = "222A",
194            symlink_file_format = "ilitek_{product_id}.bin",
195            destination_file_format = "{product_id}_{fw_version}.bin",
196        ),
197        ILITDDI = _create_touch_partner(
198            name = "ilitddi",
199            vendor_id = "222A",
200            symlink_file_format = "ilitddi_{product_id}.hex",
201            destination_file_format = "{product_id}_{fw_version}.hex",
202        ),
203        FOCALTECH = _create_touch_partner(
204            name = "focaltech",
205            vendor_id = "2808",
206            symlink_file_format = "focal_hid_{product_id}.bin",
207            destination_file_format = "{product_id}_{fw_version}.bin",
208        ),
209        PARADETECH = _create_touch_partner(
210            name = "paradetech",
211            vendor_id = "1DA0",
212            symlink_file_format = "paradetech_{product_id}.bin",
213        ),
214    ),
215    battery = struct(
216        PANASONIC = _create_battery_partner(
217            name = "panasonic",
218        ),
219    ),
220)
221