1*4882a593SmuzhiyunWhat: Raise a uevent when a USB charger is inserted or removed 2*4882a593SmuzhiyunDate: 2020-01-14 3*4882a593SmuzhiyunKernelVersion: 5.6 4*4882a593SmuzhiyunContact: linux-usb@vger.kernel.org 5*4882a593SmuzhiyunDescription: There are two USB charger states: 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun - USB_CHARGER_ABSENT 8*4882a593Smuzhiyun - USB_CHARGER_PRESENT 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun There are five USB charger types: 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun ======================== ========================== 13*4882a593Smuzhiyun USB_CHARGER_UNKNOWN_TYPE Charger type is unknown 14*4882a593Smuzhiyun USB_CHARGER_SDP_TYPE Standard Downstream Port 15*4882a593Smuzhiyun USB_CHARGER_CDP_TYPE Charging Downstream Port 16*4882a593Smuzhiyun USB_CHARGER_DCP_TYPE Dedicated Charging Port 17*4882a593Smuzhiyun USB_CHARGER_ACA_TYPE Accessory Charging Adapter 18*4882a593Smuzhiyun ======================== ========================== 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun https://www.usb.org/document-library/battery-charging-v12-spec-and-adopters-agreement 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun Here are two examples taken using ``udevadm monitor -p`` when 23*4882a593Smuzhiyun USB charger is online:: 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun UDEV change /devices/soc0/usbphynop1 (platform) 26*4882a593Smuzhiyun ACTION=change 27*4882a593Smuzhiyun DEVPATH=/devices/soc0/usbphynop1 28*4882a593Smuzhiyun DRIVER=usb_phy_generic 29*4882a593Smuzhiyun MODALIAS=of:Nusbphynop1T(null)Cusb-nop-xceiv 30*4882a593Smuzhiyun OF_COMPATIBLE_0=usb-nop-xceiv 31*4882a593Smuzhiyun OF_COMPATIBLE_N=1 32*4882a593Smuzhiyun OF_FULLNAME=/usbphynop1 33*4882a593Smuzhiyun OF_NAME=usbphynop1 34*4882a593Smuzhiyun SEQNUM=2493 35*4882a593Smuzhiyun SUBSYSTEM=platform 36*4882a593Smuzhiyun USB_CHARGER_STATE=USB_CHARGER_PRESENT 37*4882a593Smuzhiyun USB_CHARGER_TYPE=USB_CHARGER_SDP_TYPE 38*4882a593Smuzhiyun USEC_INITIALIZED=227422826 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun USB charger is offline:: 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun KERNEL change /devices/soc0/usbphynop1 (platform) 43*4882a593Smuzhiyun ACTION=change 44*4882a593Smuzhiyun DEVPATH=/devices/soc0/usbphynop1 45*4882a593Smuzhiyun DRIVER=usb_phy_generic 46*4882a593Smuzhiyun MODALIAS=of:Nusbphynop1T(null)Cusb-nop-xceiv 47*4882a593Smuzhiyun OF_COMPATIBLE_0=usb-nop-xceiv 48*4882a593Smuzhiyun OF_COMPATIBLE_N=1 49*4882a593Smuzhiyun OF_FULLNAME=/usbphynop1 50*4882a593Smuzhiyun OF_NAME=usbphynop1 51*4882a593Smuzhiyun SEQNUM=2494 52*4882a593Smuzhiyun SUBSYSTEM=platform 53*4882a593Smuzhiyun USB_CHARGER_STATE=USB_CHARGER_ABSENT 54*4882a593Smuzhiyun USB_CHARGER_TYPE=USB_CHARGER_UNKNOWN_TYPE 55