aboutsummaryrefslogtreecommitdiff
path: root/drivers/pci/pcie_dw_rockchip.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/pcie_dw_rockchip.c')
-rw-r--r--drivers/pci/pcie_dw_rockchip.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/pcie_dw_rockchip.c b/drivers/pci/pcie_dw_rockchip.c
index 8b0f0c8..6da6180 100644
--- a/drivers/pci/pcie_dw_rockchip.c
+++ b/drivers/pci/pcie_dw_rockchip.c
@@ -42,6 +42,7 @@ struct rk_pcie {
struct clk_bulk clks;
struct reset_ctl_bulk rsts;
struct gpio_desc rst_gpio;
+ u32 gen;
};
/* Parameters for the waiting for iATU enabled routine */
@@ -331,7 +332,7 @@ static int rockchip_pcie_init_port(struct udevice *dev)
rk_pcie_writel_apb(priv, 0x0, 0xf00040);
pcie_dw_setup_host(&priv->dw);
- ret = rk_pcie_link_up(priv, LINK_SPEED_GEN_3);
+ ret = rk_pcie_link_up(priv, priv->gen);
if (ret < 0)
goto err_link_up;
@@ -397,6 +398,9 @@ static int rockchip_pcie_parse_dt(struct udevice *dev)
goto rockchip_pcie_parse_dt_err_phy_get_by_index;
}
+ priv->gen = dev_read_u32_default(dev, "max-link-speed",
+ LINK_SPEED_GEN_3);
+
return 0;
rockchip_pcie_parse_dt_err_phy_get_by_index:
@@ -468,6 +472,7 @@ static const struct dm_pci_ops rockchip_pcie_ops = {
static const struct udevice_id rockchip_pcie_ids[] = {
{ .compatible = "rockchip,rk3568-pcie" },
+ { .compatible = "rockchip,rk3588-pcie" },
{ }
};