]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoENGR00278504-2 mmc: sdhci-esdhc-imx: add broken auto cmd23 for imx6q
Dong Aisheng [Thu, 5 Sep 2013 10:30:47 +0000 (18:30 +0800)]
ENGR00278504-2 mmc: sdhci-esdhc-imx: add broken auto cmd23 for imx6q

The auto cmd23 can not work well on imx6q with an eMMC cards.
The error message is:
mmc0: Timeout waiting for hardware interrupt

The root cause is still unkown.
This is a workaround and the quirk will be removed once we
find the root cause and fix the issue later.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
11 years agoENGR00278504-1 mmc: sdhci: add quirk for broken auto cmd23
Dong Aisheng [Thu, 5 Sep 2013 10:27:18 +0000 (18:27 +0800)]
ENGR00278504-1 mmc: sdhci: add quirk for broken auto cmd23

The auto cmd23 function on some platforms may not work well,
add a quirk to allow them to work without auto cmd23.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
11 years agoENGR00278492 imx: pcie: delay is required after REF_CLK_EN is set
Richard Zhu [Fri, 6 Sep 2013 04:33:31 +0000 (12:33 +0800)]
ENGR00278492 imx: pcie: delay is required after REF_CLK_EN is set

delay is required after REF_CLK_EN of GPR1 is set.
otherwise, system would be hang when access the registers
of PCIe RC when the EARLY_PRINTK is not enabled.

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00277843-04 ARM: dts: Add sii902x in imx6sl evk dts
Sandor Yu [Wed, 4 Sep 2013 07:47:46 +0000 (15:47 +0800)]
ENGR00277843-04 ARM: dts: Add sii902x in imx6sl evk dts

- Add sii902x driver to imx6sl-evk.dts
- Set LCD_RESET pin work in GPIO mode, the pin is not
   use by imx6sl evk lcd panel.
- Enable sii902x in imx_v7_defconfig

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00277843-03 ARM: clk: update imx6sl lcdif clock tree.
Sandor Yu [Wed, 4 Sep 2013 07:46:44 +0000 (15:46 +0800)]
ENGR00277843-03 ARM: clk: update imx6sl lcdif clock tree.

Add CLK_SET_RATE_PARENT flag for IMX6SL_CLK_LCDIF_PIX_SEL.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00277843-02 imx6sl: Enable sii902x hdmi function
Sandor Yu [Wed, 4 Sep 2013 07:45:00 +0000 (15:45 +0800)]
ENGR00277843-02 imx6sl: Enable sii902x hdmi function

- Add sii902x hdmi chip driver.
- Sii902x initialized as I2C device.
- Support resolution change by application or FB command line.
- Max support resolution 1080p60.
- Support read EDID from hdmi sink.
- Support hdmi cable hotplug.
- Support default video mode read from dts.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00277843-01 mxsfb: Allocate frame buffer from DMA pool
Sandor Yu [Wed, 4 Sep 2013 07:40:44 +0000 (15:40 +0800)]
ENGR00277843-01 mxsfb: Allocate frame buffer from DMA pool

- Original frame buffer size is fixed in SZ_2M when driver probing,
  that can not support more resolution, such as 720p and 1080p.
  Add function mxsfb_map_videomem/mxsfb_unmap_videomem to replace
  fixed frame buffer size. Frame buffer size can change with resolution
  change and application requirement.
- Add fb_mmap function implement.
- Remove member variable sync from struct mxsfb_info, align the sync
  definition with mxc_cea_mode[] in mxc_edid.c.
- Set recovery from underflow bit.
- Fix xres_virtual yres_virtual check issue in function mxsfb_check_var().

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00278382 ASoC: fsl: Fix hdmi audio loadable module failure
Nicolin Chen [Thu, 5 Sep 2013 11:53:40 +0000 (19:53 +0800)]
ENGR00278382 ASoC: fsl: Fix hdmi audio loadable module failure

Use platform_device_add() which can pass drvdata correctly: previously
we register the dma_dev first and pass its drvdata, but this would fail
to pass its drvdata correctly when using loadable module, because the
probe() hdmi dma driver would be executed right after the register()
and before set_drvdata(). Then the drvdata actually failed to be set
to the hdmi dma driver. While platform_device_add() has no such issue
because it would finish the set_drvdata() before its execution.

This patch also move codec driver registering into CPU DAI driver.
When using autoload module, the codec driver would alwasy fail to
be detected due to its registering located in manchine driver.
Thus move this to CPU DAI driver.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00278350 gpu:viante 4.6.9p13 kernel part integration
Loren HUANG [Mon, 2 Sep 2013 05:43:59 +0000 (13:43 +0800)]
ENGR00278350 gpu:viante 4.6.9p13 kernel part integration

Integrated 4.6.9p13 kernel part change.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
11 years agoASoC: fsl: Drop SND_SOC_FSL_UTILS from SND_SOC_IMX_SPDIF
Fabio Estevam [Thu, 29 Aug 2013 20:31:41 +0000 (17:31 -0300)]
ASoC: fsl: Drop SND_SOC_FSL_UTILS from SND_SOC_IMX_SPDIF

SND_SOC_FSL_UTILS is only used by PowerPC machines, so let's drop it in the
i.mx case.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: fsl: Add one blank space after ':=' in Makefile
Nicolin Chen [Fri, 30 Aug 2013 09:39:00 +0000 (17:39 +0800)]
ASoC: fsl: Add one blank space after ':=' in Makefile

There is a blank space missing between ':=' and 'imx-spdif.o', thus add it.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: fsl_spdif: Reduce the noise on comments
Fabio Estevam [Fri, 23 Aug 2013 21:14:46 +0000 (18:14 -0300)]
ASoC: fsl_spdif: Reduce the noise on comments

Remove the "====" pattern to let the comments cleaner and more uniform.

Also, do not use multi-line style for a single line comment.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: fsl_spdif: Staticse non-exported symbols
Mark Brown [Sat, 31 Aug 2013 15:40:51 +0000 (16:40 +0100)]
ASoC: fsl_spdif: Staticse non-exported symbols

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Nicolin Chen <B42378@freescale.com>
11 years agoASoC: fsl: Add wrapping for dev_dbg() in fsl_spdif.c
Nicolin Chen [Fri, 30 Aug 2013 09:38:08 +0000 (17:38 +0800)]
ASoC: fsl: Add wrapping for dev_dbg() in fsl_spdif.c

