linux.git
9 years agomtd: fsl_nfc: allow bitflips in an empty page archive/vf610-suspend-3.18-v2-var
Stefan Agner [Wed, 10 Dec 2014 12:34:08 +0000 (13:34 +0100)]
mtd: fsl_nfc: allow bitflips in an empty page

Allow bit flips in a empty page up to half of the recoverable
bits (strength / 2). Some flash show bit flips in empty pages
which are larger then the corrected bit count according to the
ECC controller. It is not yet clear how to solve this correctly,
discussion is ongoing:
http://thread.gmane.org/gmane.linux.ports.arm.kernel/295424

Since we habe a 24-bit correction, this allows up to 12 bit
flips on a empty page before reporting it as page with ECC
errors.

9 years agodrivers/rtc/rtc-snvs: fix resume when using wakealarm
Stefan Agner [Fri, 5 Dec 2014 14:57:28 +0000 (15:57 +0100)]
drivers/rtc/rtc-snvs: fix resume when using wakealarm

When using wakealarm, an interrupt is generated to resume the device.
After noirq resume, the wakealarm interrupt handler is called which
accesses registers of the SNVS block. However, at that time the clocks
have not been enabled yet by the suspend/resume code. Hence we need
to enable the clocks before IRQ's get enabled by using resume_noirq.

[   90.722059] PM: suspend of devices complete after 50.228 msecs
[   90.727955] PM: suspend devices took 0.060 seconds
[   90.733942] PM: late suspend of devices complete after 1.176 msecs
[   90.741369] PM: noirq suspend of devices complete after 1.191 msecs
[   90.748908] PM: noirq resume of devices complete after 1.199 msecs
[   90.755222] Unhandled fault: external abort on non-linefetch (0x1008) at 0x908c604c
[   90.762892] Internal error: : 1008 [#1] ARM
[   90.767082] Modules linked in:
[   90.770174] CPU: 0 PID: 421 Comm: sh Not tainted 3.18.0-rc5-00135-g0689c67-dirty #1592
[   90.778100] task: 8e03e800 ti: 8cad8000 task.ti: 8cad8000
[   90.783530] PC is at snvs_rtc_irq_handler+0x14/0x74
[   90.788424] LR is at handle_irq_event_percpu+0x3c/0x144
[   90.793662] pc : [<803b6918>]    lr : [<80048ee8>]    psr: 400f0193
[   90.793662] sp : 8cad9cb0  ip : 8cad9cd0  fp : 8cad9ccc
[   90.805145] r10: 807f497f  r9 : 8e80d480  r8 : 00000084
[   90.810379] r7 : 00000000  r6 : 00000000  r5 : 8ea16c50  r4 : 8ea16f80
[   90.816914] r3 : 908c6034  r2 : 00000000  r1 : 8e8b7010  r0 : 00000084
[   90.823452] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   90.830679] Control: 10c5387d  Table: 8ca00059  DAC: 00000015
[   90.836432] Process sh (pid: 421, stack limit = 0x8cad8238)

9 years agovideo: fsl-dcu-fb: add suspend/resume support
Stefan Agner [Fri, 5 Dec 2014 14:27:09 +0000 (15:27 +0100)]
video: fsl-dcu-fb: add suspend/resume support

Add suspend and resume support which disables the panel completely.
Tested with the main frame buffer instance (fb0).

9 years agotty: serial: fsl_lpuart: support suspend/resume
Stefan Agner [Thu, 27 Nov 2014 20:52:45 +0000 (21:52 +0100)]
tty: serial: fsl_lpuart: support suspend/resume

In order to allow wake support in STOP sleep mode, clocks are
needed. Use imx_clk_gate2_cgr to disable automatic clock gating
in low power mode STOP.

However, if wake is not enabled, the driver should disable the
clocks explicitly to save power.

9 years agommc: sdhci-pltfm: fix abort due to missing runtime PM
Stefan Agner [Tue, 2 Dec 2014 14:49:13 +0000 (15:49 +0100)]
mmc: sdhci-pltfm: fix abort due to missing runtime PM

When entering suspend while the device is in runtime PM, the
sdhci_[suspend|resume]_host function are called without taking
care of runtime PM. On the Vybrid SoC, this leads to external
abort because during runtime suspend, the clocks required for
bus access are disabled.

