[PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd

2013-01-29 Thread Gary Zhang
in imx6q sabresd board, wm8962 uses CKO1 as MCLK. set ahb as CKO1
parent clock source

Signed-off-by: Gary Zhang 
---
 arch/arm/mach-imx/mach-imx6q.c |   32 
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index 4eb1b3a..ee3f357 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -151,6 +151,36 @@ static void __init imx6q_sabrelite_init(void)
imx6q_sabrelite_cko1_setup();
 }
 
+static void __init imx6q_sabresd_cko1_setup(void)
+{
+   struct clk *cko1_sel, *ahb, *cko1;
+   unsigned long rate;
+
+   cko1_sel = clk_get_sys(NULL, "cko1_sel");
+   ahb = clk_get_sys(NULL, "ahb");
+   cko1 = clk_get_sys(NULL, "cko1");
+   if (IS_ERR(cko1_sel) || IS_ERR(ahb) || IS_ERR(cko1)) {
+   pr_err("cko1 setup failed!\n");
+   goto put_clk;
+   }
+   clk_set_parent(cko1_sel, ahb);
+   rate = clk_round_rate(cko1, 2400);
+   clk_set_rate(cko1, rate);
+
+   return;
+put_clk:
+   if (!IS_ERR(cko1_sel))
+   clk_put(cko1_sel);
+   if (!IS_ERR(ahb))
+   clk_put(ahb);
+   if (!IS_ERR(cko1))
+   clk_put(cko1);
+}
+static void __init imx6q_sabresd_init(void)
+{
+   imx6q_sabresd_cko1_setup();
+}
+
 static void __init imx6q_1588_init(void)
 {
struct regmap *gpr;
@@ -193,6 +223,8 @@ static void __init imx6q_init_machine(void)
 {
if (of_machine_is_compatible("fsl,imx6q-sabrelite"))
imx6q_sabrelite_init();
+   else if (of_machine_is_compatible("fsl,imx6q-sabresd"))
+   imx6q_sabresd_init();
 
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 
-- 
1.7.0.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/4] ARM: dts: add support for wm8962 in imx6q sabresd

2013-01-29 Thread Gary Zhang
to support for wm8962, add I2C/I2S/clk/fixed regulator and
other related supports

Signed-off-by: Gary Zhang 
---
 arch/arm/boot/dts/imx6q-sabresd.dts |   76 +++
 arch/arm/boot/dts/imx6q.dtsi|   23 ++
 2 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/imx6q-sabresd.dts 
b/arch/arm/boot/dts/imx6q-sabresd.dts
index a424025..383fcf0 100644
--- a/arch/arm/boot/dts/imx6q-sabresd.dts
+++ b/arch/arm/boot/dts/imx6q-sabresd.dts
@@ -29,6 +29,10 @@
pinctrl-0 = <&pinctrl_uart1_1>;
status = "okay";
};
+   ssi2: ssi@0202c000 {
+   fsl,mode = "i2s-slave";
+   status = "okay";
+   };
};
 
iomuxc@020e {
@@ -73,6 +77,33 @@
wp-gpios = <&gpio2 1 0>;
status = "okay";
};
+
+   audmux@021d8000 {
+   status = "okay";
+   pinctrl-names = "default";
+   pinctrl-0 = <&pinctrl_audmux_2>;
+   };
+
+   i2c@021a { /* I2C1 */
+   status = "okay";
+   clock-frequency = <10>;
+   pinctrl-names = "default";
+   pinctrl-0 = <&pinctrl_i2c1_2>;
+
+   codec: wm8962@1a {
+   compatible = "fsl,wm8962";
+   reg = <0x1a>;
+   clocks = <&clks 169>;
+   DCVDD-supply = <®_1p8v>;
+   DBVDD-supply = <®_1p8v>;
+   AVDD-supply = <®_1p8v>;
+   CPVDD-supply = <®_1p8v>;
+   MICVDD-supply = <®_3p3v>;
+   PLLVDD-supply = <®_1p8v>;
+   SPKVDD1-supply = <®_4p2v>;
+   SPKVDD2-supply = <®_4p2v>;
+   };
+   };
};
};
 
