Age | Commit message (Collapse) | Author |
|
Use the timing count from the parsed struct display_timings instead
of looping through the device tree again.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 65be28e2a2b3761d088b20c43994be97d74c342f)
|
|
The PIXDATA flags of the display_flags enum are controller centric,
e.g. NEGEDGE means the controller shall drive the data signals on
pixelclocks negative edge. However, the drivers flag is display
centric: Sample the data on negative (falling) edge.
Therefore, change the if statement to check for the POSEDGE flag
(which is typically not set):
Drive on positive edge => sample on negative edge
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 5652dc1ad78303fb246f050ba23c563319d823cf)
|
|
Missing commit 688f897ddd96 ("Merge remote-tracking branch
'linux-fslc/4.9-1.0.x-imx' into toradex_4.9-1.0.x-imx-next").
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The device tree got changed to use the simple card driver, so enable it
in the defconfig.
While at it remove the IMX_SGTL5000 driver now replaced by the simple card driver.
While at it remove the unused ESAI driver.
While at it remove the unused CS42XX8_I2C codec driver.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The Colibri iMX6ULL 256MB crashes in resume if the M/F mix domain is
powered down when suspending.
With this workaround this does not happen.
Crash looks as follows:
root@colibri-imx6ull:~# echo +3 > /sys/class/rtc/rtc1/wakealarm; echo mem > /sys/power/state
[ 52.800741] PM: Syncing filesystems ... done.
[ 52.856715] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 52.865669] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 52.875024] Suspending console(s) (use no_console_suspend to debug)
[ 52.950638] PM: suspend of devices complete after 68.211 msecs
[ 52.952506] PM: late suspend of devices complete after 1.835 msecs
[ 52.954292] PM: noirq suspend of devices complete after 1.757 msecs
[ 52.954300] Disabling non-boot CPUs ...
[ 52.954307] Turn off M/F mix!
[ 52.955663] PM: noirq resume of devices complete after 1.222 msecs
[ 52.956767] imx-sdma 20ec000.sdma: loaded firmware 3.3
[ 52.957669] PM: early resume of devices complete after 1.411 msecs
[ 52.959140] gpmi-nand 1806000.gpmi-nand: use legacy bch geometry
[ 53.005653] Suspended for 2.907 seconds
[ 53.012207] PM: resume of devices complete after 54.507 msecs
[ 53.073751] Restarting tasks ... done.
root@colibri-imx6ull:~# [ 55.049753] gpmi-nand 1806000.gpmi-nand: DMA timeout, last DMA :2
[ 55.056377] gpmi-nand 1806000.gpmi-nand: Show GPMI registers :
[ 55.062835] gpmi-nand 1806000.gpmi-nand: offset 0x000 : 0x00000000
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
This reverts commit 9a4bf05126f42c2632729ab0da503021d74ed454.
With this commit the PCIe enumaration fails. A follow up commit further
addresses the issue.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add device tree properties to influence RTS polarity and whether
the receiver is enabled during transmission (rs485-rts-active-low,
rs485-rx-during-tx).
This aligns with behavior with upstream Linux, where RTS is active
high by default (SER_RS485_RTS_AFTER_SEND) and the receiver is
disabled by default when using RS485 (SER_RS485_RX_DURING_TX).
Note that for Toradex hardware both properties are required, hence
using RS-485 on Toradex Carrier Boards requires the following
properties being specified in the device tree:
linux,rs485-enabled-at-boot-time;
rs485-rts-active-low;
rs485-rx-during-tx;
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 72919eb5f9e7a9aeb5fc1c2aa694b07994fb5a8d)
Conflicts:
drivers/tty/serial/imx.c
|
|
Signed-off-by: Andri Schmidt <a.schmidt@scewo.ch>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
This seems to limit possible baud rates due to lower input clock.
Since Toradex modules do not use UART5/6 as console, do not set
clock explicitly.
This reverts commit 4f447cb8bccb1d40973e46478d7b11aa61961c90.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
This seems to limit possible baud rates due to lower input clock.
Since Toradex modules do not use UART3 as console, do not set
clock explicitly.
This reverts commit 89869792e2f59c81354f9a53280c4eb6e95f4a9a.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Add support to allow configuring the display timings via
kernel command line.
e.g.:
video=mxsfb:800x480M-16@60,pixclockpol=1,outputen=1
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 22db6beb45cba5a67cab9e9a55cd60d7471591d9)
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Conflicts:
drivers/video/fbdev/mxsfb.c
|
|
Configure Ethernet clock source for each FEC instance individually.
This allows to use different clock source setting for the two FEC
controllers.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Exit early in case General-Purpose Registers are missing. This makes
sure that clock is always freed properly (clk_put).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
This was seen in code inspection.
While at it, fix error text.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 4f01669410997d2536722c082288ca466ee2031e)
Conflicts:
drivers/thermal/imx_thermal.c
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|
|
Some device make use of the OCOTP via syscon. While the OCOTP node
specifies a clock, in newer kernels the access via syscon does not
enable the clock! During the main boot phase this is not usually a
problem since the clock is initially on. However, after unused
clocks get disabled, any access leads to a freeze. This has been
observed when the i.MX Thermal driver probe has been deferred: The
driver tried to read the calibration data from OCOTP via syscon
and caused a system freeze.
In upstream Linux this has recently been resolved using the NVMEM
framework, see:
Commit ae6215576d6b ("thermal: imx: Add support for reading OCOTP
through nvmem")
Commit a6c856e9a8cd ("ARM: dts: imx6sx: Use nvmem-cells for tempmon")
Use a simpler work around by just adding the clock to the list of
clocks which should kept on.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The i.MX 7Solo currently does not have multiple operating points,
however, in order for the i.MX Thermal driver to successfully probe
a cpufreq device is required. Add i.MX 7Solo to the devices which
use the generic device tree cpufreq driver.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Disable regulator framework debug messages by default again.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Disable regulator framework debug messages by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Let the kernel print some debug messages when a user program
crashes due to an exception.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
When compiling a kernel with only GPCv2 support (e.g. only for
i.MX 7) linking fails with the following errors:
arch/arm/mach-imx/built-in.o: In function `imx_anatop_pre_suspend':
platform-imx-dma.c:(.text+0xf50): undefined reference to `imx_gpc_usb_wakeup_enabled'
platform-imx-dma.c:(.text+0xf5c): undefined reference to `imx_gpc_enet_wakeup_enabled'
arch/arm/mach-imx/built-in.o: In function `imx_anatop_post_resume':
platform-imx-dma.c:(.text+0x10cc): undefined reference to `imx_gpc_usb_wakeup_enabled'
platform-imx-dma.c:(.text+0x10d8): undefined reference to `imx_gpc_enet_wakeup_enabled'
Make sure the function exist even if GPC(v1) is not compiled in.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Return ENOTTY if no reader is using the TTY. Note that the
VirtIO transport used by RPmsg currently does not use the
return value of this callback, hence currently will not
influence operation in any way.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
For some reason USDHC and USB access crashes the kernel if the
OCOTP clock is not enabled. It seems not to be software related
since there is no direct access from the USDHC/Chipidea USB
driver to the OCOTP IP. It might be that the hardware checks
the fuses to determine if the particular SoC is supposed to
let user access a certain peripheral...
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit bce5146373372651052654b84cd3b773ac4d1882)
|
|
The device tree property fsl,legacy-bch-geometry was only evaluated
when nand-on-flash-bbt was also defined. This looks wrong.
In mainline (as of 4.12) fsl,legacy-bch-geometry doesn't exist,
its functionality seems to be taken over by the fsl,use-minimum-ecc
property and it is used independent of nand-on-flash-bbt.
The move of code gets also rid of the following compiler warning:
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:2274:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if (of_property_read_bool(this->dev->of_node,
^~
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:2278:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
if (of_property_read_bool(this->dev->of_node,
^~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
(cherry picked from commit c8f0033be80ccb23230b6b572c328d1c02e4ad04)
|
|
i.MX6 SL/UL/ULL use a different node in the device tree for with ocotp.
So change to the relevant compatible string for these SoCs.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
(cherry picked from commit 7b02a99744e495f630bdb5081c516d40e8112685)
|
|
POWER_ENABLE_MOCI
Poweroff failed powering off the carrier board side of things
and did not deassert POWER_ENABLE_MOCI on poweroff. Fix this.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 090138a21869fe2a4b1efa725e6f962ecdff86e5)
|
|
From the i.MX 7 reference manual the drive strenght field
is defined as follows:
00 DSE_0_X1
01 DSE_1_X4
10 DSE_2_X2
11 DSE_3_X6
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 38524d73583e8f7fc61c8acd57b77c0a29889616)
|
|
The struct arm_reg and soc_reg are declared in by a extern statement
in include/linux/busfreq-imx.h. However they are only declared when
imx6-cpufreq.c is compiled and linked.
Qualify the use of arm_reg and soc_reg with the relevant config option
and change KConfig to switch that option on for the SoCs which use
it.
This fixes the following build issue when building for i.MX 7 with
option ARM_IMX6Q_CPUFREQ not set:
arch/arm/mach-imx/built-in.o: In function `imx6ull_lower_cpu_rate':
platform-imx-dma.c:(.text+0x5514): undefined reference to `arm_reg'
platform-imx-dma.c:(.text+0x551c): undefined reference to `arm_reg'
platform-imx-dma.c:(.text+0x553c): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x5544): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x5598): undefined reference to `arm_reg'
platform-imx-dma.c:(.text+0x55a0): undefined reference to `arm_reg'
platform-imx-dma.c:(.text+0x55ac): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x55b4): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x55c8): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x55d0): undefined reference to `soc_reg'
platform-imx-dma.c:(.text+0x55f0): undefined reference to `arm_reg'
platform-imx-dma.c:(.text+0x55f8): undefined reference to `arm_reg'
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
(cherry picked from commit 3f68dc7c600c0354f5df7f06b931661319addafb)
|
|
Using the mode_str passed via device tree
as default fall back, fb_find_mode fails
while finding the mode, so avoid using the
non standard mode_str passed via device tree
and use the mode_str from command line as is.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 50e26af30f04d24f4783dae15206c5dba889fd2b)
|
|
Add support to enable RS485 via device tree
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
(cherry picked from commit b8e5d21a1351bc0e45ae1762f0799b428d9993ea)
(cherry picked from commit d0fa202ec506027902b3a2a427db4a494df8d64c)
Conflicts:
drivers/tty/serial/imx.c
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|
|
The Cortex-M4 boot vector table is located in the OCRAM_S. When
building a firmware with a complete vector table at 0x00000000
Linux overwrites the vector table with suspend information. Use
the higher 16KiB for suspend related information so that we can
use the lower 16KiB for the Cortex-M4 core.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit a8e0d437843393309b6db46c0e19f9da0b5d213b)
|
|
Commit '3e3ea9ba80e8 sgtl5000: switch on vag power for line_in -> output'
switched on VAG power when using a direct connection from line_in ->
headphone output, but it did not switch it off when switching back
to DAC -> HP.
Additionally with commit 'abff9e8b0ddf ASoC: sgtl5000: fix VAG power
up timing' the combination of the two commits introduced a pop on the
headphone when using DAC -> HP.
Detect the HP muxing state differently and thus address both issues.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
(cherry picked from commit a2130af576ac29935b8062574f45ca6999852ba4)
|
|
Do not disable peripheral while entering suspend mode. Disabling
the peripheral does not allow waking up from suspend on a CAN
frame reception.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
(cherry picked from commit f972815d2a4db5c93ded76bd11b660261e41f28c)
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 051ee1a1c24058db62f10a177b1271daebbd2ebe)
|
|
With the 3.14.28 release of the kernel imx6_stop_mode_poweroff() does not
enter stop mode.
Thus the function does not switch of power but returns.
This seems to be caused by the second processor which has been stopped.
Set the WFI event mask for the stopped processor works around the issue.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry-picked from commit 2acff0eaece38533e85e08431e7ae9f3027c677a)
(cherry picked from commit 894914718e9e563eb601e0090e1ae2ddadf426a9)
|
|
After the system has been shutdown with PMIC_ON_REQ and VCC_BATT is supplied
from a battery it will never restart either by RESET or power cycle.
So use the PMIC_STBY_REQ after shutdown to switch off power rails.
Conflicts:
arch/arm/mach-imx/pm-imx6.c
drivers/regulator/pfuze100-regulator.c
(cherry-picked from commit c8b186404065c4502b485820ad4a51515924795c)
(cherry-picked from commit ee4c5c4da3b32f65528a2d523ca4bce574dee3c5)
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 29ff2389ecf7cb4e30924c80b8d42165cf306936)
|
|
The VAG power is switched off whenever there is no ADC or DAC activity
resulting in a non functional local loop from line in to headphone out.
Switch on VAG power or keep it on when line in gets directly connected
to the output.
TODO: when switching the muxer back to DAC switch the VAG power off
if no recording or playing is happening.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 3e3ea9ba80e8bc9fe6896d6afe664ba3be904cd2)
|
|
Introduce two new messages to let the Cortex-M4 know in what
state the Linux system is in.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit a86db1f7117a62019106e343ff894c6bd4da053d)
|
|
Let the M4 handle the clock frequency by itself. We also don't need
to take care to make sure clocks stay on, the per domain CCM clock
gate control registers can be used to let the CCM know that the M4
runs on that PLL:
CCM_ControlGate(CCM, ccmPllGateSysDiv2, ccmClockNeededRun);
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 98adbbaef78b8a401350a0bf27c3ddc1881ec34d)
|
|
Use force suspend/resume to trigger runtime PM when entering system
suspend.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit ebf45652f2e9ec2ab19831d852363deadeb6407e)
|
|
Use force suspend/resume to trigger runtime PM when entering system
suspend.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit a2ccbd22f2b1da9b152039538fb3b5cb2cfc55c7)
|
|
Expose SoC unique ID read from OCOTP registers.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 9090b5b90ccc350611a769230eab3fbc20c9d302)
|
|
Add new 'unique_id' sysfs attribute to expose SoC unique ID
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 8a098f2f1b8ae277a38ee0c5e0b974d5baa8dd01)
(cherry picked from commit fb67fb4b277c6df9b5032564d6ae6756c905206d)
Conflicts:
include/linux/sys_soc.h
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|
|
Pushing data while there is no reader seems to lock/crash the TTY
layer in some way. Especially when a reader gets attached again,
the kernel crashes with
Unable to handle kernel paging request at virtual address 00002248
Also use tty_insert_flip_string which handels the copying and TTY
buffer resizing if necessary.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 5aba75e2c61d4044bed21730b7c471822860fac1)
|
|
Add a kernel parameter ("gpio-mxc.noclearirq") to disable
unconditional interrupt mask/clearing. This is useful when a
second CPU (the Cortex-M4) is accessing the same GPIO bank.
Using the same GPIO bank from the Cortex-A7 and M4 sounds risky,
but it seems to work quite well. Most registers are write only
(e.g. interrupt status register can be cleared with a single
write), which makes them safe for concurrent access. However,
sharing a single GPIO bank between two cores does not allow to
use the Resource Domain Controller. Hence for secure applications
assigning a dedicated GPIO bank is still preferable.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 4cfa939c693b20ca213f054c1dfe5583d966beb4)
|
|
Add support for LVDS frame buffer configuration via kernel boot arguments.
Fix use of the device tree native-mode property.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 122acb64708ac40faa8c5755624a0bcfbebcb9e8)
(cherry picked from commit 735d4f8addae71ef4a70eb16a9639bd6204fd2b9)
|