]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
10 years agoENGR00276321 HDMI Audio: Set HDMI event as SDMA event2
Sandor Yu [Thu, 22 Aug 2013 09:50:29 +0000 (17:50 +0800)]
ENGR00276321 HDMI Audio: Set HDMI event as SDMA event2

- Remove chip revision check code.
- Set HDMI event as SDMA event2 for HDMI audio.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00276249-2 ARM: imx6q: Add pll4_audio_div to clock tree
Nicolin Chen [Thu, 22 Aug 2013 07:11:47 +0000 (15:11 +0800)]
ENGR00276249-2 ARM: imx6q: Add pll4_audio_div to clock tree

There's a pll4_audio_div clock, an extra divider for pll4, missing
in current clock tree, thus add it.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00276249-1 ARM: imx6q: Add missing baud clock for ssi
Nicolin Chen [Thu, 22 Aug 2013 10:04:12 +0000 (18:04 +0800)]
ENGR00276249-1 ARM: imx6q: Add missing baud clock for ssi

The ssi_ipg is essential when accessing ssi register, while the baud clock
allows ssi to provide output bclk and lrclk derived from it. Thus add it.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00276335 net:fec: fix build warning
Fugang Duan [Thu, 22 Aug 2013 09:37:30 +0000 (17:37 +0800)]
ENGR00276335 net:fec: fix build warning

drivers/net/ethernet/freescale/fec_main.c:864
warning: 'vlan_tag' may be used uninitialized in this function
note: 'vlan_tag' was declared here

Compiler with the warning option: -Wuninitialized, the warning
will be reported.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275974-3 [iMX6x] Add busfreq support to the drivers
Ranjani Vaidyanathan [Tue, 20 Aug 2013 19:31:40 +0000 (14:31 -0500)]
ENGR00275974-3 [iMX6x] Add busfreq support to the drivers

Add request_bus_freq() and release_bus_freq() calls to the
various drivers to ensure that the DDR and AHB are the requested
frequency before the driver starts its task.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00275974-2 [iMX6DQ/iMX6DL] Add busfreq support to device tree
Ranjani Vaidyanathan [Tue, 20 Aug 2013 19:30:56 +0000 (14:30 -0500)]
ENGR00275974-2 [iMX6DQ/iMX6DL] Add busfreq support to device tree

Add busfreq details to the device tree.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00275974-1 [iMX6DQ/iMX6DL] Add busfreq support
Ranjani Vaidyanathan [Tue, 20 Aug 2013 19:30:16 +0000 (14:30 -0500)]
ENGR00275974-1 [iMX6DQ/iMX6DL] Add busfreq support

Add support to drop DDR and AHB frequency to 24MHz in
system IDLE state.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00275983 sensor: Add mma8451 sensor driver
Luwei Zhou [Wed, 21 Aug 2013 08:53:32 +0000 (16:53 +0800)]
ENGR00275983 sensor: Add mma8451 sensor driver

Add mxa-mma8451.c to support mma8451 sensor. Copy
the file from 3.0.35_4.1.0. Modificaiton List:
1.Remove __devinit,__devexit out of code
2.Support device tree.
3.Replace simple_strtoul with strict_strtoul.

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00276013 dts: Add mma8451 dts support on i.MX6Q/DL SD/AUTO
Luwei Zhou [Wed, 21 Aug 2013 08:46:52 +0000 (16:46 +0800)]
ENGR00276013 dts: Add mma8451 dts support on i.MX6Q/DL SD/AUTO

Add mma8451 dts support on i.MX6Q/DL SD/AUTO

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00275999 Makefile:Support mma8451 sensor on i.MX6Q/DL SD/AUTO
Luwei Zhou [Wed, 21 Aug 2013 05:14:24 +0000 (13:14 +0800)]
ENGR00275999 Makefile:Support mma8451 sensor on i.MX6Q/DL SD/AUTO

Add mma8451 in Makefile.

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00275992 Kconfig: Support mma8451 sensor on i.MX6Q/DL SD/AUTO
Luwei Zhou [Wed, 21 Aug 2013 05:08:50 +0000 (13:08 +0800)]
ENGR00275992 Kconfig: Support mma8451 sensor on i.MX6Q/DL SD/AUTO

Add mma8451 in Kconfig.

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00274172-3 mxcfb: ldb: correct the ldb di clock trees
Liu Ying [Tue, 20 Aug 2013 07:10:34 +0000 (15:10 +0800)]
ENGR00274172-3 mxcfb: ldb: correct the ldb di clock trees

In ldb split mode, the ldb_di[0|1]_ipu_div should be configured
as clock dividers of 1/3.5, while in others ldb modes of 1/7.
This patch sets the di[0|1]_div_3_5 or di[0|1]_div_7 clocks to be
the parents of di[0|1]_div_sel clocks according to the ldb mode.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00274172-2 ARM: dts: imx6qdl: add necessary clocks for ldb
Liu Ying [Tue, 20 Aug 2013 07:05:33 +0000 (15:05 +0800)]
ENGR00274172-2 ARM: dts: imx6qdl: add necessary clocks for ldb

This patch adds di[0|1]_div_3_5, di[0|1]_div_7 and di[0|1]_div_sel
clocks to the ldb nodes so that the ldb driver may use them to
setup the display clock tree.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00274172-1 ARM: imx6q: refactor some ldb related clocks
Liu Ying [Tue, 20 Aug 2013 06:37:47 +0000 (14:37 +0800)]
ENGR00274172-1 ARM: imx6q: refactor some ldb related clocks

