]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: serial: restyle the serial_rockchip.c driver
authorJohan Jonker <jbx6244@gmail.com>
Sat, 9 Apr 2022 16:55:10 +0000 (18:55 +0200)
committerKever Yang <kever.yang@rock-chips.com>
Mon, 18 Apr 2022 03:25:13 +0000 (11:25 +0800)
The ns16550.c driver has the following conditions for .of_match:

CONFIG_IS_ENABLED(OF_REAL)

For Rockchip SoCs with TPL/SPL and platform data that need serial
support the serial_rockchip.c driver was made. It copies this data
and then calls ns16550_serial_probe(). With the addition of yet an other
SoC type this driver is in need for a little restyle.
Simplify struct rockchip_uart_plat and add extra SoCs with
DM_DRIVER_ALIAS(). Return -ENODEV when the ns16550.c driver
probe function is available.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
drivers/serial/serial_rockchip.c

index 97d40869a2a37d07274dc613a100a4d79fc80807..f5ac705f4dee2b39cf89b9df36cbd5ef2eaa5a63 100644 (file)
 #include <asm/arch-rockchip/clock.h>
 #include <dm/device-internal.h>
 
-#if defined(CONFIG_ROCKCHIP_RK3188)
-struct rockchip_uart_plat {
-       struct dtd_rockchip_rk3188_uart dtplat;
-       struct ns16550_plat plat;
-};
-struct dtd_rockchip_rk3188_uart *dtplat, s_dtplat;
-#elif defined(CONFIG_ROCKCHIP_RK3288)
 struct rockchip_uart_plat {
+#if CONFIG_IS_ENABLED(OF_PLATDATA)
        struct dtd_rockchip_rk3288_uart dtplat;
+#endif
        struct ns16550_plat plat;
 };
+
+#if CONFIG_IS_ENABLED(OF_PLATDATA)
 struct dtd_rockchip_rk3288_uart *dtplat, s_dtplat;
 #endif
 
 static int rockchip_serial_probe(struct udevice *dev)
 {
+#if CONFIG_IS_ENABLED(OF_PLATDATA)
        struct rockchip_uart_plat *plat = dev_get_plat(dev);
 
        /* Create some new platform data for the standard driver */
@@ -38,24 +36,19 @@ static int rockchip_serial_probe(struct udevice *dev)
        dev_set_plat(dev, &plat->plat);
 
        return ns16550_serial_probe(dev);
+#else
+       return -ENODEV;
+#endif
 }
 
-U_BOOT_DRIVER(rockchip_rk3188_uart) = {
-       .name   = "rockchip_rk3188_uart",
-       .id     = UCLASS_SERIAL,
-       .priv_auto      = sizeof(struct ns16550),
-       .plat_auto      = sizeof(struct rockchip_uart_plat),
-       .probe  = rockchip_serial_probe,
-       .ops    = &ns16550_serial_ops,
-       .flags  = DM_FLAG_PRE_RELOC,
-};
-
 U_BOOT_DRIVER(rockchip_rk3288_uart) = {
-       .name   = "rockchip_rk3288_uart",
-       .id     = UCLASS_SERIAL,
+       .name           = "rockchip_rk3288_uart",
+       .id             = UCLASS_SERIAL,
        .priv_auto      = sizeof(struct ns16550),
        .plat_auto      = sizeof(struct rockchip_uart_plat),
-       .probe  = rockchip_serial_probe,
-       .ops    = &ns16550_serial_ops,
-       .flags  = DM_FLAG_PRE_RELOC,
+       .probe          = rockchip_serial_probe,
+       .ops            = &ns16550_serial_ops,
+       .flags          = DM_FLAG_PRE_RELOC,
 };
+DM_DRIVER_ALIAS(rockchip_rk3288_uart, rockchip_rk3066_uart)
+DM_DRIVER_ALIAS(rockchip_rk3288_uart, rockchip_rk3188_uart)