@@ -91,4 +122,49 @@
linux,code = <114>; /* KEY_VOLUMEDOWN */
};
};
+   regulators {
+   compatible = "simple-bus";
+
+   reg_1p8v: 1p8v {
+   compatible = "regulator-fixed";
+   regulator-name = "1P8V";
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <180>;
+   regulator-always-on;
+   enable-active-high;
+   };
+   reg_3p3v: 3p3v {
+   compatible = "regulator-fixed";
+   regulator-name = "3P3V";
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-always-on;
+   enable-active-high;
+   };
+   reg_4p2v: 4p2v {
+   compatible = "regulator-fixed";
+   regulator-name = "4P2V";
+   regulator-min-microvolt = <420>;
+   regulator-max-microvolt = <420>;
+   gpio = <&gpio4 10 0>;
+   regulator-always-on;
+   regulator-boot-on;
+   enable-active-high;
+   };
+   };
+
+   sound {
+   compatible = "fsl,imx6q-sabresd-wm8962",
+"fsl,imx-audio-wm8962";
+   model = "imx6q-sabresd-wm8962";
+   pinctrl-names = "default";
+   pinctrl-0 = <&pinctrl_clko_1>;
+   ssi-controller = <&ssi2>;
+   audio-codec = <&codec>;
+   audio-routing =
+   "Headphone Jack", "HPOUTL",
+   "Headphone Jack", "HPOUTR";
+   mux-int-port = <2>;
+   mux-ext-port = <3>;
+   };
 };
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index d6265ca

[PATCH] i.MX: DMA: add firmware for i.mx6 series

2013-01-07 Thread Gary Zhang
SDMA uses firmware to expand some features for modules.
add SDMA firmware for i.mx6 series,

Signed-off-by: Gary Zhang 
---
 firmware/Makefile |1 +
 firmware/imx/sdma/sdma-imx6q-to1.bin.ihex |  116 +
 2 files changed, 117 insertions(+), 0 deletions(-)
 create mode 100755 firmware/imx/sdma/sdma-imx6q-to1.bin.ihex

diff --git a/firmware/Makefile b/firmware/Makefile
index cbb09ce..b6170f3 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -61,6 +61,7 @@ fw-shipped-$(CONFIG_DRM_RADEON) += radeon/R100_cp.bin 
radeon/R200_cp.bin \
   radeon/RV770_pfp.bin radeon/RV770_me.bin \
   radeon/RV730_pfp.bin radeon/RV730_me.bin \
   radeon/RV710_pfp.bin radeon/RV710_me.bin
+fw-shipped-$(CONFIG_SOC_IMX6Q) += imx/sdma/sdma-imx6q-to1.bin
 fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin
 fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
 fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