Add wrapping '\n' for dev_dbg() in fsl_spdif.c

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoENGR00277715-9 ARM: dts: Add spdif support for imx6sl-evk
Nicolin Chen [Wed, 4 Sep 2013 10:12:08 +0000 (18:12 +0800)]
ENGR00277715-9 ARM: dts: Add spdif support for imx6sl-evk

Complete spdif devicetree binding for imx6sl, also add its support
for imx6sl-evk board.

Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-8 ARM: dts: Add WM8962 support for imx6sl-evk
Nicolin Chen [Wed, 4 Sep 2013 07:50:53 +0000 (15:50 +0800)]
ENGR00277715-8 ARM: dts: Add WM8962 support for imx6sl-evk

Add WM8962 support for imx6sl-evk:
 * Add missing baud clock for ssi
 * Drop fifo-depth which would cause odd-number watermark
 * Add pinctrl group for audmux on evk board
 * Add WM8962-related devictree binding for evk board

Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-7 ARM: clk: Config audio clocks for imx6sl
Nicolin Chen [Wed, 4 Sep 2013 09:44:40 +0000 (17:44 +0800)]
ENGR00277715-7 ARM: clk: Config audio clocks for imx6sl

* Set extern_audio to 24MHz as audio codec MCLK for WM8962
* Set pll3_pfd3 as spdif's parent

Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-6 ARM: clk: Add missing pll4_audio_div for imx6sl
Nicolin Chen [Wed, 4 Sep 2013 07:49:03 +0000 (15:49 +0800)]
ENGR00277715-6 ARM: clk: Add missing pll4_audio_div for imx6sl

There's a dividor for pll4_audio clock missing in clock tree, thus add it.

Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-5 ARM: clk: Correct pll4_audio_div clock name for imx6q
Nicolin Chen [Wed, 4 Sep 2013 07:46:59 +0000 (15:46 +0800)]
ENGR00277715-5 ARM: clk: Correct pll4_audio_div clock name for imx6q

Use the correct name 'pll4_audio_div' instead of 'pll4_aduio_div'

Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-4 ARM: dts: Add WM8962 jack detecting support for SabreSD
Nicolin Chen [Tue, 3 Sep 2013 11:03:05 +0000 (19:03 +0800)]
ENGR00277715-4 ARM: dts: Add WM8962 jack detecting support for SabreSD

Update devicetree to add WM8962 jack detecting support

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-3 ASoC: fsl: Add WM8962 jack detecting support
Nicolin Chen [Tue, 3 Sep 2013 04:45:05 +0000 (12:45 +0800)]
ENGR00277715-3 ASoC: fsl: Add WM8962 jack detecting support

There're two GPIOs connected to the headphone jack and microphone jack,
thus add the states detection.

Reviewed-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-2 ASoC: fsl: Drop constraint in startup() of ssi driver
Nicolin Chen [Tue, 3 Sep 2013 04:28:41 +0000 (12:28 +0800)]
ENGR00277715-2 ASoC: fsl: Drop constraint in startup() of ssi driver

The constraint would disavow two simultaineous streams, eg: arecord | aplay.

Since the hw_params() have the SSIEN checking, the stccr register would not
be modified during a actual procedure of one stream, we can safely drop this
one in startup().

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277715-1 ASoC: codec: Enable cache-only before power down in probe()
Nicolin Chen [Tue, 3 Sep 2013 04:21:47 +0000 (12:21 +0800)]
ENGR00277715-1 ASoC: codec: Enable cache-only before power down in probe()

We need to enable cache-only for regcache before wm8962 being power-down.

Otherwise some configurations via amixer might be invalid before one stream,
playback or record, actually happens.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00243120 rtc:snvs: support power off system by SNVS
Robin Gong [Mon, 4 Feb 2013 08:20:05 +0000 (16:20 +0800)]
ENGR00243120 rtc:snvs: support power off system by SNVS

Enable the function by SNVS which located in snvs-rtc driver

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00278097-3 ARM: imx: sabreauto: enable USB function
Peter Chen [Wed, 4 Sep 2013 08:45:48 +0000 (16:45 +0800)]
ENGR00278097-3 ARM: imx: sabreauto: enable USB function

Enable OTG and host 1 USB function.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00278097-2 usb: chipidea: imx: Add usb_phy_shutdown at probe's error path
Peter Chen [Wed, 4 Sep 2013 07:06:21 +0000 (15:06 +0800)]
ENGR00278097-2 usb: chipidea: imx: Add usb_phy_shutdown at probe's error path

If not, the PHY will be active even the controller is not in use.
We find this issue due to the PHY's clock refcount is not correct
due to -EPROBE_DEFER return after phy's init.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00278097-1 usb: phy-mxs: Add auto clock and power setting
Peter Chen [Wed, 4 Sep 2013 06:14:47 +0000 (14:14 +0800)]
ENGR00278097-1 usb: phy-mxs: Add auto clock and power setting

With the auto setting, the PHY's clock and power can be
recovered correctly from low power mode, it is ganranteed by IC logic.

Besides, we enable the IC fixes for this PHY at mx6 platform.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00278128 ARM: dts: Add kpp support for i.MX6SL
Anson Huang [Wed, 4 Sep 2013 19:30:29 +0000 (15:30 -0400)]
ENGR00278128 ARM: dts: Add kpp support for i.MX6SL

Add i.MX6SL keyboard feature.
There are 8 keys on i.MX6SL EVK board, enable them.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00278064 arm: dts: Add gpio keyboard support for i.mx6qdl sabreauto board
Anson Huang [Wed, 4 Sep 2013 15:00:04 +0000 (11:00 -0400)]
ENGR00278064 arm: dts: Add gpio keyboard support for i.mx6qdl sabreauto board

Add gpio keyboard support for i.mx6qdl sabreauto board,
they are home, back, program, vol+ and vol-.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277955-2 rtc: rtc-snvs: support wakeup system from freeze mode
Anson Huang [Wed, 4 Sep 2013 01:46:47 +0000 (21:46 -0400)]
ENGR00277955-2 rtc: rtc-snvs: support wakeup system from freeze mode

To support wakeup system from freeze mode of suspend,
device's irq can NOT be disabled during devices suspend,
so we need to add IRQF_NO_SUSPEND flag to irqflags.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277955-1 keyboard: gpio_keys: support wakeup system from freeze mode
Anson Huang [Wed, 4 Sep 2013 01:43:48 +0000 (21:43 -0400)]
ENGR00277955-1 keyboard: gpio_keys: support wakeup system from freeze mode

