usb: Enable midi function in charger mode

It needs a USB function in charger mode to set the charging current to
500mA/900mA.

Bug: 188744218
Test: charging at 900mA in charger mode
Signed-off-by: Kyle Tso <kyletso@google.com>
Change-Id: I95c98ecec30dd4394228f7290412c303771a3158
diff --git a/conf/init.gs101.usb.rc b/conf/init.gs101.usb.rc
index f0d671c..b8ffc0a 100644
--- a/conf/init.gs101.usb.rc
+++ b/conf/init.gs101.usb.rc
@@ -84,3 +84,30 @@
 
 on property:persist.vendor.usb.usbradio.config=*
    start usbd
+
+on charger
+    mkdir /config/usb_gadget/g1
+    mkdir /config/usb_gadget/g1/strings/0x409
+    mkdir /config/usb_gadget/g1/configs/b.1
+    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
+    write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
+    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+    write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
+    write /config/usb_gadget/g1/bcdDevice 0x0510
+    mkdir /config/usb_gadget/g1/functions/midi.gs5
+    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+    setprop sys.usb.controller "11110000.dwc3"
+    setprop sys.usb.configfs 1
+
+on property:ro.bootmode=charger
+    setprop sys.usb.config midi
+
+on property:sys.usb.config=midi && property:sys.usb.configfs=1
+    write /config/usb_gadget/g1/idVendor 0x18d1
+    write /config/usb_gadget/g1/idProduct 0x4eea
+    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi"
+    symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1
+    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+    setprop sys.usb.state ${sys.usb.config}