The ldb_di[0|1]_ipu_div dividers may divide their parent clock
frequencies by either 3.5 or 7. The non-integral dividers cannot
be dealt with the common clock framework, so they cannot be
registered as common clock dividers. So this patch adds a fixed
factor clock of 1/7 and introduces ldb_di[0|1]_div_sel multiplexers
so that the fixed factor clocks of 1/3.5 and 1/7 can be set to be
the parents of ldb_di[0|1]_div_sel multiplexers. The ldb_di[0|1]_podf
dividers are no longer used then.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275832 mxcfb: ldb: replace ioremap/iounmap with devm_ioremap
Liu Ying [Tue, 20 Aug 2013 06:19:46 +0000 (14:19 +0800)]
ENGR00275832 mxcfb: ldb: replace ioremap/iounmap with devm_ioremap

This patch replaces ioremap()/iounmap() with devm_ioremap() to
simplify the code.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275821-3 ARM: imx: Enable low power mode DSM for i.MX6SL
Anson Huang [Tue, 20 Aug 2013 20:16:01 +0000 (16:16 -0400)]
ENGR00275821-3 ARM: imx: Enable low power mode DSM for i.MX6SL

Support low power mode DSM for i.MX6SL:

1. No need to enable weak 2P5 for i.MX6SL;
2. Need to disconnect VDDHIGH and VDDSNVS in DSM to lower power leakage;
3. Add DDR IO float in DSM to lower DDR power.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275821-2 ARM: imx: Enable suspend/resume for i.MX6SL
Anson Huang [Tue, 20 Aug 2013 18:14:41 +0000 (14:14 -0400)]
ENGR00275821-2 ARM: imx: Enable suspend/resume for i.MX6SL

Enable suspend/resume function for i.MX6SL, currently
support standby and mem mode.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275821-1 ARM: imx: rename pm-imx6q.c
Anson Huang [Tue, 20 Aug 2013 15:30:19 +0000 (11:30 -0400)]
ENGR00275821-1 ARM: imx: rename pm-imx6q.c

To support all i.MX6 SOCs' suspend/resume, need to
rename pm-imx6q.c to pm-imx6.c and move common code
of ccm setting from platform specific clk file to
pm-imx6.c to avoid duplicated code.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275739 Correct GPU delay implmentation in kernel code
Loren HUANG [Mon, 19 Aug 2013 14:29:36 +0000 (22:29 +0800)]
ENGR00275739 Correct GPU delay implmentation in kernel code

Original code can't handle delay larger than 1s.

Signed-by: Loren Huang <b02279@freescale.com>
Acked-by: Shawn Guo
10 years agoENGR00275737-1 dts: Enable gpu in MX6SL
Loren HUANG [Wed, 14 Aug 2013 04:57:02 +0000 (12:57 +0800)]
ENGR00275737-1 dts: Enable gpu in MX6SL

Add gpu information in mx6sl dts.

Signed-off-by: Loren HUANG <b02279@freescale.com>
10 years agoENGR00275473-2 Support PU regulator on/off in VPU driver
Hongzhang Yang [Fri, 16 Aug 2013 02:33:41 +0000 (10:33 +0800)]
ENGR00275473-2 Support PU regulator on/off in VPU driver

Add functions to hide different implemention for different
kernel
- vpu_power_get: get/put power/regulator
- vpu_power_up: enable/disable power/regulator
- vpu_reset

Implement regulator operations for Linux 3.10
- find regulator from VPU device node property
  pu-supply

Replace printk/pr_xxx with dev_xxx

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00275473-1 Support PU regulator on/off in VPU driver
Hongzhang Yang [Mon, 19 Aug 2013 10:12:48 +0000 (18:12 +0800)]
ENGR00275473-1 Support PU regulator on/off in VPU driver

- add pu-supply property to VPU device node

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00275542-4 ARM: imx: Enable thermal driver for i.MX6SL
Anson Huang [Mon, 19 Aug 2013 20:19:34 +0000 (16:19 -0400)]
ENGR00275542-4 ARM: imx: Enable thermal driver for i.MX6SL

Add thermal dts to enable thermal driver for i.MX6SL.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275542-3 ARM: imx: Add thermal sensor's clk in dts for i.MX6QDL
Anson Huang [Mon, 19 Aug 2013 20:50:10 +0000 (16:50 -0400)]
ENGR00275542-3 ARM: imx: Add thermal sensor's clk in dts for i.MX6QDL

Thermal sensor's clock is from pll3_usb_otg 480MHz,
we need to control it before/after thermal sensor's work,
so add it in dts.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275542-2 thermal: imx: Add necessary clk operation
Anson Huang [Mon, 19 Aug 2013 20:49:17 +0000 (16:49 -0400)]
ENGR00275542-2 thermal: imx: Add necessary clk operation

Thermal sensor's clock is from pll3_usb_otg 480MHz,
we need to enable it before getting thermal sensor
to work and disable it after thermal sensor stop
working.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275542-1 ARM: imx: Enable PU power management for i.MX6SL
Anson Huang [Mon, 19 Aug 2013 19:14:43 +0000 (15:14 -0400)]
ENGR00275542-1 ARM: imx: Enable PU power management for i.MX6SL

Enable dynamical PU power management for i.MX6SL.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275483-5 ARM: imx6qdl-sabresd: enable mipi dsi and display
Liu Ying [Fri, 16 Aug 2013 05:42:58 +0000 (13:42 +0800)]
ENGR00275483-5 ARM: imx6qdl-sabresd: enable mipi dsi and display

This patch enables the mipi dsi driver and TRULY-WVGA mipi lcd panel
driver on the imx6qdl-sabresd platforms. To control the panel's reset
and power enable functions, this patch adds two pins in the hoggrp node
as the gpio control pins and adds the mipi_dsi_pwr_on/mipi-dsi-reset
nodes for related drivers to use.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275483-4 ARM: dts: imx6qdl: add mipi dsi support
Liu Ying [Fri, 16 Aug 2013 05:37:51 +0000 (13:37 +0800)]
ENGR00275483-4 ARM: dts: imx6qdl: add mipi dsi support

