• John Garry's avatar
    HISI LPC: Add ACPI support · e0aa1563
    John Garry authored
    Based on the previous patches, this patch supports the LPC host on
    Hip06/Hip07 for ACPI FW.
    
    It is the responsibility of the LPC host driver to enumerate the child
    devices, as the ACPI scan code will not enumerate children of "indirect IO"
    hosts.
    
    The ACPI table for the LPC host controller and the child devices is in the
    following format:
    
      Device (LPC0) {
        Name (_HID, "HISI0191")  // HiSi LPC
        Name (_CRS, ResourceTemplate () {
          Memory32Fixed (ReadWrite, 0xa01b0000, 0x1000)
        })
      }
    
      Device (LPC0.IPMI) {
        Name (_HID, "IPI0001")
        Name (LORS, ResourceTemplate() {
          QWordIO (
            ResourceConsumer,
            MinNotFixed,     // _MIF
            MaxNotFixed,     // _MAF
            PosDecode,
            EntireRange,
            0x0,             // _GRA
            0xe4,            // _MIN
            0x3fff,          // _MAX
            0x0,             // _TRA
            0x04,            // _LEN
            , ,
            BTIO
          )
        })
    
    Since the IO resources of the child devices need to be translated from LPC
    bus addresses to logical PIO addresses, and we shouldn't modify the
    resources of the devices generated in the FW scan, a per-child MFD is
    created as a substitute.  The MFD IO resources will be the translated bus
    addresses of the ACPI child.
    Tested-by: default avatardann frazier <dann.frazier@canonical.com>
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Signed-off-by: default avatarZhichang Yuan <yuanzhichang@hisilicon.com>
    Signed-off-by: default avatarGabriele Paoloni <gabriele.paoloni@huawei.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    e0aa1563
hisi_lpc.c 16.8 KB