PCI: rockchip: Make 'ep-gpios' DT property optional
authorChen-Yu Tsai <wens@csie.org>
Thu, 21 Jan 2021 16:23:18 +0000 (00:23 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Mar 2021 10:38:18 +0000 (11:38 +0100)
[ Upstream commit 58adbfb3ebec460e8b58875c682bafd866808e80 ]

The Rockchip PCIe controller DT binding clearly states that 'ep-gpios' is
an optional property. And indeed there are boards that don't require it.

Make the driver follow the binding by using devm_gpiod_get_optional()
instead of devm_gpiod_get().

[bhelgaas: tidy whitespace]
Link: https://lore.kernel.org/r/20210121162321.4538-2-wens@kernel.org
Fixes: e77f847df54c ("PCI: rockchip: Add Rockchip PCIe controller support")
Fixes: 956cd99b35a8 ("PCI: rockchip: Separate common code from RC driver")
Fixes: 964bac9455be ("PCI: rockchip: Split out rockchip_pcie_parse_dt() to parse DT")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pci/controller/pcie-rockchip.c

index 904dec0..990a00e 100644 (file)
@@ -82,7 +82,7 @@ int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
        }
 
        rockchip->mgmt_sticky_rst = devm_reset_control_get_exclusive(dev,
-                                                                    "mgmt-sticky");
+                                                               "mgmt-sticky");
        if (IS_ERR(rockchip->mgmt_sticky_rst)) {
                if (PTR_ERR(rockchip->mgmt_sticky_rst) != -EPROBE_DEFER)
                        dev_err(dev, "missing mgmt-sticky reset property in node\n");
@@ -118,11 +118,11 @@ int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
        }
 
        if (rockchip->is_rc) {
-               rockchip->ep_gpio = devm_gpiod_get(dev, "ep", GPIOD_OUT_HIGH);
-               if (IS_ERR(rockchip->ep_gpio)) {
-                       dev_err(dev, "missing ep-gpios property in node\n");
-                       return PTR_ERR(rockchip->ep_gpio);
-               }
+               rockchip->ep_gpio = devm_gpiod_get_optional(dev, "ep",
+                                                           GPIOD_OUT_HIGH);
+               if (IS_ERR(rockchip->ep_gpio))
+                       return dev_err_probe(dev, PTR_ERR(rockchip->ep_gpio),
+                                            "failed to get ep GPIO\n");
        }
 
        rockchip->aclk_pcie = devm_clk_get(dev, "aclk");