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