linux_dsm_epyc7002/drivers/bus
John Garry e0aa1563f8 HISI LPC: Add ACPI support
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: dann frazier <dann.frazier@canonical.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Zhichang Yuan <yuanzhichang@hisilicon.com>
Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
2018-04-04 08:42:51 -05:00
..
arm-cci.c bus: arm-cci: Fix use of smp_processor_id() in preemptible context 2017-12-04 16:56:43 +00:00
arm-ccn.c bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left. 2017-12-04 17:15:20 +00:00
brcmstb_gisb.c bus: brcmstb_gisb: update to support new revision 2017-05-13 20:18:57 -07:00
da8xx-mstpri.c bus: da850-mstpri: fix my e-mail address 2017-01-02 15:52:32 +05:30
hisi_lpc.c HISI LPC: Add ACPI support 2018-04-04 08:42:51 -05:00
imx-weim.c bus: Convert to using %pOF instead of full_name 2017-08-16 17:21:40 +02:00
Kconfig HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings 2018-04-04 08:42:48 -05:00
Makefile HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings 2018-04-04 08:42:48 -05:00
mips_cdmm.c MIPS/BUS/CDMM: Convert to hotplug state machine 2016-09-06 18:30:25 +02:00
mvebu-mbus.c bus: mbus: fix window size calculation for 4GB windows 2017-10-12 15:01:30 +02:00
omap_l3_noc.c bus: omap: add MODULE_LICENSE tags 2018-01-11 18:02:56 -08:00
omap_l3_noc.h bus: omap_l3_noc: Fix master id address decoding for OMAP5 2015-05-04 10:21:01 -07:00
omap_l3_smx.c bus: omap: add MODULE_LICENSE tags 2018-01-11 18:02:56 -08:00
omap_l3_smx.h drivers: bus: Move the OMAP interconnect driver to drivers/bus/ 2012-09-19 16:53:26 +02:00
omap-ocp2scp.c bus: omap-ocp2scp: Fix error handling in omap_ocp2scp_probe 2017-07-12 02:25:41 -07:00
qcom-ebi2.c bus: qcom: add EBI2 driver 2016-09-08 15:27:05 +02:00
simple-pm-bus.c drivers: bus: Add Simple Power-Managed Bus Driver 2015-02-24 06:36:18 +09:00
sunxi-rsb.c sunxi-rsb: Include OF based modalias in device uevent 2017-12-05 09:14:30 +01:00
tegra-aconnect.c bus: tegra-aconnect: Use of_pm_clk_add_clk() 2016-08-16 12:22:51 +02:00
tegra-gmi.c bus: Add support for Tegra Generic Memory Interface 2016-11-15 17:27:53 +01:00
ti-sysc.c bus: ti-sysc: Fix smartreflex sysc mask 2018-01-22 09:32:53 -08:00
ts-nbus.c bus: add driver for the Technologic Systems NBUS 2017-11-07 16:28:19 +01:00
uniphier-system-bus.c bus: uniphier-system-bus: set up registers when resuming 2017-08-04 12:57:18 +02:00
vexpress-config.c bus: vexpress-config: fix device reference leak 2016-11-30 23:29:37 +01:00