No PNP0CA0 device on a Dell Precision 5520 laptop
Hi,
I just not getting ucsi_acpi to bind on this laptop.
There just is no PNP0CA0 device. Any idea about what I am doing wrong?
Regards
Oliver
Quoted 4 lines · Oliver Neukum
Hi,
I just not getting
ucsi_acpito bind on this laptop.
There just is no PNP0CA0 device. Any idea about what I am doing wrong?
Is the interface enabled? What do you get if you do:
% cat /sys/bus/acpi/devices/USBC000\:00/status
thanks,
Signature · 1 line
heikki
Am Dienstag, den 11.02.2020, 15:59 +0200 schrieb Heikki Krogerus:
Quoted 1 line
cat /sys/bus/acpi/devices/USBC000\:00/status
Technically -ENODEV. It does not exist, even in a listing. But this thing definitely has a type C port. It is connected to a docking station which supplies the whole system with power. Ethernet also works.
Regards
Oliver
Quoted 7 lines · Oliver Neukum
Am Dienstag, den 11.02.2020, 15:59 +0200 schrieb Heikki Krogerus:
Quoted 1 line
cat /sys/bus/acpi/devices/USBC000\:00/status
Technically
-ENODEV. It does not exist, even in a listing. But this thing definitely has a type C port. It is connected to a docking station which supplies the whole system with power. Ethernet also works.
There is still no requirement for the BIOS or the EC firmware to expose UCSI to the operating system. If the ACPI node is not there, then there is no UCSI on that system. The USB Type-C connectors function autonomously in any case on a system that exposes them to the operating system with UCSI. UCSI is more like an optional status interface that allows limited control over some specific things like role swapping.
UCSI is usually supported when the USB Power Delivery (USB PD) controllers are connected to the Embedded Controller on the system, but on some of our platforms they are directly connected to the SOC instead. So on those platforms we can directly communicate with the USB PD controller from the operating system, which is actually much better situation compared to UCSI IMO.
Do you have this ACPI node: INT3515 ?
It's for the TI TPS6598x USB PD controllers.
thanks,
Signature · 1 line
heikki
Am Dienstag, den 11.02.2020, 16:28 +0200 schrieb Heikki Krogerus:
Quoted 24 lines · Oliver Neukum
Quoted 7 lines
Am Dienstag, den 11.02.2020, 15:59 +0200 schrieb Heikki Krogerus:
Quoted 1 line
cat /sys/bus/acpi/devices/USBC000\:00/status
Technically
-ENODEV. It does not exist, even in a listing. But this thing definitely has a type C port. It is connected to a docking station which supplies the whole system with power. Ethernet also works.There is still no requirement for the BIOS or the EC firmware to expose UCSI to the operating system. If the ACPI node is not there, then there is no UCSI on that system. The USB Type-C connectors function autonomously in any case on a system that exposes them to the operating system with UCSI. UCSI is more like an optional status interface that allows limited control over some specific things like role swapping.
UCSI is usually supported when the USB Power Delivery (USB PD) controllers are connected to the Embedded Controller on the system, but on some of our platforms they are directly connected to the SOC instead. So on those platforms we can directly communicate with the USB PD controller from the operating system, which is actually much better situation compared to UCSI IMO.
Quoted 3 lines
Do you have this ACPI node: INT3515 ?
It's for the TI TPS6598x USB PD controllers.
Hi,
yes I got that one. Thanks for the tip.
Regards
Oliver
Quoted 25 lines · Oliver Neukum
Am Dienstag, den 11.02.2020, 16:28 +0200 schrieb Heikki Krogerus:
Quoted 24 lines · Oliver Neukum
Quoted 7 lines
Am Dienstag, den 11.02.2020, 15:59 +0200 schrieb Heikki Krogerus:
Quoted 1 line
cat /sys/bus/acpi/devices/USBC000\:00/status
Technically
-ENODEV. It does not exist, even in a listing. But this thing definitely has a type C port. It is connected to a docking station which supplies the whole system with power. Ethernet also works.There is still no requirement for the BIOS or the EC firmware to expose UCSI to the operating system. If the ACPI node is not there, then there is no UCSI on that system. The USB Type-C connectors function autonomously in any case on a system that exposes them to the operating system with UCSI. UCSI is more like an optional status interface that allows limited control over some specific things like role swapping.
UCSI is usually supported when the USB Power Delivery (USB PD) controllers are connected to the Embedded Controller on the system, but on some of our platforms they are directly connected to the SOC instead. So on those platforms we can directly communicate with the USB PD controller from the operating system, which is actually much better situation compared to UCSI IMO.
Quoted 7 lines
Quoted 3 lines
Do you have this ACPI node: INT3515 ?
It's for the TI TPS6598x USB PD controllers.
Hi,
yes I got that one. Thanks for the tip.
OK, cool! Let me know if the tps6598x.c driver works with that.
thanks,
Signature · 1 line
heikki
Am Dienstag, den 11.02.2020, 16:44 +0200 schrieb Heikki Krogerus:
Quoted 9 lines
Quoted 7 lines
Quoted 3 lines
Do you have this ACPI node: INT3515 ?
It's for the TI TPS6598x USB PD controllers.
Hi,
yes I got that one. Thanks for the tip.
OK, cool! Let me know if the
tps6598x.cdriver works with that.
Hi,
unfortunately it does not work. There is no port in /sys/bus/typec/devices
The driver loads but it seems to do nothing.
Regards
Oliver
Am Dienstag, den 11.02.2020, 16:44 +0200 schrieb Heikki Krogerus:
Quoted 9 lines · Oliver Neukum
Quoted 4 lines
Quoted 2 lines
yes I got that one. Thanks for the tip.
OK, cool! Let me know if the
tps6598x.cdriver works with that.thanks,
Sorry for my earlier rather short report. It turns out that even i2c_multi_instantiate does not load. A bit of debugging points to rather inexplicable ACPI code:
Device (UCM1)
{
Name (_HID, "INT3515") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Name (SBFB, ResourceTemplate ()
{
I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.I2C0",
0x00, ResourceConsumer, , Exclusive,
)
})
Name (SBFI, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y28)
{
0x00000000,
}
})
CreateDWordField (SBFI, \_SB.PCI0.I2C0.UCM1._CRS._Y28._INT, GINT) // _INT: Interrupts
GINT = INUM (UCG1)
Return (ConcatenateResTemplate (SBFB, SBFI))
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((UCSI == One))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}And indeed 'status' is 0 in sysfs. I am puzzled. I can see no sense in that unless I am supposed to use ucsi_acpi but there is no node for that.
Regards
Oliver
Quoted 53 lines · Oliver Neukum
Am Dienstag, den 11.02.2020, 16:44 +0200 schrieb Heikki Krogerus:
Quoted 9 lines · Oliver Neukum
Quoted 4 lines
Quoted 2 lines
yes I got that one. Thanks for the tip.
OK, cool! Let me know if the
tps6598x.cdriver works with that.thanks,
Sorry for my earlier rather short report. It turns out that even
i2c_multi_instantiatedoes not load. A bit of debugging points to rather inexplicable ACPI code:Device (UCM1) { Name (_HID, "INT3515") // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBFB, ResourceTemplate () { I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C0", 0x00, ResourceConsumer, , Exclusive, ) }) Name (SBFI, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y28) { 0x00000000, } }) CreateDWordField (SBFI, \_SB.PCI0.I2C0.UCM1._CRS._Y28._INT, GINT) // _INT: Interrupts GINT = INUM (UCG1) Return (ConcatenateResTemplate (SBFB, SBFI)) } Method (_STA, 0, NotSerialized) // _STA: Status { If ((UCSI == One)) { Return (0x0F) } Else { Return (Zero) } } }
Quoted 2 lines
And indeed 'status' is 0 in sysfs. I am puzzled. I can see no sense in that unless I am supposed to use
ucsi_acpibut there is no node for that.
The "UCSI" in that condition is just a variable name. It does not actually have anything to do with the actual UCSI interface.
It looks to me like the operating system is not even made aware of the connectors on that laptop. That is fairly common unfortunately.
The connectors will work, the firmware takes care of everything, but they are simply not visible to the operating system. There is of course also no way to for example swap the roles, or do anything else.
thanks,
Signature · 1 line
heikki
Am Mittwoch, den 12.02.2020, 18:06 +0200 schrieb Heikki Krogerus:
Quoted 41 lines · Oliver Neukum
Quoted 40 lines
Am Dienstag, den 11.02.2020, 16:44 +0200 schrieb Heikki Krogerus:
Device (UCM1) { Name (_HID, "INT3515") // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBFB, ResourceTemplate () { I2cSerialBusV2 (0x0038, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C0", 0x00, ResourceConsumer, , Exclusive, ) }) Name (SBFI, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y28) { 0x00000000, } }) CreateDWordField (SBFI, \_SB.PCI0.I2C0.UCM1._CRS._Y28._INT, GINT) // _INT: Interrupts GINT = INUM (UCG1) Return (ConcatenateResTemplate (SBFB, SBFI)) } Method (_STA, 0, NotSerialized) // _STA: Status { If ((UCSI == One)) { Return (0x0F) } Else { Return (Zero) } } }
Quoted 5 lines
Quoted 2 lines
And indeed 'status' is 0 in sysfs. I am puzzled. I can see no sense in that unless I am supposed to use
ucsi_acpibut there is no node for that.The "UCSI" in that condition is just a variable name. It does not actually have anything to do with the actual UCSI interface.
Yesw, but it is a mightily suggestive variable name.
Quoted 6 lines
It looks to me like the operating system is not even made aware of the connectors on that laptop. That is fairly common unfortunately.
The connectors will work, the firmware takes care of everything, but they are simply not visible to the operating system. There is of course also no way to for example swap the roles, or do anything else.
I see. I just don't get how this is supposed to work with devices that have multiple alternate modes? Or if you want to couple two hosts on the USB level?
Well, I am going to look for another laptop then.
Thank you
Oliver
Am Dienstag, den 11.02.2020, 16:28 +0200 schrieb Heikki Krogerus:
Quoted 3 lines
Do you have this ACPI node: INT3515 ?
It's for the TI TPS6598x USB PD controllers.
Hi,
this leads me to another question. Is this the only controller that does this? Are there others and is this documented somewhere?
Regards
Oliver