[PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd
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
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
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