To support wakeup system from freeze mode of suspend,
device's irq can NOT be disabled during devices suspend,
so we need to add IRQF_NO_SUSPEND flag to irqflags.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277895: dts: ARM: imx6: add ldo-enable dts files
Robin Gong [Wed, 4 Sep 2013 07:30:17 +0000 (15:30 +0800)]
ENGR00277895: dts: ARM: imx6: add ldo-enable dts files

  Currently, we use different dts files to support ldo-bypass or ldo-enable, then
we need add both dts files for the boards which can support ldo-bypass mode(all
boards support ldo-enable at least). So for below boards we need add ldo-enable
dts file so that we can use this to easily support ldo-enable mode:
  1)mx6q-sabresd board:  ldo-bypass dts->mx6q-sabresd.dtb,
                         ldo-enable dts->mx6q-sabresd-ldo.dtb
  2)mx6q-sabresd board:  ldo-bypass dts->mx6dl-sabresd.dtb,
                 ldo-enable dts->mx6dl-sabresd-ldo.dtb
  3)mx6sl-evk board:     ldo-bypass dts->mx6sl-evk.dtb,
                 ldo-enable dts->mx6sl-evk-ldo.dtb

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00278098 Make gpu modulable driver passing build
Loren HUANG [Wed, 4 Sep 2013 05:54:38 +0000 (13:54 +0800)]
ENGR00278098 Make gpu modulable driver passing build

Gpu driver requires to do cache invalid, clean and flush operation.
 But in 3.10 kernel, these APIs are not supposed to be called from
 device driver. To avoid too much code change, Revert "ARM: Fix bad
 merge bd1274dc005 (Merge branch 'v6v7' into devel)" to make the
 situation the same as 3.0.35 kernel.

This reverts commit a67e1ce145785d884b29b17e4d82a6ecd67bb97a.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
11 years agoENGR00277333 gpu: Enable OT limitation for gc880
Loren HUANG [Wed, 4 Sep 2013 07:58:04 +0000 (15:58 +0800)]
ENGR00277333 gpu: Enable OT limitation for gc880

Enable OT limitation for gc880, without this limitation
3D core may stall system bus when it is running at a very low clock.

Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
11 years agoENGR00275033-3 ARM: imx_v7_defconfig: enable pxp v4l2 output driver
Robby Cai [Thu, 22 Aug 2013 10:11:10 +0000 (18:11 +0800)]
ENGR00275033-3 ARM: imx_v7_defconfig: enable pxp v4l2 output driver

enable pxp v4l2 output driver on imx6sl by default

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00275033-2 ARM: dts: enable pxp v4l2 output device
Robby Cai [Thu, 22 Aug 2013 10:02:46 +0000 (18:02 +0800)]
ENGR00275033-2 ARM: dts: enable pxp v4l2 output device

Enable pxp v4l2 output device on imx6sl evk board

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00275033-1 mx6sl: pxp/v4l: port v4l2 output driver to 3.10
Robby Cai [Thu, 22 Aug 2013 10:01:59 +0000 (18:01 +0800)]
ENGR00275033-1 mx6sl: pxp/v4l: port v4l2 output driver to 3.10

port v4l2 output driver to 3.10 kernel

- replace .ioctl with .unlocked_ioctl
- add .vfl_dir flag - VFL_DIR_TX (newly introduced) for video_device
- drop __devinit,  __devexit, __exit and __exit_p
- replace mxc_elcdif_frame_addr_setup() with pxp_show_buf(), where pan_display
  be called due to the adoption of mxsfb.c from community
- change the fb id to be compared due to use new mxsfb.c
- mark the s_crop() and s_fbuf() third parameter const
- move local fbi variable to struct pxps
- use module_platform_driver()

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agocpufreq: imx6q: Fix clock enable balance
Sascha Hauer [Mon, 26 Aug 2013 11:48:36 +0000 (13:48 +0200)]
cpufreq: imx6q: Fix clock enable balance

For changing the cpu frequency the i.MX6q has to be switched to some
intermediate clock during the PLL reprogramming. The driver tries
to be clever to keep the enable count correct but gets it wrong. If
the cpufreq is increased it calls clk_disable_unprepare twice
on pll2_pfd2_396m. This puts all other devices which get their clock
from pll2_pfd2_396m into a nonworking state.

Fix this by removing the clk enabling/disabling altogether since the
clk core will do this automatically during a reparent.

[shawn.guo: The driver assumes that cpu always boots with 800MHz, and
 the first transition on 400MHz must be entering 400MHz setpoint.  But
 it turns out that's not always the case.  In some system, cpu boots up
 at 400MHz and then the first transition on 400MHz will be leaving
 400MHz setpoint rather than entering.  In this case, the use count of
 pll2_pfd2_396m will be wrong.  Anyway, since clock framework has been
 nicely handling the clk enabling during reparent, we should not need
 to worry about it.]

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00277894 asoc: fsl: add pm runtime for fsl audio codec.
Shengjiu Wang [Tue, 3 Sep 2013 10:01:52 +0000 (18:01 +0800)]
ENGR00277894 asoc: fsl: add pm runtime for fsl audio codec.

Add pm runtime for fsl audio codec

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
11 years agoENGR00277697 cpufreq: imx: increase cpufreq during suspend/resume
Anson Huang [Mon, 2 Sep 2013 21:18:31 +0000 (17:18 -0400)]
ENGR00277697 cpufreq: imx: increase cpufreq during suspend/resume

During suspend/resume, when cpufreq driver try to increase
voltage/freq, it needs to control I2C/SPI to communicate with
external PMIC to adjust voltage, but these I2C/SPI devices may
be already suspended, to avoid such scenario, we just increase
cpufreq to highest setpoint before suspend.

As this pm notification's updating cpu policy may work together
with cpufreq governor, both of them may call set_target at same
time, so we need to add mutex lock to prevent this scenario,
otherwise, the clock use count will be wrong.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277805-7 usb: chipidea: imx: add USB suspend/resume API for system PM
Peter Chen [Tue, 13 Aug 2013 07:30:59 +0000 (15:30 +0800)]
ENGR00277805-7 usb: chipidea: imx: add USB suspend/resume API for system PM

Add suspend/resume API for system suspend/resume procedure.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-6 usb: chipidea: add ci_hdrc_enter_lpm API
Peter Chen [Tue, 13 Aug 2013 07:18:01 +0000 (15:18 +0800)]
ENGR00277805-6 usb: chipidea: add ci_hdrc_enter_lpm API