Since we count on the 'compatible' entry to determine
the mipi dsi muxing check method, this patch splits the
new mipi dsi device tree node into two device tree source
files, i.e., imx6q.dtsi and imx6dl.dtsi.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275483-3 ARM: imx_v6_v7_defconfig: build in mipi dsi drivers
Liu Ying [Fri, 16 Aug 2013 05:25:27 +0000 (13:25 +0800)]
ENGR00275483-3 ARM: imx_v6_v7_defconfig: build in mipi dsi drivers

This patch builds in mipi dsi driver and TRULY-WVGA lcd panel driver.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275483-2 mxc fb: port mipi dsi drivers from 3.0.35 to 3.10
Liu Ying [Fri, 16 Aug 2013 05:22:56 +0000 (13:22 +0800)]
ENGR00275483-2 mxc fb: port mipi dsi drivers from 3.0.35 to 3.10

This patch is a fastforward porting for mipi dsi driver and
TRULY-WVGA mipi panel driver.
* Add devicetree support for the mipi dsi driver.
* Get mipi config clock source in the mipi dsi driver.
* Change clk_enable()/clk_disable() to clk_prepare_enable()/
  clk_disable_unprepare().
* Move mipi dsi driver initialization stuff to mipi_dsi_probe()
  from mipi_dsi_disp_init().
* Move mach/mipi_dsi.h to linux/mipi_dsi.h.
* Remove __devexit_p and __devexit since 3.10 kernel doesn't
  support them.
* Remove struct mipi_dsi_platform_data from mach/mipi_dsi.h.
* Remove mach/hardware.h, mach/clock.h, linux/fsl_device.h
  and linux/regulator/consumer.h in the drivers.
* Remove special pixel clock setting for imx6sdl since no
  issue is found without it.
* Remove unused reset, lcd_power and backlight_power interfaces
  in struct mipi_dsi_info.
* Remove unused regulator related entries in struct mipi_dsi_info.
* Remove the IOMUX_GPR3_OFFSET macro from mipi dsi driver since
  the muxing is done with common regmap APIs.
* Rename ipu_id to dev_id since i.MX6DL RM tells that lcdif can
  connect with mipi dsi.
* Add mipi dsi related information in the devicetree binding
  documentation.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275483-1 ARM: imx6q: clk: add video 27m clock
Liu Ying [Fri, 16 Aug 2013 05:44:42 +0000 (13:44 +0800)]
ENGR00275483-1 ARM: imx6q: clk: add video 27m clock

This patch adds the fixed factor video 27m clock in
the imx6q clock driver. This clock's parent clock
is the pll3_pfd1_540m clock.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex lock
Huang Shijie [Fri, 12 Apr 2013 07:33:11 +0000 (15:33 +0800)]
ENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex lock

The NOR(M29W256GL7AN6E) may suffers a write-buffer timeout during
the bonnie++/ubifs stress test. Micron has confirmed that it is
a silicon bug in the Nor.

This patch is just a workaround to fix this issue for this NOR.

With this patch, the read/write/erase will do in the synchronous way.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00257947 mtd: use memcpy to replace the memcpy_fromio
Huang Shijie [Mon, 8 Apr 2013 08:56:46 +0000 (16:56 +0800)]
ENGR00257947 mtd: use memcpy to replace the memcpy_fromio

During the read of NOR, the kernel actually calls the inline_map_copy_from()
to read the data out. And inline_map_copy_from() will use the memcpy_fromio()
to do the real job.

The memcpy_fromio macro maps _memcpy_fromio() in the current code.
But the _memcpy_fromio() will use readb() to do the copy work one byte
by one byte. This makes the read performance of NOR very slow(about 2~3MB/s).

A similiar discussion could be found in:
http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/003860.html

This patch replace the memcpy_fromio with memcpy which is optimized by the
kernel.

The following is the result from mtd_speedtest with M29W256GL7AN6E:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: not NAND flash, assume page size is 512 bytes.
mtd_speedtest: MTD device size 4194304, eraseblock size 131072, page size 512,
count of eraseblocks 32, pages per eraseblock 256, OOB size 0
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 845 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 19504 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 845 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 19140 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 846 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 19320 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 233 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 224 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 224 KiB/s
mtd_speedtest: finished
=================================================

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00275634: ARM: imx_v6_v7_defconfig: Add some USB configurations
Peter Chen [Mon, 19 Aug 2013 04:42:00 +0000 (12:42 +0800)]
ENGR00275634: ARM: imx_v6_v7_defconfig: Add some USB configurations

- Enable USB gadget function
- Enable USB Audio and Camera functions
- Disable CONFIG_USB_EHCI_MXC to avoid confusion due to we
only use chipidea driver as USB driver for this BSP

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00275643 dts: Add mma8450 support on i.MX6SL EVK
Luwei Zhou [Mon, 19 Aug 2013 07:04:22 +0000 (15:04 +0800)]
ENGR00275643 dts: Add mma8450 support on i.MX6SL EVK

Add mma8450 support on i.MX6SL EVK.

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00275640 dts: Add i2c dts support on i.MX6SL EVK
Luwei Zhou [Mon, 19 Aug 2013 06:48:42 +0000 (14:48 +0800)]
ENGR00275640 dts: Add i2c dts support on i.MX6SL EVK

Add i2c dts support on i.MX6SL EVK.

Signed-off-by: Luwei Zhou <b45643@freescale.com>
10 years agoENGR00275419-3 mxc fb: ldb: defer some init operations
Liu Ying [Thu, 15 Aug 2013 10:18:33 +0000 (18:18 +0800)]
ENGR00275419-3 mxc fb: ldb: defer some init operations

This patch defers some ldb initialization operations
in the post init interface so that the drive won't
overwrite or damage a registered display device's setup
with the same dev_id and disp_id. The deferred operations
are the parent setting for ipu_dix_clk and the fb notifier
client register.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275419-2 mxc ipuv3 fb: call necessary post init interface
Liu Ying [Thu, 15 Aug 2013 10:14:16 +0000 (18:14 +0800)]
ENGR00275419-2 mxc ipuv3 fb: call necessary post init interface

