The initial implementation of this configuration conflated the SIRQ
polarity setting with the syscon eSPI/LPC strapping; this patch
disentangles them by reducing the DT config to a simple boolean.

Signed-off-by: Zev Weiss <z...@bewilderbeest.net>
---
 drivers/tty/serial/8250/8250_aspeed_vuart.c | 39 ++-------------------
 drivers/tty/serial/8250/Kconfig             |  1 -
 2 files changed, 2 insertions(+), 38 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_aspeed_vuart.c 
b/drivers/tty/serial/8250/8250_aspeed_vuart.c
index c33e02cbde93..b9b5fa58ab28 100644
--- a/drivers/tty/serial/8250/8250_aspeed_vuart.c
+++ b/drivers/tty/serial/8250/8250_aspeed_vuart.c
@@ -10,8 +10,6 @@
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
-#include <linux/regmap.h>
-#include <linux/mfd/syscon.h>
 #include <linux/tty.h>
 #include <linux/tty_flip.h>
 #include <linux/clk.h>
@@ -346,30 +344,8 @@ static int aspeed_vuart_handle_irq(struct uart_port *port)
        return 1;
 }
 
-static void aspeed_vuart_auto_configure_sirq_polarity(
-       struct aspeed_vuart *vuart, struct device_node *syscon_np,
-       u32 reg_offset, u32 reg_mask)
-{
-       struct regmap *regmap;
-       u32 value;
-
-       regmap = syscon_node_to_regmap(syscon_np);
-       if (IS_ERR(regmap)) {
-               dev_warn(vuart->dev,
-                        "could not get regmap for 
aspeed,sirq-polarity-sense\n");
-               return;
-       }
-       if (regmap_read(regmap, reg_offset, &value)) {
-               dev_warn(vuart->dev, "could not read hw strap table\n");
-               return;
-       }
-
-       aspeed_vuart_set_sirq_polarity(vuart, (value & reg_mask) == 0);
-}
-
 static int aspeed_vuart_probe(struct platform_device *pdev)
 {
-       struct of_phandle_args sirq_polarity_sense_args;
        struct uart_8250_port port;
        struct aspeed_vuart *vuart;
        struct device_node *np;
@@ -468,19 +444,8 @@ static int aspeed_vuart_probe(struct platform_device *pdev)
 
        vuart->line = rc;
 
-       rc = of_parse_phandle_with_fixed_args(
-               np, "aspeed,sirq-polarity-sense", 2, 0,
-               &sirq_polarity_sense_args);
-       if (rc < 0) {
-               dev_dbg(&pdev->dev,
-                       "aspeed,sirq-polarity-sense property not found\n");
-       } else {
-               aspeed_vuart_auto_configure_sirq_polarity(
-                       vuart, sirq_polarity_sense_args.np,
-                       sirq_polarity_sense_args.args[0],
-                       BIT(sirq_polarity_sense_args.args[1]));
-               of_node_put(sirq_polarity_sense_args.np);
-       }
+       if (of_property_read_bool(np, "aspeed,sirq-active-high"))
+               aspeed_vuart_set_sirq_polarity(vuart, 1);
 
        aspeed_vuart_set_enabled(vuart, true);
        aspeed_vuart_set_host_tx_discard(vuart, true);
diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig
index 603137da4736..105a325bcdd1 100644
--- a/drivers/tty/serial/8250/Kconfig
+++ b/drivers/tty/serial/8250/Kconfig
@@ -254,7 +254,6 @@ config SERIAL_8250_ASPEED_VUART
        tristate "Aspeed Virtual UART"
        depends on SERIAL_8250
        depends on OF
-       depends on REGMAP && MFD_SYSCON
        help
          If you want to use the virtual UART (VUART) device on Aspeed
          BMC platforms, enable this option. This enables the 16550A-
-- 
2.31.1

Reply via email to