diff --git a/firmware/imx/sdma/sdma-imx6q-to1.bin.ihex 
b/firmware/imx/sdma/sdma-imx6q-to1.bin.ihex
new file mode 100755
index 000..2e561f0
--- /dev/null
+++ b/firmware/imx/sdma/sdma-imx6q-to1.bin.ihex
@@ -0,0 +1,116 @@
+:100053444D41010001001C00AD
+:100010002600B4007A06820202
+:10002000DC
+:10003000D0
+:100040006A1A38
+:10005000EB02BB180804D8
+:10006000C003D9
+:10007000AB027B035D
+:100080004C046E04B6
+:10009000001854
+:1000A0186218161A8E
+:1000B61BE3C1DB57E35FE357F352016A1D
+:1000C0008F00D500017D8D00A005EB5D7804037DD8
+:1000D00079042C7D367C79041F7CEE56000F600677
+:1000E57D0965437E0A62417E20980A623E7E54
+:1000F9653C7E12051205AD026007037DFB55C4
+:1001D36D2B98FB55041DD36DC86A2F7F011F3B
+:100113200048E47C5398FB55D76D1500057803
+:10012962C86A0962C86AD76D5298FB55D76DD3
+:100130001500150005780A62C86A0A62C86AD76D98
+:100140005298FB55D76D15001500150005780B6208
+:10015000C86A0B62C86AD76D097CDF6D077F33
+:10016000EB55004D077DFAC1E35706980700CC68B0
+:10017C6813C20AC20398D9C1E3C1DB57E35F1D
+:10018000E357F352216A8F00D500017D8D00A00551
+:10019000EB5DFB567804037D79042A7D317C79047C
+:1001A000207C700B1103EB53000F6003057D096584
+:1001B000377E0A62357E86980A62327E0965307E15
+:1001C00012051205AD026007027C065A8E98265A67
+:1001D000277F011F03200048E87C700B1103135395
+:1001E000AF98150004780962065A0962265AAE983B
+:1001F0001500150004780A62065A0A62265AAE985B
+:100215001500150004780B62065A0B62265A79
+:1002177CEB55004D067DFAC1E357699855
+:100227000C6813C20AC26698700B11031353BF
+:100230006C07017CD9C1FB5E8A066B07017CD9C1C2
+:10024000F35EDB59D3588F0110010F398B003CC18D
+:100250002B7DC05AC85B4EC1277C88038906E35CAE
+:10026000FF0D1105FF1DBC053E07004D187D7008F0
+:1002700011007E07097D7D07027D2852E698F8521D
+:10028000DB54BC02CC02097C7C07027D2852EF982B
+:10029000F852D354BC02CC02097D0004DD988B00D7
+:1002A000C052C85359C1D67D0002CD98FF08BF0087
+:1002B0007F07157D8804D500017D8D00A005EB5DCD
+:1002C0008F0212021202FF3ADA05027C3E071899E9
+:1002D000A402DD02027D3E0718995E071899EB55CE
+:1002E0009805EB5DF352FB546A07267D6C07017D90
+:1002F00055996B07577C6907047D6807027D010EDD
+:10032F999358D600017D8E009355A005935DDB
+:10031000A00602780255045D1D7C004E087C69072A
+:1003237D0255177E3C99045D147F8906935026
+:10033048017D2799A099150006780255045DB3
+:100340004F070255245D2F07017CA09917006F0706
+:1003517C012093559D000700A7D9F598D36C27
+:100360006907047D6807027D010E64999358D600E1
+:1003717D8E009355A005935DA006027802557D
+:10038000C86D0F7C004E087C6907037D0255097E0D
+:100390007199C86D067F890693500048017D5C996C
+:1003A000A0999A99C36A6907047D6807027D010EC6
+:1003B00087999358D600017D8E009355A005935DD3
+:1003C000A0060278C865045D0F7C004E087C6907B2
+:1003D37DC865097E9499045D067F8906935064
+:1003E048017D7F99A09993559D000700FF6CFF
+:1003F000A7D9F598E354EB55004D017CF59822
+:1004DD98E354EB55FF0A1102FF1A7F07027CC7
+:10041000A005B4999D008C05BA05A0051002BA0488
+:10042000AD0454040600E3C1DB57FB52C36AF35228
+:1004356A8F00D500017D8D00A005EB5D780475
+:1004437D79042B7D1E7C7904337CEE56000FEE
+:10045000FB556007027DC36DD599041DC36DC8624D
+:100460003B7E6006027D10021202096A357F12028D
+:1004796A327F1202096A2F7F011F0320004898
+:10048000E77C099AFB55C76D150015001500057826
+:10049000C8620B6AC8620B6AC76D089AFB55C76DC4
+:1004A000150015000578C8620A6AC8620A6AC76D35
+:1004B89AFB55C76D15000578C862096AC862BD
+:1004C96AC76D097C286A077FEB55004D5B
+:1004D57DFAC1DB57BF9977C254040AC2BA99A5
+:1004E000D9C1E3C1DB57F352056A8F00D500017D06
+:1004F0008D00A005FB567804037D7904297D1F7CBF
+:100579042E7CE35D700D1105ED55000F600739