This patch adds the post init mxc display driver function call
in the .probe() function to give a chance to display encoders
to defer necessary opertions after their dev_ids and disp_ids
pass usage check.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00275419-1 mxc dispdrv: introduce post init interface
Liu Ying [Thu, 15 Aug 2013 10:01:40 +0000 (18:01 +0800)]
ENGR00275419-1 mxc dispdrv: introduce post init interface

This patch adds a new post init interface in the mxc display
driver. It may do necessary deferred operations after a
display device's dev_id and disp_id pass usage check. This
is a feasible way to avoid any setup being overwitten or
damaged by a late coming display device which uses the same
dev_id and disp_id with a display already registered.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoARM: imx: Move anatop related from board file to anatop driver
Peter Chen [Wed, 14 Aug 2013 03:40:56 +0000 (11:40 +0800)]
ARM: imx: Move anatop related from board file to anatop driver

Move anatop related (For USB) from board file to anatop driver

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoARM: dtsi: imx6qdl-sabresd: Add USB OTG vbus pin to pinctrl_hog
Peter Chen [Mon, 12 Aug 2013 08:51:39 +0000 (16:51 +0800)]
ARM: dtsi: imx6qdl-sabresd: Add USB OTG vbus pin to pinctrl_hog

USB OTG vbus pin needs to be configured as gpio function at
sabresd board.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoARM: dtsi: imx6qdl-sabresd: Add USB host 1 VBUS regulator
Peter Chen [Mon, 12 Aug 2013 08:46:24 +0000 (16:46 +0800)]
ARM: dtsi: imx6qdl-sabresd: Add USB host 1 VBUS regulator

We enabled USB host 1, so host 1's vbus should be on to let
host 1 work.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoUSB: chipidea: i.MX: simplify usbmisc
Sascha Hauer [Mon, 12 Aug 2013 10:29:42 +0000 (12:29 +0200)]
USB: chipidea: i.MX: simplify usbmisc

The chipidea i.MX driver is split into two drivers. The ci_hdrc_imx driver
handles the chipidea cores and the usbmisc_imx driver handles the noncore
registers common to all chipidea cores (but SoC specific). Current flow is:

- usbmisc sets an ops pointer in the ci_hdrc_imx driver during probe
- ci_hdrc_imx checks if the pointer is valid during probe, if yes calls
  the functions in the ops pointer.
- usbmisc_imx calls back into the ci_hdrc_imx driver to get additional
  data

This is overly complicated and has problems if the drivers are compiled
as modules. In this case the usbmisc_imx driver can be unloaded even if
the ci_hdrc_imx driver still needs usbmisc functionality.

This patch changes this by letting the ci_hdrc_imx driver calling functions
from the usbmisc_imx driver. This way the symbol resolving during module
load makes sure the ci_hdrc_imx driver depends on the usbmisc_imx driver.

Also instead of letting the usbmisc_imx driver call back into the ci_hdrc_imx
driver, pass the needed data in the first place.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: udc: .pullup is valid only when vbus is there
Peter Chen [Mon, 12 Aug 2013 01:22:59 +0000 (09:22 +0800)]
usb: chipidea: udc: .pullup is valid only when vbus is there

For chipidea, the IP must know vbus before the controller
begins to run. So the .pullup should only be called when
the vbus is there.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: retire flag CI_HDRC_PULLUP_ON_VBUS
Peter Chen [Mon, 12 Aug 2013 01:22:58 +0000 (09:22 +0800)]
usb: chipidea: retire flag CI_HDRC_PULLUP_ON_VBUS

Currently, the controller only runs when the ci->vbus_active is true.
So the flag CI_HDRC_PULLUP_ON_VBUS is useless no longer.
If the user doesn't have otgsc, he/she needs to change ci_handle_vbus_change
to update ci->vbus_active.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: udc: fix misuse of REGS_SHARED and PULLUP_ON_VBUS flags
Peter Chen [Mon, 12 Aug 2013 01:22:57 +0000 (09:22 +0800)]
usb: chipidea: udc: fix misuse of REGS_SHARED and PULLUP_ON_VBUS flags

CI_HDRC_REGS_SHARED stands for the controller registers is shared
with other USB drivers, if all USB drivers are at chipidea/, it doesn't
needed to be set.
CI_HDRC_PULLUP_ON_VBUS stands for pullup dp when the vbus is on. This
flag doesn't need to be set if the vbus is always on for gadget
since dp has always pulled up after the gadget has initialized.

So, the current code seems to misuse this two flags.
- When the gadget initializes, the controller doesn't need to run if
it depends on vbus (CI_HDRC_PULLUP_ON_VBUS), it does not relate to
shared register.
- When the gadget starts (load one gadget module), the controller
can run if vbus is on (CI_HDRC_PULLUP_ON_VBUS), it also does not
relate to shared register.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: add wait vbus lower than OTGSC_BSV before role starts
Peter Chen [Mon, 12 Aug 2013 01:22:56 +0000 (09:22 +0800)]
usb: chipidea: add wait vbus lower than OTGSC_BSV before role starts

When the gadget role starts, we need to make sure the vbus is lower
than OTGSC_BSV, or there will be an vbus interrupt since we use
B_SESSION_VALID as vbus interrupt to indicate connect and disconnect.
When the host role starts, it may not be useful to wait vbus to lower
than OTGSC_BSV, but it can indicate some hardware problems like the
vbus is still higher than OTGSC_BSV after we disconnect to host some
time later (5000 milliseconds currently), which is obvious not correct.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: add vbus interrupt handler
Peter Chen [Mon, 12 Aug 2013 01:22:55 +0000 (09:22 +0800)]
usb: chipidea: add vbus interrupt handler

