summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/apalis_imx6_android_defconfig17
-rw-r--r--arch/arm/configs/colibri-imx6ull_defconfig3
-rw-r--r--arch/arm/mach-imx/mach-imx6q.c37
3 files changed, 53 insertions, 4 deletions
diff --git a/arch/arm/configs/apalis_imx6_android_defconfig b/arch/arm/configs/apalis_imx6_android_defconfig
index a0769007aed2..74b32c18dd33 100644
--- a/arch/arm/configs/apalis_imx6_android_defconfig
+++ b/arch/arm/configs/apalis_imx6_android_defconfig
@@ -329,7 +329,7 @@ CONFIG_HAVE_IMX_SRC=y
#
# CONFIG_SOC_IMX53 is not set
CONFIG_SOC_IMX6Q=y
-CONFIG_SOC_IMX6SL=y
+# CONFIG_SOC_IMX6SL is not set
# CONFIG_SOC_VF610 is not set
# CONFIG_ARCH_OMAP2PLUS is not set
# CONFIG_ARCH_SOCFPGA is not set
@@ -419,8 +419,8 @@ CONFIG_PCIE_DW=y
CONFIG_PCI_IMX6=y
CONFIG_PCI_FORCE_GEN1=y
# CONFIG_EP_MODE_IN_EP_RC_SYS is not set
-CONFIG_RC_MODE_IN_EP_RC_SYS=y
-CONFIG_PCI_IMX_EP_DRV=y
+# CONFIG_RC_MODE_IN_EP_RC_SYS is not set
+# CONFIG_PCI_IMX_EP_DRV is not set
# CONFIG_PCCARD is not set
#
@@ -2074,7 +2074,7 @@ CONFIG_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
CONFIG_PINCTRL_IMX=y
CONFIG_PINCTRL_IMX6Q=y
-CONFIG_PINCTRL_IMX6SL=y
+# CONFIG_PINCTRL_IMX6SL is not set
# CONFIG_PINCTRL_SINGLE is not set
# CONFIG_PINCTRL_EXYNOS is not set
# CONFIG_PINCTRL_EXYNOS5440 is not set
@@ -3490,6 +3490,15 @@ CONFIG_DMA_OF=y
# CONFIG_VIRT_DRIVERS is not set
#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+
+#
# Virtio drivers
#
# CONFIG_VIRTIO_PCI is not set
diff --git a/arch/arm/configs/colibri-imx6ull_defconfig b/arch/arm/configs/colibri-imx6ull_defconfig
index 898c03f6a736..ecb8d20ac48d 100644
--- a/arch/arm/configs/colibri-imx6ull_defconfig
+++ b/arch/arm/configs/colibri-imx6ull_defconfig
@@ -103,8 +103,11 @@ CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_PRIV=y
CONFIG_RFKILL=y
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index c0e3928d5f73..2eb8ac385e73 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -101,6 +101,14 @@ static void mmd_write_reg(struct phy_device *dev, int device, int reg, int val)
phy_write(dev, 0x0e, val);
}
+static int mmd_read_reg(struct phy_device *dev, int device, int reg)
+{
+ phy_write(dev, 0x0d, device);
+ phy_write(dev, 0x0e, reg);
+ phy_write(dev, 0x0d, (1 << 14) | device);
+ return phy_read(dev, 0x0e);
+}
+
static int ksz9031rn_phy_fixup(struct phy_device *dev)
{
/*
@@ -114,6 +122,33 @@ static int ksz9031rn_phy_fixup(struct phy_device *dev)
return 0;
}
+#define KSZ9131_RXTXDLL_BYPASS 12
+
+static int ksz9131rn_phy_fixup(struct phy_device *dev)
+{
+ int tmp;
+
+ tmp = mmd_read_reg(dev, 2, 0x4c);
+ /* disable rxdll bypass (enable 2ns skew delay on RXC) */
+ tmp &= ~(1 << KSZ9131_RXTXDLL_BYPASS);
+ mmd_write_reg(dev, 2, 0x4c, tmp);
+
+ tmp = mmd_read_reg(dev, 2, 0x4d);
+ /* disable txdll bypass (enable 2ns skew delay on TXC) */
+ tmp &= ~(1 << KSZ9131_RXTXDLL_BYPASS);
+ mmd_write_reg(dev, 2, 0x4d, tmp);
+
+ /*
+ * Subtract ~0.6ns from txdll = ~1.4ns delay.
+ * leave RXC path untouched
+ */
+ mmd_write_reg(dev, 2, 4, 0x007d);
+ mmd_write_reg(dev, 2, 6, 0xdddd);
+ mmd_write_reg(dev, 2, 8, 0x0007);
+
+ return 0;
+}
+
/*
* fixup for PLX PEX8909 bridge to configure GPIO1-7 as output High
* as they are used for slots1-7 PERST#
@@ -219,6 +254,8 @@ static void __init imx6q_enet_phy_init(void)
ksz9021rn_phy_fixup);
phy_register_fixup_for_uid(PHY_ID_KSZ9031, MICREL_PHY_ID_MASK,
ksz9031rn_phy_fixup);
+ phy_register_fixup_for_uid(PHY_ID_KSZ9131, MICREL_PHY_ID_MASK,
+ ksz9131rn_phy_fixup);
phy_register_fixup_for_uid(PHY_ID_AR8031, 0xffffffef,
ar8031_phy_fixup);
phy_register_fixup_for_uid(PHY_ID_AR8035, 0xffffffef,