Contribute
Register

[Guide] USB power property injection for Sierra (and later)

Can I understand this: I can use a values of different model than smbios, like macbookpro 12.1 or imac14.1?

You can use whichever power values you'd like to use.

Another question is, are these values in SSDT-UIAC.aml and SSDT-USBX.aml need to be the same?

No idea what you're asking.
You should clarify your question.

SSDT-UIAC.aml and SSDT-USBX.aml are used for two completely different purposes, although you can merge their content into a single file.
 
You can use whichever power values you'd like to use.



No idea what you're asking.
You should clarify your question.

SSDT-UIAC.aml and SSDT-USBX.aml are used for two completely different purposes, although you can merge their content into a single file.

My SSDT-UIAL.aml is:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC", 0x00000000)
{
    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x04)
        {
            "AppleBusPowerControllerUSB",
            Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x0A28,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x0C80
            },

            "8086_9d2f",
            Package (0x04)
            {
                "port-count",
                Buffer (0x04)
                {
                     0x12, 0x00, 0x00, 0x00                        
                },

                "ports",
                Package (0x12)
                {
                    "HS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x06, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x07, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS08",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x08, 0x00, 0x00, 0x00                        
                        }
                    },

                    "HS09",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x09, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x0D, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x0F, 0x00, 0x00, 0x00                        
                        }
                    },

                    "SS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x12, 0x00, 0x00, 0x00                        
                        }
                    }
                }
            }
        })
    }
}

SSDT-USBX.aml is:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "USBX", 0x00000000)
{
    Device (_SB.USBX)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (LNot (Arg2))
            {
                Return (Buffer (One)
                {
                     0x03                                          
                })
            }

            Return (Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x0A28,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x0C80
            })
        }
    }
}
 
My SSDT-UIAL.aml is:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC", 0x00000000)
{
    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x04)
        {
            "AppleBusPowerControllerUSB",
            Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x0A28,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x0C80
            },

            "8086_9d2f",
            Package (0x04)
            {
                "port-count",
                Buffer (0x04)
                {
                     0x12, 0x00, 0x00, 0x00                       
                },

                "ports",
                Package (0x12)
                {
                    "HS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x06, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS07",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x07, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS08",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x08, 0x00, 0x00, 0x00                       
                        }
                    },

                    "HS09",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0xFF,
                        "port",
                        Buffer (0x04)
                        {
                             0x09, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS01",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x0D, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS03",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x0F, 0x00, 0x00, 0x00                       
                        }
                    },

                    "SS06",
                    Package (0x04)
                    {
                        "UsbConnector",
                        0x03,
                        "port",
                        Buffer (0x04)
                        {
                             0x12, 0x00, 0x00, 0x00                       
                        }
                    }
                }
            }
        })
    }
}

SSDT-USBX.aml is:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "USBX", 0x00000000)
{
    Device (_SB.USBX)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (LNot (Arg2))
            {
                Return (Buffer (One)
                {
                     0x03                                         
                })
            }

            Return (Package (0x08)
            {
                "kUSBSleepPortCurrentLimit",
                0x0834,
                "kUSBSleepPowerSupply",
                0x0A28,
                "kUSBWakePortCurrentLimit",
                0x0834,
                "kUSBWakePowerSupply",
                0x0C80
            })
        }
    }
}

No need to use both USBX and "AppleBusPowerControllerUSB".
 
so I can delete SSDT-USBX.aml from clover/acpi/patched?

You should use USBX if you're using an SMBIOS without representation in IOUSBHostFamily.kext.
As per post #1 (you really need to read it carefully).
 
Hi @RehabMan Thanks for your help and your support to this community!
Could you please check my files to see if I missed something? I used ssdt for EC because hotpatch H_EC to EC didn't do the trick for me(Yes I have H_EC). Everything else seems to be fine...
 
Last edited:
Hi @RehabMan Thanks for your help and your support to this community!
Could you please check my files to see if I missed something? I used ssdt for EC because hotpatch H_EC to EC didn't do the trick for me(Yes I have H_EC). Everything else seems to be fine...

"Problem Reporting" files are wrong (too large).
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
Back
Top