We add vbus interrupt handler at ci_otg_work, it uses OTGSC_BSV(at otgsc)
to know it is connect or disconnet event.
Meanwhile, we introduce two flags id_event and b_sess_valid_event to
indicate it is an id interrupt or a vbus interrupt.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: move otg related things to otg file
Peter Chen [Mon, 12 Aug 2013 01:22:54 +0000 (09:22 +0800)]
usb: chipidea: move otg related things to otg file

Move otg related things to otg file.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: disable all interrupts and clear all interrupts status
Peter Chen [Mon, 12 Aug 2013 01:22:53 +0000 (09:22 +0800)]
usb: chipidea: disable all interrupts and clear all interrupts status

During the initialization, it needs to disable all interrupts
enable bit as well as clear all interrupts status bits to avoid
exceptional interrupt.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: add flag CI_HDRC_DUAL_ROLE_NOT_OTG
Peter Chen [Mon, 12 Aug 2013 01:22:52 +0000 (09:22 +0800)]
usb: chipidea: add flag CI_HDRC_DUAL_ROLE_NOT_OTG

Since we need otgsc to know vbus's status at some chipidea
controllers even it is peripheral-only mode. Besides, some
SoCs (eg, AR9331 SoC) don't have otgsc register even
the DCCPARAMS_DC and DCCPARAMS_HC are both 1 at CAP_DCCPARAMS.

We inroduce flag CI_HDRC_DUAL_ROLE_NOT_OTG to indicate if the
controller is dual role, but not supports OTG. If this flag is
not set, we follow the rule that if DCCPARAMS_DC and DCCPARAMS_HC
are both 1 at CAP_DCCPARAMS, then this controller is otg capable.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: add role init and destroy APIs
Peter Chen [Mon, 12 Aug 2013 01:22:51 +0000 (09:22 +0800)]
usb: chipidea: add role init and destroy APIs

- The role's init will be called at probe procedure.
- The role's destroy will be called at fail patch
at probe and driver's removal.
- The role's start/stop will be called when specific
role has started.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: otg: add otg file used to access otgsc
Peter Chen [Mon, 12 Aug 2013 01:22:50 +0000 (09:22 +0800)]
usb: chipidea: otg: add otg file used to access otgsc

This file is mainly used to access otgsc currently, it may
add otg related things in the future.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: udc: otg_set_peripheral is useless for some chipidea users
Peter Chen [Mon, 12 Aug 2013 01:22:49 +0000 (09:22 +0800)]
usb: chipidea: udc: otg_set_peripheral is useless for some chipidea users

It is useless at below cases:
- If we implement both usb host and device at chipidea driver.
- If we don't need phy->otg.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: host: add vbus regulator control
Peter Chen [Mon, 12 Aug 2013 01:22:48 +0000 (09:22 +0800)]
usb: chipidea: host: add vbus regulator control

For boards which have board level vbus control (eg, through gpio), we
need to vbus operation according to below rules:
- For host, we need open vbus before start hcd, and close it
after remove hcd.
- For otg, the vbus needs to be on/off when usb role switches.
When the host roles begins, it opens vbus; when the host role
finishes, it closes vbus.

We put vbus operation to host as host is the only vbus user,
When we are at host mode, the vbus is on, when we are not at
host mode, vbus should be off.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: move vbus regulator operation to core
Peter Chen [Mon, 12 Aug 2013 01:22:47 +0000 (09:22 +0800)]
usb: chipidea: move vbus regulator operation to core

The vbus regulator is a common element for USB vbus operation,
So, move it from glue layer to core.

Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: remove previous MODULE_ALIAS
Fabio Estevam [Wed, 31 Jul 2013 01:04:28 +0000 (22:04 -0300)]
usb: chipidea: remove previous MODULE_ALIAS

After the rename to ci_hdrc we ended up with two MODULE_ALIAS entries, so
remove the old one.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: prevent endless loop registering platform_devices when probe fails
Lothar Waßmann [Wed, 31 Jul 2013 14:21:16 +0000 (16:21 +0200)]
usb: chipidea: prevent endless loop registering platform_devices when probe fails

Commit 40dcd0e ("usb: chipidea: add PTW, PTS and STS handling") introduced
the following code to the ci_hdrc_probe() function:

+       if (!dev->of_node && dev->parent)
+               dev->of_node = dev->parent->of_node;

This inadvertently associates the ci_hdrc device with the ci_hdrc_imx
driver (which created the ci_hdrc device in the first place).

This results in ci_hdrc_imx_probe() being run for the ci_hdrc device
if ci_hdrc_probe() fails for some reason.
ci_hdrc_imx_probe() will happily create a new ci_hdrc platform_device
whose probing will likewise fail and trigger a new invocation of
ci_hdrc_imx_probe() ... ad nauseam.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Reviewed-and-tested-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: don't clobber return value of ci_role_start()
Lothar Waßmann [Wed, 31 Jul 2013 14:21:15 +0000 (16:21 +0200)]
usb: chipidea: don't clobber return value of ci_role_start()

If a role fails to start, propagate the error code up the call stack
from probe.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: ci_hdrc_imx: remove an unsolicited module_put() call from ci_hdrc_imx_...
Lothar Waßmann [Wed, 31 Jul 2013 14:21:14 +0000 (16:21 +0200)]
usb: chipidea: ci_hdrc_imx: remove an unsolicited module_put() call from ci_hdrc_imx_remove()

This prevents the USB PHY refcount to be decremented below zero upon
unloading the ci-hdrc-imx module.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: improve kconfig 2.0
Lothar Waßmann [Wed, 31 Jul 2013 14:21:13 +0000 (16:21 +0200)]
usb: chipidea: improve kconfig 2.0

This patch provides a cleaner solution to the problem described in
commit 20a677fd ("usb: chipidea: improve kconfig").

