imx: ventana: add support for GW54xx-G revision
authorTim Harvey <tharvey@gateworks.com>
Sat, 24 Jul 2021 17:40:46 +0000 (10:40 -0700)
committerStefano Babic <sbabic@denx.de>
Mon, 9 Aug 2021 12:46:50 +0000 (14:46 +0200)
The GW54xx-G revision has the foolowing changes:
 - replaces the EOL GbE PHY with an updated part (requires an enable pin)
 - replaces the EOL analog video decoder with an updated part
   (requires dt prop)
 - add power control to miniPCIe socket

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
board/gateworks/gw_ventana/common.c

index ca24d2e..2be921f 100644 (file)
@@ -256,6 +256,10 @@ static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
        IOMUX_PADS(PAD_SD3_DAT4__GPIO7_IO01 | DIO_PAD_CFG),
        /* PCIESKT_WDIS# */
        IOMUX_PADS(PAD_DISP0_DAT23__GPIO5_IO17 | DIO_PAD_CFG),
+       /* J7_PWREN */
+       IOMUX_PADS(PAD_EIM_DA15__GPIO3_IO15 | DIO_PAD_CFG),
+       /* PCIEGBE_EN */
+       IOMUX_PADS(PAD_EIM_DA14__GPIO3_IO14 | DIO_PAD_CFG),
 };
 
 static iomux_v3_cfg_t const gw551x_gpio_pads[] = {
@@ -1236,6 +1240,12 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info)
                gpio_request(IMX_GPIO_NR(3, 14), "gbe_en");
                gpio_direction_output(IMX_GPIO_NR(3, 14), 1);
                break;
+       case GW54xx:
+               gpio_request(IMX_GPIO_NR(3, 15), "j7_pwren");
+               gpio_direction_output(IMX_GPIO_NR(3, 15), 1);
+               gpio_request(IMX_GPIO_NR(3, 14), "gbe_en");
+               gpio_direction_output(IMX_GPIO_NR(3, 14), 1);
+               break;
        case GW560x:
                gpio_request(IMX_GPIO_NR(4, 26), "12p0_en");
                gpio_direction_output(IMX_GPIO_NR(4, 26), 1);
@@ -1677,6 +1687,15 @@ void ft_early_fixup(void *blob, int board_type)
                /* GW54xx-E adds WDOG2_B external reset */
                if (rev < 'E')
                        ft_board_wdog_fixup(blob, WDOG2_ADDR);
+
+               /* GW54xx-G has an adv7280 instead of an adv7180 */
+               else if (rev > 'F') {
+                       i = fdt_node_offset_by_compatible(blob, -1, "adi,adv7180");
+                       if (i) {
+                               fdt_setprop_string(blob, i, "compatible", "adi,adv7280");
+                               fdt_setprop_empty(blob, i, "adv,force-bt656-4");
+                       }
+               }
                break;
 
        case GW551x: