Thread (32 messages) 32 messages, 5 authors, 2018-02-16
STALE3049d REVIEWED: 1 (0M)
Revisions (7)
  1. v11 [diff vs current]
  2. v12 [diff vs current]
  3. v13 current
  4. v14 [diff vs current]
  5. v15 [diff vs current]
  6. v16 [diff vs current]
  7. v17 [diff vs current]

[PATCH v13 8/9] LPC, ACPI: Add the HISI LPC ACPI support

From: John Garry <hidden>
Date: 2018-02-13 16:57:19
Also in: linux-acpi, linux-arch, linux-pci, lkml
Subsystem: acpi, hisilicon lpc bus driver, the rest · Maintainers: "Rafael J. Wysocki", Jay Fang, Linus Torvalds

Based on the previous patches, this patch supports the LPC host on
Hip06/Hip07 for ACPI FW.

Signed-off-by: John Garry <redacted>
Signed-off-by: Zhichang Yuan <redacted>
Signed-off-by: Gabriele Paoloni <redacted>
Tested-by: Dann Frazier <redacted>
---
 drivers/acpi/arm64/acpi_indirectio.c |  1 +
 drivers/bus/hisi_lpc.c               | 17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/arm64/acpi_indirectio.c b/drivers/acpi/arm64/acpi_indirectio.c
index 51a1b92..52519a21 100644
--- a/drivers/acpi/arm64/acpi_indirectio.c
+++ b/drivers/acpi/arm64/acpi_indirectio.c
@@ -225,6 +225,7 @@ static int acpi_indirect_io_setup(struct acpi_device *adev)
 
 /* All the host devices which apply indirect-IO can be listed here. */
 static const struct acpi_device_id acpi_indirect_io_host_id[] = {
+	{"HISI0191"},
 	{}
 };
 
diff --git a/drivers/bus/hisi_lpc.c b/drivers/bus/hisi_lpc.c
index 2290cf2..6211c95 100644
--- a/drivers/bus/hisi_lpc.c
+++ b/drivers/bus/hisi_lpc.c
@@ -439,7 +439,13 @@ static int hisilpc_probe(struct platform_device *pdev)
 	}
 
 	/* register the LPC host PIO resources */
-	{
+	if (has_acpi_companion(dev)) {
+		lpcdev->io_host = find_io_range_by_fwnode(dev->fwnode);
+		if (!lpcdev->io_host) {
+			dev_err(dev, "range not registered!\n");
+			return -EFAULT;
+		}
+	} else {
 		struct logic_pio_hwaddr *range;
 
 		range = devm_kzalloc(dev, sizeof(*range), GFP_KERNEL);
@@ -496,10 +502,19 @@ static int hisilpc_probe(struct platform_device *pdev)
 	{},
 };
 
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id hisilpc_acpi_match[] = {
+	{"HISI0191", },
+	{},
+};
+
+#endif
+
 static struct platform_driver hisilpc_driver = {
 	.driver = {
 		.name           = "hisi_lpc",
 		.of_match_table = hisilpc_of_match,
+		.acpi_match_table = ACPI_PTR(hisilpc_acpi_match),
 	},
 	.probe = hisilpc_probe,
 };
-- 
1.9.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help