The goal to be achieved is to force USB_CHIPIDEA=m if either
USB_EHCI_HCD=m or USB_GADGET=m.
If both are 'y' USB_CHIPIDEA may be selected to be 'm' or 'y'.

The old patch had the drawback, that USB_CHIPIDEA could be chosen as
'y' though USB_EHCI_HCD or USB_GADGET (or both) were 'm' leading to a
situation where USB_CHIPIDEA_HOST or USB_CHIPIDEA_UDC vanished from
the config options producing a compilable but dysfunctional driver.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Reviewed-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: imx: delete the dead code
Peter Chen [Thu, 8 Aug 2013 06:52:54 +0000 (14:52 +0800)]
usb: chipidea: imx: delete the dead code

Remove an unused macro leftover from the old initialization code.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agousb: chipidea: move hw_phymode_configure() into probe
Fabio Estevam [Thu, 25 Jul 2013 21:20:34 +0000 (18:20 -0300)]
usb: chipidea: move hw_phymode_configure() into probe

Currently hw_phymode_configure() is located inside hw_device_reset(), which is
only called by chipidea udc driver.

When operating in host mode, we also need to call hw_phymode_configure() in
order to properly configure the PHY mode, so move this function into probe.

After this change, USB Host1 port on mx53qsb board is functional.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Reviewed-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
10 years agoENGR00275619 net: fec: set reset phy gpio to high in .probe().
Fugang Duan [Mon, 19 Aug 2013 02:58:24 +0000 (10:58 +0800)]
ENGR00275619 net: fec: set reset phy gpio to high in .probe().

In .probe() call fec_of_init() to parse phy reset gpio, and
request the gpio for later use. For the init, we must set the
gpio to high to let phy power on.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275004-6: ARM: defconfig: imx_v6_v7: add sabresd battery driver
Robin Gong [Tue, 13 Aug 2013 09:58:12 +0000 (17:58 +0800)]
ENGR00275004-6: ARM: defconfig: imx_v6_v7: add sabresd battery driver

Enable Sabresd-battery driver by default.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00275004-5: ARM: dts: imx6qdl-sabresd: add sabresd battery driver in dts
Robin Gong [Fri, 16 Aug 2013 03:41:33 +0000 (11:41 +0800)]
ENGR00275004-5: ARM: dts: imx6qdl-sabresd: add sabresd  battery driver in dts

Add sabresd battery driver device node in dts.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00275004-4: power: sabresd_battery: add sabresd_battery driver
Robin Gong [Tue, 13 Aug 2013 09:49:54 +0000 (17:49 +0800)]
ENGR00275004-4: power: sabresd_battery: add sabresd_battery driver

Add sabresd battery driver which based on Max8903 charger IC.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00275004-3: ARM: defconfig: imx_v6_v7: add max11801 driver
Robin Gong [Tue, 13 Aug 2013 09:48:05 +0000 (17:48 +0800)]
ENGR00275004-3: ARM: defconfig: imx_v6_v7: add max11801 driver

Add max11801 driver in imx_v6_v7_defconfig

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00275004-2 ARM: dts: imx6qdl-sabresd: add max11801_ts device
Robin Gong [Tue, 13 Aug 2013 09:18:26 +0000 (17:18 +0800)]
ENGR00275004-2 ARM: dts: imx6qdl-sabresd: add max11801_ts device

Add max11801_ts device node

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00275004-1 input: touchscreen: max11801_ts: Add DCM mode for max11801 ADC
Robin Gong [Tue, 13 Aug 2013 08:58:26 +0000 (16:58 +0800)]
ENGR00275004-1 input: touchscreen: max11801_ts: Add DCM mode for max11801 ADC

We need add DCM mode/AUX mode for ADC converter function of max11801, so that
it can be used to read voltage of battery. Meanwhile, let the driver based on
device tree. The patchset is based on below patch (V3.5.7):

commit 4001774cf51f0140ae7e4e8e0ec1d86475790682
Author: Rong Dian <b38775@freescale.com>
Date:   Fri Jan 18 14:24:28 2013 +0800

    Engr00240284-1 MAX11801: Add DCM aux adc sample function

        1.Add direct conversion mode operations
2.Add aux adc sample function

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00273792-2 ARM:iMX6x: Improve CPUFREQ driver.
Ranjani Vaidyanathan [Fri, 16 Aug 2013 17:20:16 +0000 (12:20 -0500)]
ENGR00273792-2 ARM:iMX6x: Improve CPUFREQ driver.

 1. Add support for VDDSOC/VDDPU operating points that track
 the VDDARM_CAP within 50mV to the device tree.
 2. Add CPU freq and VDDSOC/VDDPU operating points to MX6DL and MX6SL.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00273792-1 Cpufreq:iMX6x:Improve CPUFREQ driver.
Ranjani Vaidyanathan [Fri, 16 Aug 2013 17:19:16 +0000 (12:19 -0500)]
ENGR00273792-1 Cpufreq:iMX6x:Improve CPUFREQ driver.

Add support for VDDSOC/VDDPU operating points that track
the VDDARM cap to the device tree.

Add the description for soc-operating-points that need to be added to
the device tree files.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00275500: dts: Add ptp clock pin support for i.MX6Q/DL sabreauto
Luwei Zhou [Fri, 16 Aug 2013 04:33:09 +0000 (12:33 +0800)]
ENGR00275500: dts: Add ptp clock pin support for i.MX6Q/DL sabreauto

Add ptp clock dts support on i.MX6Q/DL sabreauto.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275479 ptp: Remove old way of PTP pin collision
Luwei Zhou [Fri, 16 Aug 2013 03:13:28 +0000 (11:13 +0800)]
ENGR00275479 ptp: Remove old way of PTP pin collision