It is used to let the PHY enters low power mode at
controller suspend routine.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-5 usb: chipidea: move platform related things to ci_get_platdata
Peter Chen [Fri, 23 Aug 2013 07:20:50 +0000 (15:20 +0800)]
ENGR00277805-5 usb: chipidea: move platform related things to ci_get_platdata

Like vbus, the dr_mode and phy_mode are also got from glue layer's
platform data or device node.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-4 usb: chipidea: Fix memleak for ci->hw_bank.regmap when removal
Peter Chen [Fri, 23 Aug 2013 07:09:23 +0000 (15:09 +0800)]
ENGR00277805-4 usb: chipidea: Fix memleak for ci->hw_bank.regmap when removal

It needs to free ci->hw_bank.regmap explicitly since it is not managed
resource.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-3 usb: chipidea: udc: fix the oops after rmmod gadget
Peter Chen [Fri, 23 Aug 2013 07:00:08 +0000 (15:00 +0800)]
ENGR00277805-3 usb: chipidea: udc: fix the oops after rmmod gadget

When we rmmod gadget, the ci->driver needs to be cleared.
Otherwise, when we plug in usb cable again, the driver will
consider gadget is there, and go to enumeration procedure,
but in fact, it was removed.

ci_hdrc ci_hdrc.0: Connected to host
Unable to handle kernel paging request at virtual address 7f02a42c
pgd = 80004000
[7f02a42c] *pgd=3f13d811, *pte=00000000, *ppte=00000000
Internal error: Oops: 7 [#1] SMP ARM
Modules linked in: usb_f_acm u_serial libcomposite configfs [last unloaded: g_serial]
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0+ #42
task: 807dba88 ti: 807d0000 task.ti: 807d0000
PC is at udc_irq+0x8fc/0xea4
LR is at l2x0_cache_sync+0x5c/0x6c
pc : [<803de7f4>]    lr : [<8001d0f0>]    psr: 20000193
sp : 807d1d98  ip : 807d1d80  fp : 807d1df4
r10: af809900  r9 : 808184d4  r8 : 00080001
r7 : 00082001  r6 : afb711f8  r5 : afb71010  r4 : ffffffea
r3 : 7f02a41c  r2 : afb71010  r1 : 807d1dc0  r0 : afb71068
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 3f01804a  DAC: 00000017
Process swapper/0 (pid: 0, stack limit = 0x807d0238)
Stack: (0x807d1d98 to 0x807d2000)
1d80:                                                       00000000 afb71014
1da0: 000040f6 00000000 00000001 00000000 00007530 00000000 afb71010 001dcd65
1dc0: 01000680 00400000 807d1e2c afb71010 0000004e 00000000 00000000 0000004b
1de0: 808184d4 af809900 807d1e0c 807d1df8 803dbc24 803ddf04 afba75c0 0000004e
1e00: 807d1e44 807d1e10 8007a19c 803dbb9c 8108e7e0 8108e7e0 9ceddce0 af809900
1e20: 0000004e 807d0000 0000004b 00000000 00000010 00000000 807d1e5c 807d1e48
1e40: 8007a334 8007a154 af809900 0000004e 807d1e74 807d1e60 8007d3b4 8007a2f0
1e60: 0000004b 807cce3c 807d1e8c 807d1e78 80079b08 8007d300 00000180 807d8ba0
1e80: 807d1eb4 807d1e90 8000eef4 80079aec 00000000 f400010c 807d8ce4 807d1ed8
1ea0: f4000100 96d5c75d 807d1ed4 807d1eb8 80008600 8000eeac 8042699c 60000013
1ec0: ffffffff 807d1f0c 807d1f54 807d1ed8 8000e180 800085dc 807d1f20 00000046
1ee0: 9cedd275 00000010 8108f080 807de294 00000001 807de248 96d5c75d 00000010
1f00: 00000000 807d1f54 00000000 807d1f20 8005ff54 8042699c 60000013 ffffffff
1f20: 9cedd275 00000010 00000005 8108f080 8108f080 00000001 807de248 8086bd00
1f40: 807d0000 00000001 807d1f7c 807d1f58 80426af0 80426950 807d0000 00000000
1f60: 808184c0 808184c0 807d8954 805b886c 807d1f8c 807d1f80 8000f294 80426a44
1f80: 807d1fac 807d1f90 8005f110 8000f288 807d1fac 807d8908 805b4748 807dc86c
1fa0: 807d1fbc 807d1fb0 805aa58c 8005f068 807d1ff4 807d1fc0 8077c860 805aa530
1fc0: ffffffff ffffffff 8077c330 00000000 00000000 807bef88 00000000 10c53c7d
1fe0: 807d88d0 807bef84 00000000 807d1ff8 10008074 8077c594 00000000 00000000
Backtrace:
[<803ddef8>] (udc_irq+0x0/0xea4) from [<803dbc24>] (ci_irq+0x94/0x14c)
[<803dbb90>] (ci_irq+0x0/0x14c) from [<8007a19c>] (handle_irq_event_percpu+0x54/0x19c)
 r5:0000004e r4:afba75c0
 [<8007a148>] (handle_irq_event_percpu+0x0/0x19c) from [<8007a334>] (handle_irq_event+0x50/0x70)
[<8007a2e4>] (handle_irq_event+0x0/0x70) from [<8007d3b4>] (handle_fasteoi_irq+0xc0/0x16c)
 r5:0000004e r4:af809900
 [<8007d2f4>] (handle_fasteoi_irq+0x0/0x16c) from [<80079b08>] (generic_handle_irq+0x28/0x38)
 r5:807cce3c r4:0000004b
 [<80079ae0>] (generic_handle_irq+0x0/0x38) from [<8000eef4>] (handle_IRQ+0x54/0xb4)
 r4:807d8ba0 r3:00000180
 [<8000eea0>] (handle_IRQ+0x0/0xb4) from [<80008600>] (gic_handle_irq+0x30/0x64)
 r8:96d5c75d r7:f4000100 r6:807d1ed8 r5:807d8ce4 r4:f400010c
 r3:00000000
 [<800085d0>] (gic_handle_irq+0x0/0x64) from [<8000e180>] (__irq_svc+0x40/0x54)
Exception stack(0x807d1ed8 to 0x807d1f20)
1ec0:                                                       807d1f20 00000046
1ee0: 9cedd275 00000010 8108f080 807de294 00000001 807de248 96d5c75d 00000010
1f00: 00000000 807d1f54 00000000 807d1f20 8005ff54 8042699c 60000013 ffffffff
 r7:807d1f0c r6:ffffffff r5:60000013 r4:8042699c
 [<80426944>] (cpuidle_enter_state+0x0/0xf4) from [<80426af0>] (cpuidle_idle_call+0xb8/0x174)
 r9:00000001 r8:807d0000 r7:8086bd00 r6:807de248 r5:00000001
 r4:8108f080
 [<80426a38>] (cpuidle_idle_call+0x0/0x174) from [<8000f294>] (arch_cpu_idle+0x18/0x5c)
[<8000f27c>] (arch_cpu_idle+0x0/0x5c) from [<8005f110>] (cpu_startup_entry+0xb4/0x148)
[<8005f05c>] (cpu_startup_entry+0x0/0x148) from [<805aa58c>] (rest_init+0x68/0x80)
 r7:807dc86c
 [<805aa524>] (rest_init+0x0/0x80) from [<8077c860>] (start_kernel+0x2d8/0x334)
[<8077c588>] (start_kernel+0x0/0x334) from [<10008074>] (0x10008074)
Code: e59031e0 e51b203c e24b1034 e2820058 (e5933010)
---[ end trace f874b2c5533c04bc ]---
Kernel panic - not syncing: Fatal exception in interrupt

Tested-by: Marek Vasut <marex@denx.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-2 usb: chipidea: udc: Consolidate the call of disconnect
Peter Chen [Wed, 10 Jul 2013 09:21:23 +0000 (17:21 +0800)]
ENGR00277805-2 usb: chipidea: udc: Consolidate the call of disconnect

The udc-core will call gadget's driver->disconnect, so we should avoid
calling gadget's disconnect again at ci_udc_stop in case the gadget's
unbind free some structs which is still used at gadget's disconnect.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277805-1 usb: host: delete chipidea dependency
Peter Chen [Mon, 8 Jul 2013 07:34:25 +0000 (15:34 +0800)]
ENGR00277805-1 usb: host: delete chipidea dependency

Now, chipidea host has already depended on USB_EHCI_HCD

Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00277750-2 ARM: clk-imx6sl: lcdif: set lcdif axi clock to 200MHz
Robby Cai [Mon, 2 Sep 2013 13:22:51 +0000 (21:22 +0800)]
ENGR00277750-2 ARM: clk-imx6sl: lcdif: set lcdif axi clock to 200MHz

set lcdif axi clock's parent to 'pll2_pfd2' and lcdif axi clock
frequency to 200MHz.

Signed-off-by: Robby Cai <R63905@freescale.com>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00277750-1 ARM: clk-imx6sl: correct some clock parent selections
Robby Cai [Mon, 2 Sep 2013 12:58:52 +0000 (20:58 +0800)]
ENGR00277750-1 ARM: clk-imx6sl: correct some clock parent selections

This might not be documented clearly or correctly in IC RM (Rev. 1, 04/2013).
There's one document describing the CCM change on imx6sl, which is
available at
http://compass.freescale.net/livelink/livelink?func=ll&objId=223814333&objAction=browse

This patch does
- split csi_lcdif_sels since 2'b00 for CSI means 'osc' while for LCDIF
  means 'pll2_bus'.
- split epdc_pxp_sels since 3'b101 for EPDC means 'pll3_pfd2' while for PXP
  means 'pll3_pfd3'
- correct 2'b10 for lcdif_axi_sels, should be 'pll3_usb_otg' instead of 'pll3_120m'

Signed-off-by: Robby Cai <R63905@freescale.com>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00277663-4 ARM: dts: sabreauto: add pfuze regulator device node in dts
Robin Gong [Mon, 2 Sep 2013 03:30:42 +0000 (11:30 +0800)]
ENGR00277663-4 ARM: dts: sabreauto: add pfuze regulator device node in dts

Add pfuze regulator device node in imx6qdl-sabreauto.dtsi.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00277663-3 power: sabresd_battery: remove check charger offset on mx6slevk
Robin Gong [Fri, 30 Aug 2013 07:29:10 +0000 (15:29 +0800)]
ENGR00277663-3 power: sabresd_battery: remove check charger offset on mx6slevk

No need check the charger offset on mx6slevk, since there is no adc converter

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00277663-2 dts: ARM: imx6sl-evk: enable max8903 charger device node in dts
Robin Gong [Mon, 2 Sep 2013 03:23:13 +0000 (11:23 +0800)]
ENGR00277663-2 dts: ARM: imx6sl-evk: enable max8903 charger device node in dts

Add max8903 chager in dts. Below is difference with the full function on
Sabresd:
1.no adc converter on imx6sl-evk, so disable it.
2.DOK connected with UOK, that say whatever USB or DC charger plug in, always
report DC charger detect.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00277663-1 dts: ARM: imx6sl: enable ldo bypass and pfuze function in dts
Robin Gong [Mon, 2 Sep 2013 03:16:25 +0000 (11:16 +0800)]
ENGR00277663-1 dts: ARM: imx6sl: enable ldo bypass and pfuze function in dts

Enable ldo-bypass by default and enable pfuze regulator device node in dts.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00277691 ARM: imx: Add speed grading check.
Anson Huang [Mon, 2 Sep 2013 18:52:58 +0000 (14:52 -0400)]
ENGR00277691 ARM: imx: Add speed grading check.

For i.MX6Q/DL, different chips may have different
max speed of ARM defined in fuse map of speed_grading[1:0]:

2b'11: 1200000000Hz;
2b'10: 1000000000Hz;
2b'01: 850000000Hz; -- i.MX6Q Only, exclusive with 1GHz.
2b'00: 800000000Hz;

Need to read fuse data to set max speed of ARM.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00276199 ARM: imx: Update VDDARM_CAP's voltag for cpufreq table
Anson Huang [Mon, 2 Sep 2013 15:13:27 +0000 (11:13 -0400)]
ENGR00276199 ARM: imx: Update VDDARM_CAP's voltag for cpufreq table

According to datasheet, VDD_CACHE_CAP must not exceed VDDARM_CAP
by more than 200mV, as all of our i.MX6Q boards' VDD_CACHE_CAP
are connected to VDDSOC_CAP, so we need to follow this rule by
increasing VDDARM_CAP's voltage when necessary.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277299-7 ARM: imx_v7_defconfig: Build in hdmi audio
Nicolin Chen [Mon, 2 Sep 2013 03:15:45 +0000 (11:15 +0800)]
ENGR00277299-7 ARM: imx_v7_defconfig: Build in hdmi audio

Build hdmi audio as default

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-6 ARM: dts: Add hdmi audio devicetree binding for imx6qdl
Nicolin Chen [Mon, 2 Sep 2013 03:13:55 +0000 (11:13 +0800)]
ENGR00277299-6 ARM: dts: Add hdmi audio devicetree binding for imx6qdl

Add hdmi audio devicetree binding for i.MX6Q/DL series and add its support
for SabreAuto and SabreSD boards.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-5 ASoC: fsl: Add hdmi audio machine driver
Nicolin Chen [Mon, 2 Sep 2013 03:09:54 +0000 (11:09 +0800)]
ENGR00277299-5 ASoC: fsl: Add hdmi audio machine driver

Add hdmi audio machine dirver

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-4 ASoC: fsl: Add hdmi audio cpu dai driver
Nicolin Chen [Mon, 2 Sep 2013 03:07:48 +0000 (11:07 +0800)]
ENGR00277299-4 ASoC: fsl: Add hdmi audio cpu dai driver

Add hdmi audio cpu dai dirver

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-3 ASoC: fsl: Add dma driver for hdmi audio
Nicolin Chen [Mon, 2 Sep 2013 03:01:37 +0000 (11:01 +0800)]
ENGR00277299-3 ASoC: fsl: Add dma driver for hdmi audio

i.MX HDMI audio uses its own AHB DMA while there's also an extra SDMA channel
to update its buffer addresses. Thus add a new driver for HDMI audio.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-2 ASoC: codec: Generalise omap hdmi audio dummy codec driver
Nicolin Chen [Mon, 2 Sep 2013 02:52:02 +0000 (10:52 +0800)]
ENGR00277299-2 ASoC: codec: Generalise omap hdmi audio dummy codec driver

The omap hdmi audio dummy codec driver is a generic hdmi codec driver but
have build dependency, thus drop the dependency in order to use it.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277299-1 dma: imx-sdma: Add other script for hdmi audio support
Nicolin Chen [Thu, 29 Aug 2013 10:08:51 +0000 (18:08 +0800)]
ENGR00277299-1 dma: imx-sdma: Add other script for hdmi audio support

There's a missing script for hdmi audio support in current sdma driver,
thus add it.

This HDMI script doesn't use bd to copy memory like a normal one does
but only to update the memory address for HDMI internal AHB DMA and
then trigger its procedure automatically.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00269945: ARM: enable FSL_OTP in imx_v7_defconfig
Shawn Guo [Mon, 2 Sep 2013 06:08:55 +0000 (14:08 +0800)]
ENGR00269945: ARM: enable FSL_OTP in imx_v7_defconfig

It enables FSL_OTP device driver support in imx_v7_defconfig.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00269945: ARM: dts: imx6: add ocotp fuse node
Shawn Guo [Mon, 2 Sep 2013 05:52:52 +0000 (13:52 +0800)]
ENGR00269945: ARM: dts: imx6: add ocotp fuse node

The ocotp also plays as a fuse device beside the system controller we
already have in device tree.  Let's add a device node for the fuse
device for imx6qdl and imx6sl.

While at it, the patch also drops "fsl,imx6q-ocotp" and
"fsl,imx6sl-ocotp" from system controller compatible string, since
it's not used, and use node name ocotp-ctrl and ocotp-fuse for system
controller and fuse device respectively.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00269945: char: add fsl_otp deivce driver
Shawn Guo [Mon, 2 Sep 2013 02:20:05 +0000 (10:20 +0800)]
ENGR00269945: char: add fsl_otp deivce driver

This is a porting of fsl_otp driver from 3.0.35 kernel to 3.10.  It
cleans up the driver a little bit and adds device tree probe support.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
11 years agoENGR00277654 imx: pcie: enable pcie lm errata when pcie is enabled
Richard Zhu [Mon, 2 Sep 2013 02:11:39 +0000 (10:11 +0800)]
ENGR00277654 imx: pcie: enable pcie lm errata when pcie is enabled

Enable the SW workaround of the PCIe lower power errata
only when PCIe is enabled. Otherwise, don't apply the
SW workaround.

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoserial: imx: initialize the local variable
gregkh@linuxfoundation.org [Fri, 30 Aug 2013 21:12:21 +0000 (14:12 -0700)]
serial: imx: initialize the local variable

The slave_config is not initialized, so some of its fields may
be set with random data which may causes the failure in the following
dmaengine_prep_slave_sg().

This patch fixes this issue.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoENGR00276023-3: mxc: gpu-viv: get regulator by dts instead of hard code
Robin Gong [Wed, 21 Aug 2013 06:35:00 +0000 (14:35 +0800)]
ENGR00276023-3: mxc: gpu-viv: get regulator by dts instead of hard code

Use devm_regulator_get rather than regulator_get in gpu driver since we have
use DTS.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00276023-2: ARM: imx: support LDO_BYPASS mode for imx6qdl
Robin Gong [Tue, 27 Aug 2013 10:18:38 +0000 (18:18 +0800)]
ENGR00276023-2: ARM: imx: support LDO_BYPASS mode for imx6qdl

Make code change for LDO_BYPASS mode. In LDO_BYPASS mode gpc will use dummy
pu regulator to be notified by xPU driver.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00276023-1 ARM: dts: imx6: adjust some device node to support LDO_BYPASS
Robin Gong [Tue, 27 Aug 2013 08:57:57 +0000 (16:57 +0800)]
ENGR00276023-1 ARM: dts: imx6: adjust some device node to support LDO_BYPASS

Modify devicetree to support LDO_BYPASS mode.

Signed-off-by: Robin Gong <b38343@freescale.com>
11 years agoENGR00277223-3 ARM: imx_v7_defconfig: enable elan touch driver
Robby Cai [Thu, 29 Aug 2013 06:19:59 +0000 (14:19 +0800)]
ENGR00277223-3 ARM: imx_v7_defconfig: enable elan touch driver

Enable CONFIG_TOUCHSCREEN_ELAN kernel option by default.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00277223-2 ARM: dts: add elan touch support
Robby Cai [Thu, 29 Aug 2013 05:55:13 +0000 (13:55 +0800)]
ENGR00277223-2 ARM: dts: add elan touch support

Add ELAN touch support for imx6 duallite sabresd board and
imx6 sololite evk board.

Note: Need 4.7K Ohm pull up on 'touch_int_b'.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00277223-1 input: port elan touch driver to 3.10 kernel
Robby Cai [Thu, 29 Aug 2013 05:44:37 +0000 (13:44 +0800)]
ENGR00277223-1 input: port elan touch driver to 3.10 kernel

It's ported from 3.5.7 kernel. To test this driver, the EBook Daughter
Board need to be attached (on imx6dl sabresd or imx6sl evk board).

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-9 ARM: imx_v7_defconfig: enable epdc framebuffer driver
Robby Cai [Wed, 28 Aug 2013 10:58:49 +0000 (18:58 +0800)]
ENGR00276832-9 ARM: imx_v7_defconfig: enable epdc framebuffer driver

Enable CONFIG_FB_MXC_EINK_PANEL option by default.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-8 ARM: dts: add epdc support
Robby Cai [Wed, 28 Aug 2013 09:40:52 +0000 (17:40 +0800)]
ENGR00276832-8 ARM: dts: add epdc support

Add DTS for epdc on imx6 duallite and sololite.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-7 firmware: add epdc waveform firmware
Robby Cai [Mon, 17 Jun 2013 08:41:48 +0000 (16:41 +0800)]
ENGR00276832-7 firmware: add epdc waveform firmware

Add firmware for EPDC waveform
 (cherry-picked from 8187e68d0659d2540ffd9b9420b6e2858be57105)

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-6 epdc: move timing paramater into the driver
Robby Cai [Wed, 28 Aug 2013 02:05:20 +0000 (10:05 +0800)]
ENGR00276832-6 epdc: move timing paramater into the driver

Although now in 3.10 there's display timing dts framework but for epdc
driver there are other timing parameters besides the fb_videomode. It also
makes sense to move the timing parameters in epdc driver.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-5 epdc: set epdc/pxp axi clock to maximum 200MHz
Robby Cai [Wed, 14 Aug 2013 06:12:43 +0000 (14:12 +0800)]
ENGR00276832-5 epdc: set epdc/pxp axi clock to maximum 200MHz

set epdc pix clock's parent clock to pll5_video for imx6sl
set epdc/pxp axi clock's parent clock to pll2_pfd2 for imx6dl
set epdc/pxp axi clock to 200MHz for both imx6dl and imx6sl
(on imx6dl, epdc/pxp axi clock is same one, named 'ipu2')

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-4 epdc: port the driver to 3.10 kernel
Robby Cai [Wed, 14 Aug 2013 06:12:43 +0000 (14:12 +0800)]
ENGR00276832-4 epdc: port the driver to 3.10 kernel

merge the mach/epdc.h into linux/mxcfb_epdc.h
drop VM_RESERVED flag as deprecated.
drop VM_IO flag as it's automatically set in remap_pfn_range()
use <linux/platform_data/dma-imx.h> instead of <mach/dma.h>
use module_platform_driver()
add binding dts document for epdc fb driver
change the devname for interrupt from 'fb_dma' to 'epdc' to make it clear

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-3 ARM: imx_v7_defconfig: add max17135 pmic support
Robby Cai [Wed, 14 Aug 2013 03:06:58 +0000 (11:06 +0800)]
ENGR00276832-3 ARM: imx_v7_defconfig: add max17135 pmic support

Enable max17135 PMIC support for imx6 duallite and sololite

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-2 ARM: dts: add max17135 support
Robby Cai [Wed, 28 Aug 2013 05:43:59 +0000 (13:43 +0800)]
ENGR00276832-2 ARM: dts: add max17135 support

Add DTS for max17135 on imx6 duallite sabresd board and
imx6 sololite evk board.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00276832-1 pmic: max17135: port driver codes to 3.10 kernel
Robby Cai [Wed, 14 Aug 2013 02:14:26 +0000 (10:14 +0800)]
ENGR00276832-1 pmic: max17135: port driver codes to 3.10 kernel

It's ported from v3.5.7 kernel, which contains a sensor driver
and regulator driver. It's used for E-Ink panel.

add a parameter for mfd_add_devices() due to the propotype change.
use IS_ERR() to check the return value for devm_regulator_get().

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00277471 ASoC: fsl: Fix set-mute-failed issue after WM8962 capture
Nicolin Chen [Fri, 30 Aug 2013 08:02:35 +0000 (16:02 +0800)]
ENGR00277471 ASoC: fsl: Fix set-mute-failed issue after WM8962 capture

We only need to mute WM8962 after playback, so add direction check
before doing mute.

And a mute failure would cause hw_free() abruptly return after it,
which might drop the essential procedure code for FLL controlling.
Thus put mute before FLL controlling code and drop its return check.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277458-4 ARM: imx_v7_defconfig: Build in imx-spdif
Nicolin Chen [Fri, 30 Aug 2013 07:40:28 +0000 (15:40 +0800)]
ENGR00277458-4 ARM: imx_v7_defconfig: Build in imx-spdif

Build imx-spdif as default

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277458-3 ARM: dts: Add spdif support in devicetree for i.MX6Q/DL series
Nicolin Chen [Fri, 30 Aug 2013 07:24:15 +0000 (15:24 +0800)]
ENGR00277458-3 ARM: dts: Add spdif support in devicetree for i.MX6Q/DL series

Complete spdif node by adding essential properties and add spdif support in
corresponding board dts.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277458-2 ARM: imx6q: Set pll3_pfd3_454m clock as spdif's parent
Nicolin Chen [Fri, 30 Aug 2013 07:21:19 +0000 (15:21 +0800)]
ENGR00277458-2 ARM: imx6q: Set pll3_pfd3_454m clock as spdif's parent

Provisionally use pll3_pfd3_454m clock as spdif's parent clock, which can
fairly meet our playback and capture requirement.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00277458-1 ASoC: fsl: Use correct flag for imx_pcm_dma_init()
Nicolin Chen [Fri, 30 Aug 2013 07:18:34 +0000 (15:18 +0800)]
ENGR00277458-1 ASoC: fsl: Use correct flag for imx_pcm_dma_init()

We are using generic dma binding from devicetree for spdif, thus use
the correct flag.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoASoC: fsl: Add S/PDIF machine driver
Nicolin Chen [Wed, 28 Aug 2013 04:04:46 +0000 (12:04 +0800)]
ASoC: fsl: Add S/PDIF machine driver

This patch implements a device-tree-only machine driver for Freescale
i.MX series Soc. It works with spdif_transmitter/spdif_receiver and
fsl_spdif.c drivers.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoENGR00277271 ARM: imx: Disable WAIT mode for i.MX6SL during kernel boot up
Anson Huang [Thu, 29 Aug 2013 20:36:54 +0000 (16:36 -0400)]
ENGR00277271 ARM: imx: Disable WAIT mode for i.MX6SL during kernel boot up

WAIT mode is enabled by default due to hardware reset,
so we need to disable it during kernel boot up, otherwise,
system may crash without proper setting for WAIT mode.

CPUIdle driver will enable WAIT mode later. Below is the
stack dump when crash, this patch fix it:

Bad mode in data abort handler detected
Internal error: Oops - bad mode: 0 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.9+ #369
task: 807dba88 ti: 807d0000 task.ti: 807d0000
PC is at 0xffff1044
LR is at arch_cpu_idle+0x48/0x54
pc : [<ffff1044>]    lr : [<8000f7dc>]    psr: 60000192
sp : 807d1f60  ip : 00000000  fp : 00000000
r10: 807d8954  r9 : 8059980c  r8 : 80819280
r7 : 00000001  r6 : 80819280  r5 : 00000000  r4 : 807d0000
r3 : 8001cbe0  r2 : 807d9510  r1 : 0104b000  r0 : 80819540
Flags: nZCv  IRQs off  FIQs on  Mode IRQ_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: af28804a  DAC: 00000017
Process swapper/0 (pid: 0, stack limit = 0x807d0238)
Stack: (0x807d1f60 to 0x807d2000)
1f60: 80819540 0104b000 807d9510 8001cbe0 807d0000 00000000 80819280 00000001
1f80: 80819280 8059980c 807d8954 00000000 00000000 807d1f60 8000f7dc ffff1044
1fa0: 60000192 ffffffff 807d0000 8005de44 807d89d0 808193c0 807bf084 807dc86c
1fc0: 8000406a 412fc09a 00000000 8077fb58 ffffffff ffffffff 8077f6b4 00000000
1fe0: 00000000 807bf088 00000000 10c53c7d 807d88d0 80008074 00000000 00000000
[<8000f7dc>] (arch_cpu_idle+0x48/0x54) from [<0104b000>] (0x104b000)
Code: bad PC value
---[ end trace c2c7dd3b2230692c ]---
Kernel panic - not syncing: Attempted to kill the idle task

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00277234 ARM: imx: correct RBC/WB setting flow
Anson Huang [Thu, 29 Aug 2013 14:03:30 +0000 (10:03 -0400)]
ENGR00277234 ARM: imx: correct RBC/WB setting flow

Currently RBC is enabled right before DSM in asm code
and disabled after resume, as the RBC enable didn't call
imx6_enable_rbc function, so everytime disabling RBC will
be skipped by the logic inside imx6_enable_rbc, this will
disobey the RBC rules: RBC counter should be cleared
after resume and adding at least 2 CKIL(32KHz) clocks with
all wakeup sources masked in GPC;

Move WB setting into DSM enter/exit path only.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoASoC: fsl_spdif: Remove unnecessary dev_set_drvdata()
Fabio Estevam [Fri, 23 Aug 2013 21:14:45 +0000 (18:14 -0300)]
ASoC: fsl_spdif: Remove unnecessary dev_set_drvdata()

Driver core clears the driver data to NULL after device_release or on probe
failure, so just remove it from here.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-9 ARM: defconfig: Enable si476x support in imx_v7_defconfig
Nicolin Chen [Thu, 29 Aug 2013 06:59:24 +0000 (14:59 +0800)]
ENGR00276567-9 ARM: defconfig: Enable si476x support in imx_v7_defconfig

Build-in si476x support as default.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-8 ARM: dtsi: Add si4763 support for imx6qdl-sabreauto
Nicolin Chen [Thu, 29 Aug 2013 06:41:51 +0000 (14:41 +0800)]
ENGR00276567-8 ARM: dtsi: Add si4763 support for imx6qdl-sabreauto

Add missing devicetree nodes and binding for the support.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-7 ASoC: fsl: Add si476x machine driver
Nicolin Chen [Fri, 23 Aug 2013 11:55:00 +0000 (19:55 +0800)]
ENGR00276567-7 ASoC: fsl: Add si476x machine driver

Add si476x machine dirver for i.MX series SoC and binding doc.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-6 mfd: si476x: Use default configuration when no platform data
Nicolin Chen [Thu, 29 Aug 2013 06:35:44 +0000 (14:35 +0800)]
ENGR00276567-6 mfd: si476x: Use default configuration when no platform data

This would allow the driver to work normally without specific platform data,
when using devicetree for example.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-5 mfd: si476x: Add two involatile registers support
Nicolin Chen [Thu, 29 Aug 2013 06:27:32 +0000 (14:27 +0800)]
ENGR00276567-5 mfd: si476x: Add two involatile registers support

These two regsiters would be used by si476x-codec driver. Setting them as
involatile registers would allow codec driver to set the value into cache
and to sync them after power-up.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-4 mfd: si476x: Fix power up failure
Nicolin Chen [Thu, 29 Aug 2013 06:25:22 +0000 (14:25 +0800)]
ENGR00276567-4 mfd: si476x: Fix power up failure

This's some logical error in power-up code, thus fix it.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-3 ARM: imx6q: Set pll4 as ssi's parent
Nicolin Chen [Fri, 23 Aug 2013 11:42:56 +0000 (19:42 +0800)]
ENGR00276567-3 ARM: imx6q: Set pll4 as ssi's parent

PLL4 is a flexible pll that can be set to a value as we need,
so we set it to an value that can easily derive 44.1K and 48K
and then put ssi baud clock as its child clock.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-2 ASoC: fsl: Add I2S Master support for ssi
Nicolin Chen [Fri, 23 Aug 2013 11:31:52 +0000 (19:31 +0800)]
ENGR00276567-2 ASoC: fsl: Add I2S Master support for ssi

Add I2S master/PCM(DSP_A, DSP_B)/LEFT_J formats support for ssi,
also dropped the constrain of i2s-slave in probe().

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00276567-1 ASoC: fsl: Add missing baud clock for ssi
Nicolin Chen [Fri, 23 Aug 2013 11:28:57 +0000 (19:28 +0800)]
ENGR00276567-1 ASoC: fsl: Add missing baud clock for ssi

Also treat the ipg clock as ssi core clock.

Signed-off-by: Nicolin Chen <b42378@freescale.com>