blob: cb1cd57e465374ece796575b8c11f1d91406130d [file] [log] [blame]
Mike Lockwood4f5d5172012-04-04 11:26:59 -07001# Copyright (C) 2012 The Android Open Source Project
2#
3# USB configuration common for all android devices
4#
5
6on post-fs-data
7 chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
8 chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
9 chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
10 chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
11
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070012on boot
13 setprop sys.usb.configfs 0
14
Mike Lockwood4f5d5172012-04-04 11:26:59 -070015# Used to disable USB when switching states
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070016on property:sys.usb.config=none && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070017 stop adbd
18 write /sys/class/android_usb/android0/enable 0
19 write /sys/class/android_usb/android0/bDeviceClass 0
20 setprop sys.usb.state ${sys.usb.config}
21
22# adb only USB configuration
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070023# This is the fallback configuration if the
24# USB manager fails to set a standard configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070025on property:sys.usb.config=adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070026 write /sys/class/android_usb/android0/enable 0
27 write /sys/class/android_usb/android0/idVendor 18d1
Badhri Jagan Sridharan97b536f2014-09-05 11:10:09 -070028 write /sys/class/android_usb/android0/idProduct 4EE7
Mike Lockwood4f5d5172012-04-04 11:26:59 -070029 write /sys/class/android_usb/android0/functions ${sys.usb.config}
30 write /sys/class/android_usb/android0/enable 1
31 start adbd
32 setprop sys.usb.state ${sys.usb.config}
33
34# USB accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070035on property:sys.usb.config=accessory && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070036 write /sys/class/android_usb/android0/enable 0
37 write /sys/class/android_usb/android0/idVendor 18d1
38 write /sys/class/android_usb/android0/idProduct 2d00
39 write /sys/class/android_usb/android0/functions ${sys.usb.config}
40 write /sys/class/android_usb/android0/enable 1
41 setprop sys.usb.state ${sys.usb.config}
42
43# USB accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070044on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070045 write /sys/class/android_usb/android0/enable 0
46 write /sys/class/android_usb/android0/idVendor 18d1
47 write /sys/class/android_usb/android0/idProduct 2d01
48 write /sys/class/android_usb/android0/functions ${sys.usb.config}
49 write /sys/class/android_usb/android0/enable 1
50 start adbd
51 setprop sys.usb.state ${sys.usb.config}
52
53# audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070054on property:sys.usb.config=audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070055 write /sys/class/android_usb/android0/enable 0
56 write /sys/class/android_usb/android0/idVendor 18d1
57 write /sys/class/android_usb/android0/idProduct 2d02
58 write /sys/class/android_usb/android0/functions ${sys.usb.config}
59 write /sys/class/android_usb/android0/enable 1
60 setprop sys.usb.state ${sys.usb.config}
61
62# audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070063on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070064 write /sys/class/android_usb/android0/enable 0
65 write /sys/class/android_usb/android0/idVendor 18d1
66 write /sys/class/android_usb/android0/idProduct 2d03
67 write /sys/class/android_usb/android0/functions ${sys.usb.config}
68 write /sys/class/android_usb/android0/enable 1
69 start adbd
70 setprop sys.usb.state ${sys.usb.config}
71
72# USB and audio accessory configuration
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070073on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070074 write /sys/class/android_usb/android0/enable 0
75 write /sys/class/android_usb/android0/idVendor 18d1
76 write /sys/class/android_usb/android0/idProduct 2d04
77 write /sys/class/android_usb/android0/functions ${sys.usb.config}
78 write /sys/class/android_usb/android0/enable 1
79 setprop sys.usb.state ${sys.usb.config}
80
81# USB and audio accessory configuration, with adb
Badhri Jagan Sridharan48d59ac2015-08-28 17:39:28 -070082on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0
Mike Lockwood4f5d5172012-04-04 11:26:59 -070083 write /sys/class/android_usb/android0/enable 0
84 write /sys/class/android_usb/android0/idVendor 18d1
85 write /sys/class/android_usb/android0/idProduct 2d05
86 write /sys/class/android_usb/android0/functions ${sys.usb.config}
87 write /sys/class/android_usb/android0/enable 1
88 start adbd
89 setprop sys.usb.state ${sys.usb.config}
90
91# Used to set USB configuration at boot and to switch the configuration
92# when changing the default configuration
93on property:persist.sys.usb.config=*
Mike Lockwood4f5d5172012-04-04 11:26:59 -070094 setprop sys.usb.config ${persist.sys.usb.config}
Tim Kilbourn8c12fdf2015-08-12 09:36:00 -070095
96#
97# USB type C
98#
99
100# USB mode changes
101on property:sys.usb.typec.mode=dfp
102 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
103 setprop sys.usb.typec.state ${sys.usb.typec.mode}
104
105on property:sys.usb.typec.mode=ufp
106 write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode}
107 setprop sys.usb.typec.state ${sys.usb.typec.mode}
108
109# USB data role changes
110on property:sys.usb.typec.data_role=device
111 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data}
112 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
113
114on property:sys.usb.typec.data_role=host
115 write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data}
116 setprop sys.usb.typec.state ${sys.usb.typec.data_role}
117
118# USB power role changes
119on property:sys.usb.typec.power_role=source
120 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power}
121 setprop sys.usb.typec.state ${sys.usb.typec.power_role}
122
123on property:sys.usb.typec.power_role=sink
124 write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power}
125 setprop sys.usb.typec.state ${sys.usb.typec.power_role}