This reverts commit aa0cfc5afaf18ce8fab696483b4ca533e4741430.
We should use dts to deal with pin collision.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275481 dts: Remove PTP pin collision in dts
Luwei Zhou [Fri, 16 Aug 2013 02:53:26 +0000 (10:53 +0800)]
ENGR00275481 dts: Remove PTP pin collision in dts

This reverts commit 944b782d88b1ecece76942345f5e149c63a1d6d8.
We will use dts to deal with pin collision.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275403 ARM: imx: Support CPU hotplug
Anson Huang [Thu, 15 Aug 2013 20:18:22 +0000 (16:18 -0400)]
ENGR00275403 ARM: imx: Support CPU hotplug

When doing secondary cores enable/disable, the enable bit
and reset bit in SRC should be written together. Without
this, CPU hotplug can NOT pass stress test, and with this,
it can passed over 500k iterations CPU hotplug test with
many threads running in background, at least three boards
are tested.

When trying hotplug a secondary core, it should stay
in idle forever before it is disabled from SRC.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275469 net:fec: move devm_* and of_* apis to probe function
Fugang Duan [Fri, 16 Aug 2013 01:16:21 +0000 (09:16 +0800)]
ENGR00275469 net:fec: move devm_* and of_* apis to probe function

fec_reset_phy() function is called in fec_enet_open(). And
fec_reset_phy() call of_get_named_gpio() and devm_gpio_request_one()
apis, which makes no sense since the two apis do something that
should only be done at .probe() time.

So move two functions into fec_probe() and only leave gpio_set_value()
and msleep() calls in fec_reset_phy(). And remove fec_free_reset_gpio()
function.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoENGR00275414 dts: Add device tree support for ptp
Luwei Zhou [Thu, 15 Aug 2013 10:02:38 +0000 (18:02 +0800)]
ENGR00275414 dts: Add device tree support for ptp

Add device tree support for ptp.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275410 ptp: fix ptp pin collision
Luwei Zhou [Thu, 15 Aug 2013 09:56:44 +0000 (17:56 +0800)]
ENGR00275410 ptp: fix ptp pin collision

Ptp ts_clk pin have collision with spdif and i2c3, remove
other modules pin ctrl when enable ptp.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275371 net: fec: PTP: Add ptp support for IXXAT stack
Luwei Zhou [Thu, 15 Aug 2013 05:45:23 +0000 (13:45 +0800)]
ENGR00275371 net: fec: PTP: Add ptp support for IXXAT stack

These patch  add ptp support for IXXAT stack.
Cherry picked from commit 1c8839574ac87826f53b96f987975a9bb1d72915.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275394 i.MX6:IEEE1588: disable phy Ar8031 SmartEEE
Luwei Zhou [Thu, 15 Aug 2013 06:35:32 +0000 (14:35 +0800)]
ENGR00275394 i.MX6:IEEE1588: disable phy Ar8031 SmartEEE

Connecting two boards directly more than 2 hours, Ar8031 phy link
status generates glitch, which cause ethernet link down/up issue, but
ethernet still be active. There have three cases to validate the issue:

Item#1: If add performance stress test while runing IEEE1588, the link
down/up issue cannot be found.
Item#2: If insert switch between two net nodes and run IEEE1588 test,
the issue also cannot be found.
Item#3: If disable AR8031 SmartEEE feature, after two days overnight test,
no such issue found.

The issue is caused by phy Ar8031 SmartEEE feature, Item#1 and Item#2 can
prevent phy enter lpm mode, which match the Item#3 test result, so disable
SmartEEE feature to avoid the link issue generation.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275023-5 ARM: imx: Support standby mode for suspend
Anson Huang [Wed, 14 Aug 2013 19:51:41 +0000 (15:51 -0400)]
ENGR00275023-5 ARM: imx: Support standby mode for suspend

Support standby mode for suspend, standby mode will only
make CCM enter STOP mode with OSC on and no PMIC_STBY_REQ
asserted, standby mode focus more on resume latency than
power number.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275023-4 ARM: imx: Setting CPU isolation according to dts
Anson Huang [Wed, 14 Aug 2013 19:47:18 +0000 (15:47 -0400)]
ENGR00275023-4 ARM: imx: Setting CPU isolation according to dts

Different boards may use different PMICs, and the PMICs' power
rail ramp up time can impact the DSM mode a lot, so we need to
adjust the CPU isolation timing setting according to board dts
setting, if there is no such setting defined in dts, use default
value.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275023-3 ARM: imx: Correct CCM setting for DSM mode
Anson Huang [Wed, 14 Aug 2013 17:26:54 +0000 (13:26 -0400)]
ENGR00275023-3 ARM: imx: Correct CCM setting for DSM mode

RBC is already enabled right before suspend, so no need to
enable it in the CCM lpm setting;

Need to disable CCM int_mem_clk_lpm before entering DSM and
enable it after resume, as the whole ARM core will be powered
down in DSM.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275023-2 ARM: imx: Correct CCM_CGPR bit17's name
Anson Huang [Wed, 14 Aug 2013 17:17:51 +0000 (13:17 -0400)]
ENGR00275023-2 ARM: imx: Correct CCM_CGPR bit17's name

Correct CCM_CGPR bit17's name according to latest RM,
it is called INT_MEM_CLK_LPM.

Add parameter for setting CCM_CGPR_INT_MEM_CLK_LPM to
support both enable and disable setting.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275023-1 ARM: imx: Enable unsafe resume for MMC
Anson Huang [Wed, 14 Aug 2013 15:26:46 +0000 (11:26 -0400)]
ENGR00275023-1 ARM: imx: Enable unsafe resume for MMC

As we often use SD/MMC rootfs, need to enable this configuration
for successfully resume of rootfs, otherwise, rootfs will be
broken after resume.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00275385 touch: imx_v6_v7_defconfig: enable egalax single-touch support
Luwei Zhou [Thu, 15 Aug 2013 04:39:33 +0000 (12:39 +0800)]
ENGR00275385 touch: imx_v6_v7_defconfig: enable egalax single-touch support

Enable egalax touchscreen single-touch support in imx_v6_v7_defconfig.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275384 touch: config: Add egalax touch support in Kconfig
Luwei Zhou [Thu, 15 Aug 2013 04:20:19 +0000 (12:20 +0800)]
ENGR00275384 touch: config: Add egalax touch support in Kconfig

Add  egalax touchscreen as single-touch support in Kconfig.

Signed-off-by: Luwei Zhou <B45643@freescale.com>
10 years agoENGR00275377 mxc: asrc: add asrc uapi header to Kbuild
Shengjiu Wang [Thu, 15 Aug 2013 02:54:43 +0000 (10:54 +0800)]
ENGR00275377  mxc: asrc: add asrc uapi header to Kbuild

add asrc uapi header to Kbuild.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
10 years agoENGR00275070 arm: dts: add hdmi properties to i.mx6 sabreauto dts
Sandor Yu [Wed, 14 Aug 2013 05:32:42 +0000 (13:32 +0800)]
ENGR00275070 arm: dts: add hdmi properties to i.mx6 sabreauto dts

- Add hdmi properties to dts for sabreauto board.
- Remove lcd properties from sabreauto dts, because no parallel lcd
  panel for sabresdauto board.
- Change the primary lvds channel from 1 to 0 for the sabreauto board.
- Set hdmi as default secondly display for all i.mx6 board.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00275310 mxc: asrc: update asrc by dma_slave_config is updated.
Shengjiu Wang [Wed, 14 Aug 2013 10:54:02 +0000 (18:54 +0800)]
ENGR00275310 mxc: asrc: update asrc by dma_slave_config is updated.

Because of adding two parameter in dma_slave_config, so asrc driver need to
be updated.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
10 years agoENGR00275246-05: net: fec: add mac address init for imx25/imx53 fec
Fugang Duan [Wed, 14 Aug 2013 10:06:52 +0000 (18:06 +0800)]
ENGR00275246-05: net: fec: add mac address init for imx25/imx53 fec

Add mac address init for imx25/imx53 fec in restart function.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275246-04: net: fec: fix phy reset operation
Fugang Duan [Wed, 14 Aug 2013 09:55:25 +0000 (17:55 +0800)]
ENGR00275246-04: net: fec: fix phy reset operation

Current driver only do phy reset in probe function, which is
not right. Since some phy clock is disabled after module probe,
the phy enter abnormal status, which needs do reset to recovery
the phy. And do ifconfig ethx up/down test, the phy also enter
abnormal status.

The log as:
libphy: 2188000.ethernet:04 - Link is Up - 10/Full
libphy: 2188000.ethernet:04 - Link is Up - 100/Full
libphy: 2188000.ethernet:04 - Link is Down
libphy: 2188000.ethernet:04 - Link is Up - 10/Half
libphy: 2188000.ethernet:04 - Link is Up - 10/Full
libphy: 2188000.ethernet:04 - Link is Up - 100/Full
...

So, do phy reset if ethx up/down or do clock enable/disable
operation.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275246-03: ARM: imx6sl: config iomux-gpr1 to select clock for fec
Fugang Duan [Wed, 14 Aug 2013 08:26:19 +0000 (16:26 +0800)]
ENGR00275246-03: ARM: imx6sl: config iomux-gpr1 to select clock for fec

Config iomux-gpr1 to select clock source for fec system clock.
Clear gpr1[14], gpr1[18-17] bit to select the fec clock source
from internal anatop PLL.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275246-02: ARM: imx6sl: add imx6sl iomux-gpr field define
Fugang Duan [Wed, 14 Aug 2013 08:17:15 +0000 (16:17 +0800)]
ENGR00275246-02: ARM: imx6sl: add imx6sl iomux-gpr field define

Add imx6sl iomux-gpr register field define in "imx6q-iomuxc-gpr.h" header
file, which is not fully define all iomux-gpr registers and fields, only
add fec related macro define.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00275246-01: ARM: dts: add fec phy reset for imx6sl evk board
Fugang Duan [Wed, 14 Aug 2013 08:08:29 +0000 (16:08 +0800)]
ENGR00275246-01: ARM: dts: add fec phy reset for imx6sl evk board

Add fec phy reset for imx6sl evk board.
Add iomux gpr device node, which used for fec to clear gpr1[14],
gpr1[18-17] bit to select the fec clock sourcr from internal anatop PLL.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00274585-9 ASoC: change error message to debug message
Shengjiu Wang [Fri, 9 Aug 2013 06:45:51 +0000 (14:45 +0800)]
ENGR00274585-9 ASoC: change error message to debug message

This error message is not actual error, which is a warning. When using
FE/BE, if there is widget which is used by playback and capture route, then
this message will be printed.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
10 years agoENGR00274585-8 arm: defconfig: imx_v6_v7: enable cs42888
Shengjiu Wang [Fri, 9 Aug 2013 06:44:40 +0000 (14:44 +0800)]
ENGR00274585-8 arm: defconfig: imx_v6_v7: enable cs42888

build-in cs42888 by default.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
10 years agoENGR00274585-7 dtsi: add device tree for asrc p2p and esai.
Shengjiu Wang [Fri, 9 Aug 2013 06:43:05 +0000 (14:43 +0800)]
ENGR00274585-7 dtsi: add device tree for asrc p2p and esai.

add devicetree for asrc p2p and esai.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
10 years agoENGR00274585-6 ASoC: fsl: update format and buffer size in the pcm dma
Shengjiu Wang [Mon, 12 Aug 2013 06:17:13 +0000 (14:17 +0800)]
ENGR00274585-6 ASoC: fsl: update format and buffer size in the pcm dma

1. add 24bit format support.
2. enlarge the buffer size for ESAI.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>