forked from luck/tmp_suning_uos_patched
The imx fixes for 3.12:
* A couple of clock driver and device tree fixes * A bug fix for clk-fixup-mux to get imx6sl back to boot * A L2 cache setting fix for imx6q * One pinctrl macro fix for UART2 DTE entries -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAABAgAGBQJSOHJ2AAoJEFBXWFqHsHzOC/kIAK4Usv+HBpiGmE53S1GpZ6fZ bsVokOUMyEa8bioF5tHJyK+TNhWkT3I8I7VolhQMhkDkmVctVmGHHGBffP4rS3Zi iP1z+DXgatRLXpWCeuSN4iXaUuw9eA9/agt3H9NEhPT/uZtaTO6AoWDNPzoxaA+e SiU+g/t1sQGTfz0J7NS9WOBTjesElTgrO+iJRSicvRrBDRS+mr38b4TbLrec7ZZ9 GTpa1bFwuq0D99iaV4W8fJuo6mYaDTb2yX2PTdB9hTl1A5f9vp64ccHDgY5pwo2+ EUNpGG3UdGjk0DXKc2lIDI/nVUKfrWUKOn8WP+Kj90Kvco8jFi4QdqKNzbjHCsE= =NCVi -----END PGP SIGNATURE----- Merge tag 'imx-fixes-3.12' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes From Shawn Guo, imx fixes for 3.12: * A couple of clock driver and device tree fixes * A bug fix for clk-fixup-mux to get imx6sl back to boot * A L2 cache setting fix for imx6q * One pinctrl macro fix for UART2 DTE entries * tag 'imx-fixes-3.12' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: dts: imx6q: fix the wrong offset of the Pad Mux register ARM: imx: i.mx6d/q: disable the double linefill feature of PL310 ARM: imx51.dtsi: fix PATA device clock ARM: mach-imx: clk-imx51-imx53: Fix 'spdif1_pred' clock registration ARM: imx: initialize clk_init_data.flags for clk-fixup-mux ARM: imx27.dtsi: fix CSPI PER clock id Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
ab5c3b6b51
@ -187,7 +187,7 @@ cspi1: cspi@1000e000 {
|
||||
compatible = "fsl,imx27-cspi";
|
||||
reg = <0x1000e000 0x1000>;
|
||||
interrupts = <16>;
|
||||
clocks = <&clks 53>, <&clks 53>;
|
||||
clocks = <&clks 53>, <&clks 60>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
@ -198,7 +198,7 @@ cspi2: cspi@1000f000 {
|
||||
compatible = "fsl,imx27-cspi";
|
||||
reg = <0x1000f000 0x1000>;
|
||||
interrupts = <15>;
|
||||
clocks = <&clks 52>, <&clks 52>;
|
||||
clocks = <&clks 52>, <&clks 60>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
@ -309,7 +309,7 @@ cspi3: cspi@10017000 {
|
||||
compatible = "fsl,imx27-cspi";
|
||||
reg = <0x10017000 0x1000>;
|
||||
interrupts = <6>;
|
||||
clocks = <&clks 51>, <&clks 51>;
|
||||
clocks = <&clks 51>, <&clks 60>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -474,7 +474,7 @@ pata: pata@83fe0000 {
|
||||
compatible = "fsl,imx51-pata", "fsl,imx27-pata";
|
||||
reg = <0x83fe0000 0x4000>;
|
||||
interrupts = <70>;
|
||||
clocks = <&clks 161>;
|
||||
clocks = <&clks 172>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -207,8 +207,8 @@
|
||||
#define MX6QDL_PAD_EIM_D29__ECSPI4_SS0 0x0c8 0x3dc 0x824 0x2 0x1
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x0c8 0x3dc 0x924 0x4 0x1
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_CTS_B 0x0c8 0x3dc 0x000 0x4 0x0
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x0c4 0x3dc 0x000 0x4 0x0
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x0c4 0x3dc 0x924 0x4 0x1
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x0c8 0x3dc 0x000 0x4 0x0
|
||||
#define MX6QDL_PAD_EIM_D29__UART2_DTE_CTS_B 0x0c8 0x3dc 0x924 0x4 0x1
|
||||
#define MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x0c8 0x3dc 0x000 0x5 0x0
|
||||
#define MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x0c8 0x3dc 0x8e4 0x6 0x0
|
||||
#define MX6QDL_PAD_EIM_D29__IPU1_DI0_PIN14 0x0c8 0x3dc 0x000 0x7 0x0
|
||||
|
@ -90,6 +90,7 @@ struct clk *imx_clk_fixup_mux(const char *name, void __iomem *reg,
|
||||
init.ops = &clk_fixup_mux_ops;
|
||||
init.parent_names = parents;
|
||||
init.num_parents = num_parents;
|
||||
init.flags = 0;
|
||||
|
||||
fixup_mux->mux.reg = reg;
|
||||
fixup_mux->mux.shift = shift;
|
||||
|
@ -397,7 +397,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
|
||||
mx51_spdif_xtal_sel, ARRAY_SIZE(mx51_spdif_xtal_sel));
|
||||
clk[spdif1_sel] = imx_clk_mux("spdif1_sel", MXC_CCM_CSCMR2, 2, 2,
|
||||
spdif_sel, ARRAY_SIZE(spdif_sel));
|
||||
clk[spdif1_pred] = imx_clk_divider("spdif1_podf", "spdif1_sel", MXC_CCM_CDCDR, 16, 3);
|
||||
clk[spdif1_pred] = imx_clk_divider("spdif1_pred", "spdif1_sel", MXC_CCM_CDCDR, 16, 3);
|
||||
clk[spdif1_podf] = imx_clk_divider("spdif1_podf", "spdif1_pred", MXC_CCM_CDCDR, 9, 6);
|
||||
clk[spdif1_com_sel] = imx_clk_mux("spdif1_com_sel", MXC_CCM_CSCMR2, 5, 1,
|
||||
mx51_spdif1_com_sel, ARRAY_SIZE(mx51_spdif1_com_sel));
|
||||
|
@ -117,6 +117,17 @@ void __init imx_init_l2cache(void)
|
||||
/* Configure the L2 PREFETCH and POWER registers */
|
||||
val = readl_relaxed(l2x0_base + L2X0_PREFETCH_CTRL);
|
||||
val |= 0x70800000;
|
||||
/*
|
||||
* The L2 cache controller(PL310) version on the i.MX6D/Q is r3p1-50rel0
|
||||
* The L2 cache controller(PL310) version on the i.MX6DL/SOLO/SL is r3p2
|
||||
* But according to ARM PL310 errata: 752271
|
||||
* ID: 752271: Double linefill feature can cause data corruption
|
||||
* Fault Status: Present in: r3p0, r3p1, r3p1-50rel0. Fixed in r3p2
|
||||
* Workaround: The only workaround to this erratum is to disable the
|
||||
* double linefill feature. This is the default behavior.
|
||||
*/
|
||||
if (cpu_is_imx6q())
|
||||
val &= ~(1 << 30 | 1 << 23);
|
||||
writel_relaxed(val, l2x0_base + L2X0_PREFETCH_CTRL);
|
||||
val = L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN;
|
||||
writel_relaxed(val, l2x0_base + L2X0_POWER_CTRL);
|
||||
|
Loading…
Reference in New Issue
Block a user