[   37.772967] Unhandled fault: imprecise external abort (0x1c06) at 0x76f5f000
[   37.780304] Internal error: : 1c06 [#1] ARM
[   37.784670] Modules linked in:
[   37.787908] CPU: 0 PID: 428 Comm: sh Not tainted 3.18.0-rc5-00119-geefd097-dirty #1540
[   37.796142] task: 8e246c00 ti: 8ca6c000 task.ti: 8ca6c000
[   37.801785] PC is at esdhc_writel_le+0x40/0xec
[   37.806431] LR is at sdhci_set_card_detection+0xe0/0xe4
[   37.811877] pc : [<803f0584>]    lr : [<803eaaa0>]    psr: 400f0013
[   37.811877] sp : 8ca6dd28  ip : 00000001  fp : 8ca6dd3c
[   37.823766] r10: 807a233c  r9 : 00000000  r8 : 8e8b7210
[   37.829194] r7 : 802d8a08  r6 : 8082e928  r5 : 00000000  r4 : 00000002
[   37.835974] r3 : 8ea34e90  r2 : 00000038  r1 : 00000000  r0 : 8ea32ac0
...

9 years agoremove src bla
Stefan Agner [Tue, 2 Dec 2014 13:35:22 +0000 (14:35 +0100)]
remove src bla

9 years agoARM: imx: pllv3: add shift for frequency multiplier
Stefan Agner [Tue, 2 Dec 2014 13:27:48 +0000 (14:27 +0100)]
ARM: imx: pllv3: add shift for frequency multiplier

Add shift capabilties for the frequency multiplier (DIV_SELECT) to
support Vybrid's USB PLL oddity. The PLL3 and PLL7 are the only
PLL control registers which have the DIV_SELECT bit shifted by
one. Be aware, there are known documentation errors in the
reference manual too.

9 years agoARM: vf610: initial suspend/resume support
Stefan Agner [Mon, 18 Aug 2014 22:33:44 +0000 (00:33 +0200)]
ARM: vf610: initial suspend/resume support

This patch adds initial suspend/resume support for Vybrid SoC.
The standby sleep state puts the module in LP-RUN mode which
allows to the SoC to be woken by a regular interrupt. The mem
sleep state (Suspend-to-RAM) uses the STOP mode which puts the
memory in self-refresh mode but keeps the memory clock enabled.
To wake the SoC a power management wakeup IRQ need to be enabled
using irq_set_irq_wake (e.g. through a GPIO).

9 years agoARM: imx: clk-gate2: allow custom gate configuration
Stefan Agner [Fri, 19 Sep 2014 21:04:28 +0000 (23:04 +0200)]
ARM: imx: clk-gate2: allow custom gate configuration

The 2-bit gates found i.MX and Vybrid SoC support different clock
configuration:

0b00: clk disabled
0b01: clk enabled in RUN mode but disabled in WAIT and STOP mode
0b10: clk enabled in RUN, WAIT and STOP mode (only Vybrid)
0b11: clk enabled in RUN and WAIT mode

For some clocks, we might want to configure different behaviour,
e.g. a memory clock should be on even in STOP mode. Add a new
function imx_clk_gate2_cgr which allow to configure specific
gate values through the cgr_val parameter.

9 years agoARM: imx: gpc: Support vf610 global power controller
Stefan Agner [Wed, 20 Aug 2014 10:58:50 +0000 (12:58 +0200)]
ARM: imx: gpc: Support vf610 global power controller

Support Vybrid SoC which has a similar global power controller
found in i.MX6 SoC's. The extension for the GIC interrupt
controller can be reused. However, Vybrid's GPC has no CPU
powerdown flag, hence we write this conditional.

9 years agoARM: dts: vf610-colibri: GPIO power key
Stefan Agner [Mon, 15 Sep 2014 12:42:38 +0000 (14:42 +0200)]
ARM: dts: vf610-colibri: GPIO power key

Enable GPIO power key on pad 41 which is routed to our default
wakeup pin SO-DIMM 45.

9 years agoARM: dts: vf610: add on-chip SRAM
Stefan Agner [Mon, 18 Aug 2014 22:32:47 +0000 (00:32 +0200)]
ARM: dts: vf610: add on-chip SRAM

9 years agoARM: dts: vf610: add global power controller (GPC)
Stefan Agner [Mon, 18 Aug 2014 22:32:10 +0000 (00:32 +0200)]
ARM: dts: vf610: add global power controller (GPC)

Add global power controller module (GPC) to Vybrid device tree.

9 years agoARM: colibri_vf: updated defconfig
Stefan Agner [Wed, 3 Dec 2014 16:52:56 +0000 (17:52 +0100)]
ARM: colibri_vf: updated defconfig

Several smaller updates to defconfig, mainly enable new drivers:
- IIO ADC driver
- Touchscreen driver for Colibri V50
- RTC DS1307 for carrier board RTC
- Syscon and syscon reset driver to use SoC reset capabilities (patch pending)

9 years agoMerge branch 'vf500-colibri-ts' into toradex_vf_3.18-next
Stefan Agner [Wed, 3 Dec 2014 16:32:21 +0000 (17:32 +0100)]
Merge branch 'vf500-colibri-ts' into toradex_vf_3.18-next

9 years agocolibri-vf50-ts: Add touchscreen support for Colibri VF50
Sanchayan Maity [Tue, 2 Dec 2014 14:19:13 +0000 (19:49 +0530)]
colibri-vf50-ts: Add touchscreen support for Colibri VF50

The Colibri Vybrid VF50 module supports 4-wire touchscreens using
FETs and ADC inputs. This driver uses the IIO consumer interface
and relies on the vf610_adc driver based on the IIO framework.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
9 years agoARM: dts: vf-colibri: Add device tree node for touchscreen support
Sanchayan Maity [Tue, 2 Dec 2014 14:19:12 +0000 (19:49 +0530)]
ARM: dts: vf-colibri: Add device tree node for touchscreen support

Add device tree node for touchscreen support on Colibri VF50. The
touchscreen functionality on VF50 uses the ADC channels of Vybrid
and some GPIOs. Also add pinctrl nodes for proper pinmux.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
[updated mux settings, moved touchscreen node to vf500-colibri.dtsi]
Signed-off-by: Stefan Agner <stefan@agner.ch>
9 years agoARM: dts: vfxxx: Add io-channel-cells property for ADC node
Sanchayan Maity [Tue, 2 Dec 2014 14:19:11 +0000 (19:49 +0530)]
ARM: dts: vfxxx: Add io-channel-cells property for ADC node

This commit adds io-channel-cells property to the ADC node. This
property is required in order for an IIO consumer driver to work.
Especially required for Colibri VF50, as the touchscreen driver
uses ADC channels with the ADC driver based on IIO framework.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
9 years agoMerge remote-tracking branch 'shawn/imx/soc' into toradex_vf_3.18-next
Stefan Agner [Wed, 3 Dec 2014 14:42:47 +0000 (15:42 +0100)]
Merge remote-tracking branch 'shawn/imx/soc' into toradex_vf_3.18-next

9 years agoMerge remote-tracking branch 'shawn/imx/dt' into toradex_vf_3.18-next
Stefan Agner [Wed, 3 Dec 2014 14:42:39 +0000 (15:42 +0100)]
Merge remote-tracking branch 'shawn/imx/dt' into toradex_vf_3.18-next

Conflicts:
arch/arm/boot/dts/vfxxx.dtsi

9 years agoMerge branch 'vf610-dcu-3.18-2' into toradex_vf_3.18-next
Stefan Agner [Wed, 3 Dec 2014 14:26:16 +0000 (15:26 +0100)]
Merge branch 'vf610-dcu-3.18-2' into toradex_vf_3.18-next

9 years agovideo: fsl-dcu-fb: fix signal polarity defines
Stefan Agner [Wed, 3 Dec 2014 14:15:50 +0000 (15:15 +0100)]
video: fsl-dcu-fb: fix signal polarity defines

Fix defines for pixel clock and pixel data polarity. Configuring
pixel clock is now actually possible. On most display this needs
to be set, hence until now, some displays showed green or white
artefacts (e.g. EDT 5.7"). This is solved by this commit.

9 years agoMerge branch 'vf610-nfc-3.18' into toradex_vf_3.18-next
Stefan Agner [Wed, 3 Dec 2014 14:24:39 +0000 (15:24 +0100)]
Merge branch 'vf610-nfc-3.18' into toradex_vf_3.18-next

9 years agomtd: fsl_nfc: add suspend/resume support
Stefan Agner [Fri, 28 Nov 2014 09:59:52 +0000 (10:59 +0100)]
mtd: fsl_nfc: add suspend/resume support

Move the register writes from probe into a controller init function.
In the resume function, we can make us of this function to reinitialize
the controller after resuming from deep sleep states where the
controller loses its state.

9 years agoARM vf610: add compatibilty strings of supported Vybrid SoC's
Stefan Agner [Thu, 27 Nov 2014 23:27:05 +0000 (00:27 +0100)]
ARM vf610: add compatibilty strings of supported Vybrid SoC's

The Vybrid SoC family (in the kernel known as vf610) is a familiy
of multiple similar SoC's. The VF5xx series comes without secondary
Cortex-M4 core, while the second number VFx1x indicates the presence
of a L2 cache controller.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx: Update VPU compatible strings
Fabio Estevam [Thu, 27 Nov 2014 12:18:19 +0000 (10:18 -0200)]
ARM: dts: imx: Update VPU compatible strings

Update the VPU compatible strings to also use "cnm,coda<model>".

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf-colibri: add CLKOUT pin to pinctrl of FEC1
Stefan Agner [Thu, 27 Nov 2014 23:40:06 +0000 (00:40 +0100)]
ARM: dts: vf-colibri: add CLKOUT pin to pinctrl of FEC1

On the Colibri module, the RMII clock for the Ethernet PHY is
generated by the SoC. This patch adds that missing pin to the
pinctrl of FEC1. Because the boot loader initializes this pin,
ethernet worked even without this pin so far.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf610: enable watchdog for Cortex-A5 dt's
Stefan Agner [Thu, 27 Nov 2014 23:35:36 +0000 (00:35 +0100)]
ARM: dts: vf610: enable watchdog for Cortex-A5 dt's

During restructuring of the device tree files the watchdog was
changed to be disabled by default. However, since the watchdog
instance is dedicated to the Cortex-A5, enable the peripheral
by default in the base device tree vf500.dtsi.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoapf27dev: add max5821 to the dts
Philippe Reynes [Thu, 27 Nov 2014 20:33:59 +0000 (21:33 +0100)]
apf27dev: add max5821 to the dts

Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoMerge branch 'shawn/for-next' into toradex_vf_3.18-next
Stefan Agner [Fri, 28 Nov 2014 09:55:58 +0000 (10:55 +0100)]
Merge branch 'shawn/for-next' into toradex_vf_3.18-next

Conflicts:
arch/arm/boot/dts/imx6q-tbs2910.dts
arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
arch/arm/boot/dts/vf-colibri.dtsi
arch/arm/boot/dts/vf500.dtsi
arch/arm/boot/dts/vf610-cosmic.dts
arch/arm/boot/dts/vf610-twr.dts
arch/arm/boot/dts/vfxxx.dtsi

9 years agoMerge tag 'imx-dt-3.19' into for-next
Shawn Guo [Sun, 23 Nov 2014 08:26:45 +0000 (16:26 +0800)]
Merge tag 'imx-dt-3.19' into for-next

The i.MX device tree changes for 3.19:
 - Device additions for board vf610-colibri, pwm, backlight, I2C, RTC,
   ADC etc.
 - Update i.MX6 phyFLEX board to include PCIe, CAN and audio support
 - Improve SSI clocks description for i.MX5 platforms
 - Add ENET2 support for imx6sx-sdb board
 - Add device tree source for LS1021A SoC, board QDS and TWR
 - Enable cpufreq support for i.MX53
 - Enable VPU device support for i.MX6QDL
 - Enable poweroff support for i.MX6 SoCs
 - Add support for TBS2910 Matrix ARM mini PC which is built on i.MX6Q
 - Create generic base device trees for Vybrid and add support for
   Colibri VF50

Note: the change set is built on top of imx-soc-3.19 to resolve the
dependency that  "ARM: dts: imx53: add cpufreq-dt support" uses the
clock define IMX5_CLK_ARM that is added by "ARM: imx53: clk: add ARM
clock".

9 years agoMerge tag 'imx-soc-3.19' into for-next
Shawn Guo [Sun, 23 Nov 2014 08:26:39 +0000 (16:26 +0800)]
Merge tag 'imx-soc-3.19' into for-next

The i.MX SoC update for 3.19:
 - Update i.MX6 suspend code to check DDR instead of CPU type, as the
   difference we need to handle is between LPDDR2 and DDR3, not SoCs.
 - Set anatop properly for LPDDR2 in DSM mode
 - Add support for new SoC LS1021A which integrates dual Cortex-A7
 - Add ENET initialization for i.MX6SX platform
 - Add cpufreq support for i.MX53 platform
 - Add a SNVS based poweroff driver for i.MX6 platforms
 - Use ARM  Global Timer as clocksource on VF610

Note: the change set is built on top of tag imx-fixes-3.18-2 to resolve
a conflict on file arch/arm/mach-imx/clk-vf610.c.

9 years agoMerge tag 'imx-cleanup-3.19' into for-next
Shawn Guo [Sun, 23 Nov 2014 08:26:33 +0000 (16:26 +0800)]
Merge tag 'imx-cleanup-3.19' into for-next

The i.MX cleanup for 3.19:
 - Clean up reset handler for DT machines, since reset has been handled
   in watchdog driver
 - Remove unneeded .map_io hook for a couple of i.MX6 machines
 - A few small i.MX6 device tree source cleanups
 - Some random iomuxc and pllv3 code cleanup

9 years agoARM: dts: imx6q-tbs2910: Enable snvs-poweroff imx-dt-3.19
Soeren Moch [Wed, 19 Nov 2014 06:54:49 +0000 (07:54 +0100)]
ARM: dts: imx6q-tbs2910: Enable snvs-poweroff

This patch enables snvs-poweroff for TBS2910 boards.

Signed-off-by: Soeren Moch <smoch@web.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: add pm_power_off support for i.mx6 chips
Robin Gong [Wed, 12 Nov 2014 08:20:37 +0000 (16:20 +0800)]
ARM: dts: imx6: add pm_power_off support for i.mx6 chips

All chips of i.mx6 can be powered off by programming SNVS.
For example :
On i.mx6q-sabresd board, PMIC_ON_REQ connect with external
pmic ON/OFF pin, that will cause the whole PMIC powered off
except VSNVS. And system can restart once PMIC_ON_REQ goes
high by push POWRER key.

Signed-off-by: Robin Gong <b38343@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf-colibri: add USB regulators
Stefan Agner [Sun, 16 Nov 2014 18:00:28 +0000 (19:00 +0100)]
ARM: dts: vf-colibri: add USB regulators

Add structure of USB supply logic. The USB hosts power enable
regulator is needed to control VBUS supply on the Colibri carrier
board.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: phyFLEX: Add CAN support
Christian Hemp [Fri, 14 Nov 2014 13:32:26 +0000 (14:32 +0100)]
ARM: dts: imx6: phyFLEX: Add CAN support

Add CAN support for Phytec phyFLEX-i.MX6 (PFL-A-02 and PBA-B-01).

Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: phyFLEX: Add PCIe
Christian Hemp [Fri, 14 Nov 2014 13:32:25 +0000 (14:32 +0100)]
ARM: dts: imx6: phyFLEX: Add PCIe

Add PCIe support for Phytec phyFLEX-i.MX6 (PFL-A-02 and PBA-B-01).

Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: phyFLEX: Set correct interrupt for pmic
Christian Hemp [Fri, 14 Nov 2014 13:32:24 +0000 (14:32 +0100)]
ARM: dts: imx6: phyFLEX: Set correct interrupt for pmic

The PMIC interrupt was changed from modul revision 1 to 2. Revision 1 was
declared as a prototype and is not in series by any customers.

Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: phyFLEX: Enable gpmi in module file
Christian Hemp [Fri, 14 Nov 2014 13:32:23 +0000 (14:32 +0100)]
ARM: dts: imx6: phyFLEX: Enable gpmi in module file

The nand is on the module (PFL-A-02) and not on the baseboard (PBA-B-01).

Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6: phyFLEX: set nodes in alphabetical order
Christian Hemp [Fri, 14 Nov 2014 13:32:22 +0000 (14:32 +0100)]
ARM: dts: imx6: phyFLEX: set nodes in alphabetical order

The gmpi and fec node were not in alphabatical order.

Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf-colibri-eval-v3.dts: Enable ST-M41T0M6 RTC
Bhuvanchandra DV [Thu, 13 Nov 2014 04:35:32 +0000 (10:05 +0530)]
ARM: dts: vf-colibri-eval-v3.dts: Enable ST-M41T0M6 RTC

ST-M41T0M6 is available on Colibri carrier boards.
Hence enable M41T0M6 RTC.

Acked-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf-colibri: Add I2C support
Bhuvanchandra DV [Thu, 13 Nov 2014 04:35:31 +0000 (10:05 +0530)]
ARM: dts: vf-colibri: Add I2C support

Acked-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6qdl: Enable CODA960 VPU
Philipp Zabel [Tue, 11 Nov 2014 21:12:47 +0000 (19:12 -0200)]
ARM: dts: imx6qdl: Enable CODA960 VPU

This patch adds links to the on-chip SRAM and reset controller nodes
and switches the interrupts. Make the BIT processor interrupt, which exists on
all variants, the first one. The JPEG unit interrupt, which does not exist on
i.MX27 and i.MX5 thus is an optional second interrupt.
Use different compatible strings for i.MX6Q/D and i.MX6S/DL, as they have to
load separate firmware images for some reason.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6q-tbs2910: Remove unneeded 'fsl,mode' property
Fabio Estevam [Wed, 5 Nov 2014 12:12:51 +0000 (10:12 -0200)]
ARM: dts: imx6q-tbs2910: Remove unneeded 'fsl,mode' property

imx6q-tbs2910 board uses sgtl5000 codec and the machine file (imx-sgtl5000)
already sets SSI in slave mode and codec in master mode, so there is no need
for having this property.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Soeren Moch <smoch@web.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf610: enable USB misc/phy nodes where necessary
Stefan Agner [Tue, 4 Nov 2014 13:07:09 +0000 (14:07 +0100)]
ARM: dts: vf610: enable USB misc/phy nodes where necessary

Since restructuring of the device tree files, the USB misc/phy
nodes are disabled by default. Hence we need to enable those
explicitly when USB is used.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf610: use new GPIO support
Stefan Agner [Tue, 4 Nov 2014 13:07:08 +0000 (14:07 +0100)]
ARM: dts: vf610: use new GPIO support

Use GPIO support by adding SD card detection configuration and
GPIO pinmux for Colibri's standard GPIO pins. Attach the GPIO
pins to the iomuxc node to get the GPIO pin settings applied.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: pbab01: enable I2S audio on phyFLEX-i.MX6 boards
Dmitry Lavnikevich [Tue, 4 Nov 2014 13:05:48 +0000 (16:05 +0300)]
ARM: dts: pbab01: enable I2S audio on phyFLEX-i.MX6 boards

Audio on phyFLEX boards is presented by tlv320aic3007 codec connected
over SSI interface.

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: pbab01: move i2c pins and frequency configuration into pfla02
Dmitry Lavnikevich [Tue, 4 Nov 2014 13:05:47 +0000 (16:05 +0300)]
ARM: dts: pbab01: move i2c pins and frequency configuration into pfla02

Since pins and frequency are specific to module (pfla02), not base board
(pbab02), it is better to be initialized in corresponding dts file.

This patch fixes i2c2, i2c3 pin configuration which caused messages:

imx6q-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/i2c2grp
imx6q-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/i2c3grp
imx6q-pinctrl 20e0000.iomuxc: unable to find group for node i2c2grp
imx6q-pinctrl 20e0000.iomuxc: unable to find group for node i2c3grp

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf500-colibri: add Colibri VF50 support
Stefan Agner [Sun, 2 Nov 2014 20:36:47 +0000 (21:36 +0100)]
ARM: dts: vf500-colibri: add Colibri VF50 support

Add Colibri VF50 device tree files vf500-colibri.dtsi and
vf500-colibri-eval-v3.dts, in line with the Colibri VF61 device tree
files. However, to minimize dupplication we also add vf-colibri.dtsi
and vf-colibri-eval-v3.dtsi which contain the common device tree
nodes.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf610: create generic base device trees
Stefan Agner [Sun, 2 Nov 2014 20:36:46 +0000 (21:36 +0100)]
ARM: dts: vf610: create generic base device trees

This adds more generic base device trees for Vybrid SoCs. There
are three series of Vybrid SoC commonly available:
- VF3xx series: single core, Cortex-A5 without external memory
- VF5xx series: single core, Cortex-A5
- VF6xx series: dual core, Cortex-A5/Cortex-M4

The second digit represents the presents of a L2 cache (VFx1x).

The VF3xx series are not suitable for Linux especially since the
internal memory is quite small (1.5MiB).

The VF500 is essentially the base SoC, with only one core and
without L1 cache. The VF610 is a superset of the VF500, hence
vf500.dtsi is then included and enhanced by vf610.dtsi. There is
no board using VF510 or VF600 currently, but, if needed, they can
be added easily.

The Linux kernel can also run on the Cortex-M4 CPU of Vybrid
using !MMU support. This patchset creates a device tree structure
which allows to share peripherals nodes for a VF6xx Cortex-M4
device tree too. The two CPU types have different views of the
system: Foremost they are using different interrupt controllers,
but also the memory map is slightly different. The base device
tree vfxxx.dtsi allows to create SoC and board level device trees
supporting the Cortex-M4 while reusing the shared peripherals
nodes.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: vf610: assign oscillator to clock module
Stefan Agner [Sun, 2 Nov 2014 20:36:44 +0000 (21:36 +0100)]
ARM: dts: vf610: assign oscillator to clock module

The clock controller module (CCM) has several clock inputs, which
are connected to external crystal oscillators. To reflect this,
assign these fixed clocks to the CCM node directly.

This especially resolves initialization order dependencies we had
with the earlier initialization code: When resolving of the fixed
clocks failed in clk-vf610, the code created fixed clocks with a
rate of 0.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agodt-bindings: arm: add Freescale LS1021A SoC device tree binding
Jingchang Lu [Fri, 31 Oct 2014 09:01:11 +0000 (17:01 +0800)]
dt-bindings: arm: add Freescale LS1021A SoC device tree binding

Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: Add initial LS1021A TWR board dts support
Jingchang Lu [Fri, 31 Oct 2014 09:01:10 +0000 (17:01 +0800)]
ARM: dts: Add initial LS1021A TWR board dts support

The LS1021A TWR is a low cost, high-performance evaluation,
development and test platform supporting the LS1021A processor.
It is optimized to support the high-bandwidth DDR3L memory and
a full complement of high-speed SerDes ports.

For more detail information about the LS1021A TWR board, please
refer to LS1021A QorIQ Tower System Reference Manual.

Signed-off-by: Chao Fu <B44548@freescale.com>
Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: Add initial LS1021A QDS board dts support
Jingchang Lu [Fri, 31 Oct 2014 09:01:09 +0000 (17:01 +0800)]
ARM: dts: Add initial LS1021A QDS board dts support

The LS1021A QorIQ development system (QDS) is a high-performance
computing evaluation, development and test platform supporting
the LS1021A processor. The LS1021A QDS is optimized to support
the high-bandwidth DDR3LP/DDR4 memory and a full complement of
high-speed SerDes ports.

For more detail information about the LS1021AQDS, please refer to
the QorIQ LS1021A Development System Reference Manual.

Signed-off-by: Alison Wang <alison.wang@freescale.com>
Signed-off-by: Chao Fu <B44548@freescale.com>
Signed-off-by: Jason Jin <Jason.Jin@freescale.com>
Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@freescale.com>
Signed-off-by: Jaiprakash Singh <b44839@freescale.com>
Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: Add SoC level device tree support for LS1021A
Jingchang Lu [Fri, 31 Oct 2014 09:01:08 +0000 (17:01 +0800)]
ARM: dts: Add SoC level device tree support for LS1021A

This add Freescale QorIQ LS1021A SoC device tree support.
The QorIQ LS1021A processor incorporates dual ARM Cortex-A7 cores,
providing virtualization support, advanced security features and the
broadest array of high-speed interconnects and optimized peripheral
features.

The LS1021A SoC shares IPs with i.MX, Vybrid and PowerPC platform.

For the detail information about Freescale QorIQ LS1021A SoC,
please refer to the QorIQ LS1021A Reference Manual.

Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com>
Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
Signed-off-by: Shaveta Leekha <shaveta@freescale.com>
Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@freescale.com>
Signed-off-by: Chao Fu <b44548@freescale.com>
Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
Signed-off-by: Alison Wang <alison.wang@freescale.com>
Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6dl: add alias for I2C4 bus
Vladimir Zapolskiy [Wed, 29 Oct 2014 14:36:30 +0000 (16:36 +0200)]
ARM: dts: imx6dl: add alias for I2C4 bus

On registration I2C bus drivers attemp to get ids from device tree
aliases, add a missing alias for I2C4 found on iMX6 DualLite/Solo.

Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: add initial support for TBS2910 Matrix ARM mini PC
Soeren Moch [Mon, 27 Oct 2014 19:10:51 +0000 (20:10 +0100)]
ARM: dts: add initial support for TBS2910 Matrix ARM mini PC

TBS2910 is a i.MX6Q based board. For additional details refer to
http://www.tbsdtv.com/products/tbs2910-matrix-arm-mini-pc.html

Signed-off-by: Soeren Moch <smoch@web.de>
Reviewed-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agodevicetree: bindings: Add vendor prefix for TBS Technologies
Soeren Moch [Mon, 27 Oct 2014 19:10:50 +0000 (20:10 +0100)]
devicetree: bindings: Add vendor prefix for TBS Technologies

TBS Technologies is a company which specializes in developing, producing
and marketing of digital TV tuner cards for PCs.

for additional details refer to http://www.tbsdtv.com/about-us.html

Signed-off-by: Soeren Moch <smoch@web.de>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6x: Add enet2 support for imx6sx-sdb board
Fugang Duan [Sun, 28 Sep 2014 08:40:36 +0000 (16:40 +0800)]
ARM: dts: imx6x: Add enet2 support for imx6sx-sdb board

Add enet2 support for imx6sx-sdb board, and add the "fsl,imx6q-fec"
compatible for fec2 node to be compatible with the old version.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx53: add cpufreq-dt support
Lucas Stach [Fri, 26 Sep 2014 13:41:03 +0000 (15:41 +0200)]
ARM: dts: imx53: add cpufreq-dt support

Add all required properties for the cpufreq-dt driver.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: vf610-colibri: Add ADC support
Sanchayan Maity [Fri, 26 Sep 2014 12:37:22 +0000 (18:07 +0530)]
ARM: dts: vf610-colibri: Add ADC support

Enable ADC support for Colibri VF61 modules

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: vf610-colibri: Add backlight support
Bhuvanchandra DV [Mon, 22 Sep 2014 10:08:12 +0000 (15:38 +0530)]
ARM: dts: vf610-colibri: Add backlight support

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: vf610-colibri: Add PWM support
Bhuvanchandra DV [Mon, 22 Sep 2014 10:08:11 +0000 (15:38 +0530)]
ARM: dts: vf610-colibri: Add PWM support

The Colibri standard defines four pins as PWM outputs, two of them (PWM
A and C) are routed to FTM instance 0 and the other two (PWM B and D)
are routed to FTM instance 1. Hence enable both FTM instances for the
Colibri module and mux the four pins accordingly.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: vf610: Add PWM second instance
Bhuvanchandra DV [Wed, 17 Sep 2014 08:16:28 +0000 (13:46 +0530)]
ARM: dts: vf610: Add PWM second instance

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: vf610: Add ARM Global Timer
Stefan Agner [Wed, 24 Sep 2014 16:20:09 +0000 (18:20 +0200)]
ARM: dts: vf610: Add ARM Global Timer

Add Global Timer support which is part of the private peripherals
of the Cortex-A5 processor. This Global Timer is compatible with the
Cortex-A9 implementation. It's a 64-bit timer and is clocked by the
peripheral clock, which is typically 133 or 166MHz on Vybrid.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Bill Pringlemeir <bpringlemeir@nbsps.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: imx51: Improve SSI clocks description
Fabio Estevam [Thu, 18 Sep 2014 23:23:49 +0000 (20:23 -0300)]
ARM: dts: imx51: Improve SSI clocks description

SSI block has 'ipg' clock for internal peripheral access and also 'baud' clock
for generating bit clock when SSI operates in master mode.

Add the extra 'baud' clock so that we can have SSI functional in master mode.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: dts: imx53: Improve SSI clocks description
Fabio Estevam [Thu, 18 Sep 2014 23:23:48 +0000 (20:23 -0300)]
ARM: dts: imx53: Improve SSI clocks description

SSI block has 'ipg' clock for internal peripheral access and also 'baud' clock
for generating bit clock when SSI operates in master mode.

Add the extra 'baud' clock so that we can have SSI functional in master mode.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoMerge tag 'imx-soc-3.19' into imx/dt
Shawn Guo [Sun, 23 Nov 2014 07:07:02 +0000 (15:07 +0800)]
Merge tag 'imx-soc-3.19' into imx/dt

The i.MX SoC update for 3.19:
 - Update i.MX6 suspend code to check DDR instead of CPU type, as the
   difference we need to handle is between LPDDR2 and DDR3, not SoCs.
 - Set anatop properly for LPDDR2 in DSM mode
 - Add support for new SoC LS1021A which integrates dual Cortex-A7
 - Add ENET initialization for i.MX6SX platform
 - Add cpufreq support for i.MX53 platform
 - Add a SNVS based poweroff driver for i.MX6 platforms
 - Use ARM  Global Timer as clocksource on VF610

Note: the change set is built on top of tag imx-fixes-3.18-2 to resolve
a conflict on file arch/arm/mach-imx/clk-vf610.c.

9 years agopower: reset: imx-snvs-poweroff: add power off driver for i.mx6 imx-soc-3.19
Robin Gong [Wed, 12 Nov 2014 08:20:38 +0000 (16:20 +0800)]
power: reset: imx-snvs-poweroff: add power off driver for i.mx6

This driver register pm_power_off with snvs power off function. If
your boards NOT use PMIC_ON_REQ to turn on/off external pmic, or use
other pin to do, please disable the driver in dts, otherwise, your
pm_power_off maybe overwrote by this driver.

Signed-off-by: Robin Gong <b38343@freescale.com>
Acked-By: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: temporarily remove CONFIG_SOC_FSL from LS1021A
Arnd Bergmann [Tue, 11 Nov 2014 16:03:25 +0000 (17:03 +0100)]
ARM: imx: temporarily remove CONFIG_SOC_FSL from LS1021A

The newly introduced LS1021A SoC selects CONFIG_SOC_FSL, which
is originally symbol used for the PowerPC based platforms
and guards lots of code that does not build on ARM.

This breaks allmodconfig, so let's remove it for now, until
either all those drivers are fixed or they use a dependency
on IMX instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: clk-vf610: get input clocks from assigned clocks
Stefan Agner [Sun, 2 Nov 2014 20:36:45 +0000 (21:36 +0100)]
ARM: imx: clk-vf610: get input clocks from assigned clocks

With the clock assignment device tree changes, the clocks get
initialized properly but the search for those clocks fails with
errors:

[    0.000000] i.MX clk 4: register failed with -17
[    0.000000] i.MX clk 5: register failed with -17

This is because the module can't find those clocks anymore, and
tries to initialize fixed clocks with the same name.

Get the clock modules input clocks from the assigned clocks by
default by using of_clk_get_by_name(). If this function returns
not a valid clock, fall back to the old behaviour and search the
input clock from the device tree's /clocks/$name node.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: Add Freescale LS1021A SMP support
Jingchang Lu [Fri, 31 Oct 2014 09:01:13 +0000 (17:01 +0800)]
ARM: imx: Add Freescale LS1021A SMP support

Freescale LS1021A SoCs deploy two cortex-A7 processors,
this adds bring-up support for the secondary core.

Signed-off-by: Jingchang Lu <b35083@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: Add initial support for Freescale LS1021A
Jingchang Lu [Fri, 31 Oct 2014 09:01:12 +0000 (17:01 +0800)]
ARM: imx: Add initial support for Freescale LS1021A

The LS1021A SoC is a dual-core Cortex-A7 based processor,
this adds the initial support for it.

Signed-off-by: Jingchang Lu <b35083@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx53: add cpufreq support
Lucas Stach [Fri, 26 Sep 2014 13:41:04 +0000 (15:41 +0200)]
ARM: imx53: add cpufreq support

Instanciate device for the generic cpufreq-dt driver.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx53: clk: add ARM clock
Lucas Stach [Fri, 26 Sep 2014 13:41:02 +0000 (15:41 +0200)]
ARM: imx53: clk: add ARM clock

The ARM clock is a virtual clock feeding the ARM partition of
the SoC. It controls multiple other clocks to ensure the right
sequencing when cpufreq changes the CPU clock rate.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx: add CPU clock type
Lucas Stach [Fri, 26 Sep 2014 13:41:01 +0000 (15:41 +0200)]
ARM: imx: add CPU clock type

This implements a virtual clock used to abstract away
all the steps needed in order to change the ARM clock,
so we don't have to push all this clock handling into
the cpufreq driver.

While it will be used for i.MX53 at first it is generic
enough to be used on i.MX6 later on.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx5: add step clock, used when reprogramming PLL1
Lucas Stach [Fri, 26 Sep 2014 13:41:00 +0000 (15:41 +0200)]
ARM: imx5: add step clock, used when reprogramming PLL1

This is the bypass clock used to feed the ARM partition
while we reprogram PLL1 to another rate.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx: add enet init for i.mx6sx
Fugang Duan [Wed, 24 Sep 2014 02:11:19 +0000 (10:11 +0800)]
ARM: imx: add enet init for i.mx6sx

Add enet init for i.mx6sx:
- Add phy ar8031 fixup
- Set enet clock source from internal PLL

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx6sx: add imx6sx iomux-gpr field define
Fugang Duan [Wed, 24 Sep 2014 02:11:18 +0000 (10:11 +0800)]
ARM: imx6sx: add imx6sx iomux-gpr field define

Add imx6sx iomux-gpr register field define in "imx6q-iomuxc-gpr.h" header
file, which is not fully define all iomux-gpr registers and fields, only
align with freescale internal tree related GPR macro define.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: vf610: Add ARM Global Timer clocksource option
Stefan Agner [Wed, 24 Sep 2014 16:20:10 +0000 (18:20 +0200)]
ARM: vf610: Add ARM Global Timer clocksource option

Add the ARM Global Timer as clocksource/scheduler clock option and
use it as default scheduler clock. This leaves the PIT timer for
other users e.g. the secondary Cortex-M4 core. Also, the Global Timer
has double the precission (running at pheripheral clock compared to
IPG clock) and a 64-bit incrementing counter register. We still keep
the PIT timer as an secondary option in case the ARM Global Timer is
not available.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Bill Pringlemeir <bpringlemeir@nbsps.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx: add anatop settings for LPDDR2 when enter DSM mode
Anson Huang [Wed, 17 Sep 2014 03:11:46 +0000 (11:11 +0800)]
ARM: imx: add anatop settings for LPDDR2 when enter DSM mode

For LPDDR2 platform, no need to enable weak2P5 in DSM mode,
it can be pulled down to save power(~0.65mW).

And per design team's recommendation, we should disconnect
VDDHIGH and SNVS in DSM mode on i.MX6SL.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoARM: imx: replace cpu type check with ddr type check
Anson Huang [Wed, 17 Sep 2014 03:11:45 +0000 (11:11 +0800)]
ARM: imx: replace cpu type check with ddr type check

As the DDR/IO and MMDC setting are different on LPDDR2 and DDR3,
we used cpu type to decide how to do these settings in suspend
before which is NOT flexible, take i.MX6SL for example, although
it has LPDDR2 on EVK board, but users can also use DDR3 on other
boards, so it is better to read the DDR type from MMDC then decide
how to do related settings.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
9 years agoMerge tag 'imx-fixes-3.18-2' into imx/soc
Shawn Guo [Sun, 23 Nov 2014 06:55:14 +0000 (14:55 +0800)]
Merge tag 'imx-fixes-3.18-2' into imx/soc

The i.MX fixes for 3.18, 2nd round:
 - Fix a regression on Vybrid platform which is caused by commit
   dc4805c2e78b (ARM: imx: remove ENABLE and BYPASS bits from clk-pllv3
   driver), and results in a missing configuration on PLL clocks.
 - Fix a regression with i.MX defconfig files where CONFIG_SPI option
   gets lost accidentally.

9 years agoARM: imx: Remove unneeded .map_io initialization imx-cleanup-3.19
Geert Uytterhoeven [Fri, 14 Nov 2014 15:53:57 +0000 (16:53 +0100)]
ARM: imx: Remove unneeded .map_io initialization

If machine_desc.map_io is not set, devicemaps_init() in the common ARM
code will call debug_ll_io_init().

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6qdl-sabresd: Fix the microphone route
Fabio Estevam [Fri, 7 Nov 2014 14:08:01 +0000 (12:08 -0200)]
ARM: dts: imx6qdl-sabresd: Fix the microphone route

Since commit e409dfbfccf9a49 ("ASoC: dapm: Add a few supply widget sanity
checks") the following error is seen:

imx-wm8962 sound: wm8962 <-> 202c000.ssi mapping ok
imx-wm8962 sound: Connecting non-supply widget to supply widget is not supported (AMIC -> MICBIAS)
imx-wm8962 sound: ASoC: no dapm match for AMIC --> (null) --> MICBIAS
imx-wm8962 sound: ASoC: Failed to add route AMIC -> direct -> MICBIAS

Invert the route between the microphone and the bias in order to fix it.

While at it, align the audio routing with imx6sl-evk and imx6sx-sdb, which have
the same wm8962 circuitry.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: refactor mxc_iomux_mode()
Dmitry Voytik [Thu, 6 Nov 2014 18:55:04 +0000 (22:55 +0400)]
ARM: imx: refactor mxc_iomux_mode()

Refactor mxc_iomux_mode():
 - since it always returns 0 make it to return void
 - remove unnecessary ret variable
 - declare variables according to the kernel coding style

Signed-off-by: Dmitry Voytik <voytikd@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: simplify clk_pllv3_prepare()
Dmitry Voytik [Thu, 6 Nov 2014 18:49:32 +0000 (22:49 +0400)]
ARM: imx: simplify clk_pllv3_prepare()

ret variable is redundant. Call clk_pllv3_wait_lock() in the end
return.

Signed-off-by: Dmitry Voytik <voytikd@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx6q: drop unnecessary semicolon
Dmitry Voytik [Thu, 6 Nov 2014 18:46:20 +0000 (22:46 +0400)]
ARM: imx6q: drop unnecessary semicolon

Drop unnecessary semicolon after closing curly bracket.

Signed-off-by: Dmitry Voytik <voytikd@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: imx: clean up machine mxc_arch_reset_init_dt reset init
Jingchang Lu [Fri, 31 Oct 2014 09:39:53 +0000 (17:39 +0800)]
ARM: imx: clean up machine mxc_arch_reset_init_dt reset init

System restart mechanism has been changed with the introduction
of "kernel restart handler call chain support". The imx2 watchdog
based restart handler has been moved to the driver, and these
restart can be removed from the machine layer.

This patch cleans up the device tree version machine reset init with
mxc_arch_reset_init_dt and removes corresponding .restart handler,
for the .init_machine that can be handled by system default after
removing the mxc_arch_reset_init_dt, the .init_machine is also removed.

Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6qdl-rex: Remove unneeded 'fsl,mode' property
Fabio Estevam [Mon, 27 Oct 2014 19:44:48 +0000 (17:44 -0200)]
ARM: dts: imx6qdl-rex: Remove unneeded 'fsl,mode' property

imx6qdl-rex boards use sgtl5000 codec and the machine file (imx-sgtl5000)
already sets SSI in slave mode and codec in master mode, so there is no need
for having this property.

Cc: Robert Nelson <robertcnelson@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6qdl-gw5x: Remove unneeded 'fsl,mode' property
Fabio Estevam [Mon, 27 Oct 2014 19:44:47 +0000 (17:44 -0200)]
ARM: dts: imx6qdl-gw5x: Remove unneeded 'fsl,mode' property

imx6qdl-gw5x boards use sgtl5000 codec and the machine file (imx-sgtl5000)
already sets SSI in slave mode and codec in master mode, so there is no need
for having this property.

Cc: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: dts: imx6qdl-sabresd: Use IMX6QDL_CLK_CKO define
Fabio Estevam [Mon, 20 Oct 2014 13:02:13 +0000 (11:02 -0200)]
ARM: dts: imx6qdl-sabresd: Use IMX6QDL_CLK_CKO define

Use IMX6QDL_CLK_CKO definition instead of its hard coded clock number for better
readability.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
9 years agoARM: colibri_vf: initial defconfig for 3.18 kernel
Stefan Agner [Thu, 20 Nov 2014 14:16:32 +0000 (15:16 +0100)]
ARM: colibri_vf: initial defconfig for 3.18 kernel

Initial default configuration for 3.18 kernel.

9 years agoMerge branch 'vf610-fec0-2nd-eth-2' into toradex_vf_3.18-next
Stefan Agner [Thu, 20 Nov 2014 13:48:42 +0000 (14:48 +0100)]
Merge branch 'vf610-fec0-2nd-eth-2' into toradex_vf_3.18-next

9 years agodrivers/net/ethernet/freescale: fec_main: Fixed dual ethernet usage archive/vf610-fec0-2nd-eth-2
Bhuvanchandra DV [Thu, 20 Nov 2014 10:00:34 +0000 (15:30 +0530)]
drivers/net/ethernet/freescale: fec_main: Fixed dual ethernet usage

On Colibri VFxx external PHY is attached on FEC1 RMII interface,
the dual ethernet board based on Colibri VFxx had an external PHY
attached on FEC0 RMII interface. Since PHY's are connected
independently bypass the code which configures the PHY's attached
on FEC0 mdio interface.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
9 years agoARM: dts: vf610: Add device trees for Dual Ethernet board
Bhuvanchandra DV [Thu, 20 Nov 2014 10:00:33 +0000 (15:30 +0530)]
ARM: dts: vf610: Add device trees for Dual Ethernet board

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
[removed external clk, fixed MDIO/MII, use common ${soc}-colibri.dtsi
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
9 years agoMerge branch 'vf610-dcu-3.18-2' into toradex_vf_3.18-next
Stefan Agner [Wed, 19 Nov 2014 12:10:33 +0000 (13:10 +0100)]
Merge branch 'vf610-dcu-3.18-2' into toradex_vf_3.18-next

Conflicts:
arch/arm/boot/dts/vf610-twr.dts
include/dt-bindings/clock/vf610-clock.h

9 years agoMerge branch 'vf610-nfc-3.18' into toradex_vf_3.18-next
Stefan Agner [Wed, 19 Nov 2014 11:57:29 +0000 (12:57 +0100)]
Merge branch 'vf610-nfc-3.18' into toradex_vf_3.18-next

9 years agoARM: colibri_vf61: enable fsl_nand driver
Stefan Agner [Wed, 19 Nov 2014 11:55:51 +0000 (12:55 +0100)]
ARM: colibri_vf61: enable fsl_nand driver

Enable NAND access by adding pinmux and fsl_nand node to device
tree.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>