[PATCH v4 3/3] PCI: imx6: Add support for i.MX6 PCIe controller
Jingoo Han
jg1.han at samsung.com
Mon Sep 16 02:22:37 EDT 2013
On Friday, September 13, 2013 6:40 PM, Sean Cross wrote:
>
> Add support for the PCIe port present on the i.MX6 family of controllers.
> These use the Synopsis Designware core tied to their own PHY.
>
> Signed-off-by: Sean Cross <xobs at kosagi.com>
It looks good. :-)
But, I added some minor comments.
> ---
> .../devicetree/bindings/pci/designware-pcie.txt | 5 +
> arch/arm/boot/dts/imx6qdl.dtsi | 16 +
> arch/arm/mach-imx/Kconfig | 2 +
> arch/arm/mach-imx/clk-imx6q.c | 11 +
> drivers/pci/host/Kconfig | 6 +
> drivers/pci/host/Makefile | 1 +
> drivers/pci/host/pci-imx6.c | 482 ++++++++++++++++++++
> 7 files changed, 523 insertions(+)
> create mode 100644 drivers/pci/host/pci-imx6.c
[.....]
> diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
> index 679d49a..0a2093c 100644
> --- a/arch/arm/mach-imx/clk-imx6q.c
> +++ b/arch/arm/mach-imx/clk-imx6q.c
> @@ -622,6 +622,17 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
> if (ret)
> pr_warn("failed to set up CLKO: %d\n", ret);
>
> + /*
> + * All existing boards with PCIe run them off LVDS1
> + */
> + if (IS_ENABLED(CONFIG_PCI_IMX6)) {
> + clk_set_parent(clk[lvds1_sel], clk[sata_ref]);
> + clk_prepare_enable(clk[lvds1_gate]);
> + clk_prepare_enable(clk[pcie_ref_125m]);
> + clk_prepare_enable(clk[pcie_axi]);
> + }
Please use tab instead of spaces.
> +
> +
Please remove a duplicated line.
[.....]
> +#include <linux/delay.h>
> +#include <linux/gpio.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/of_gpio.h>
> +#include <linux/pci.h>
> +#include <linux/platform_device.h>
> +#include <linux/resource.h>
> +#include <linux/signal.h>
> +#include <linux/types.h>
> +#include <linux/regmap.h>
> +#include <linux/mfd/syscon.h>
> +#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
If possible, please re-order in alphabetical order.
[.....]
> +static void imx6_pcie_host_init(struct pcie_port *pp)
> +{
> + int count = 0;
> + struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp);
> +
> + imx6_pcie_assert_core_reset(pp);
> +
> + imx6_pcie_init_phy(pp);
> +
> + imx6_pcie_deassert_core_reset(pp);
> +
> + dw_pcie_setup_rc(pp);
> +
> + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12,
> + IMX6Q_GPR12_PCIE_CTL_2, 1 << 10);
> +
> + while (!dw_pcie_link_up(pp)) {
> + usleep_range(100, 1000);
> + count++;
> + if (count >= 10) {
> + dev_err(pp->dev, "phy link never came up\n");
> + dev_dbg(pp->dev,"DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n",
Please insert space between pp->dev, and "DEBUG_R0 in order to fix the following
checkpatch error.
ERROR: space required after that ',' (ctx:VxV)
#407: FILE: drivers/pci/host/pci-imx6.c:276:
+ dev_dbg(pp->dev,"DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n",
Best regards,
Jingoo Han
More information about the linux-arm-kernel
mailing list