Age | Commit message (Collapse) | Author |
|
If a valid power regulator or a dummy regulator is used (which
happens to be the case when no regulator is specified), restart_work
is queued no matter whether the device was running or not at suspend
time. Since work queues get initialized in the ndo_open callback,
resuming leads to a NULL pointer exception.
Reverse exactly the steps executed at suspend time:
- Enable the power regulator in any case
- Enable the transceiver regulator if the device was running, even in
case we have a power regulator
- Queue restart_work only in case the device was running
Fixes: bf66f3736a94 ("can: mcp251x: Move to threaded interrupts instead of workqueues.")
Signed-off-by: Stefan Agner <stefan@agner.ch>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 25b401c1816ae64bcc5dcb1d39ab41812522a0ce)
Backport conflicts:
driver has been moved to spi subdir upstream
drivers/net/can/spi/mcp251x.c
|
|
Update the display timings for LDB (LVDS), as LDB driver now supports
the native-mode property.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
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>
|
|
MCP2515 is available on colibri evaluation board,
include it in the device tree for colibri i.mx6.
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable ADV7280 decoder for iMX6 modules. ADV7280 and ADV7180 have
same addresses viz. 0x21 respectively, changing the ADV7280 address
to 0x20 would result in a conflict with MAX9526. As a result enable
ADV7280 by default and disable ADV7180.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Add support for ADV7280 decoder found on Toradex Analogue
Camera Adapter V2.0A
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Change the "unsupported ioctrl" message to print only on debug.
This otherwise results in an error message
ERROR: v4l2 capture: unsupported ioctrl!
which does not seem to effect the gstreamer pipeline or rendering
of video.
>From debugging,
root@apalis-imx6:~# gst-launch-1.0 imxv4l2videosrc ! imxeglvivsink
Setting pipeline to PAUSED ...
[ 385.174543] ERROR: v4l2 capture: unsupported ioctrl 9a091b!
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
>From v4l2-controls.h
V4L2_CTRL_CLASS_CAMERA 0x009a0000
V4L2_CID_CAMERA_CLASS_BASE V4L2_CTRL_CLASS_CAMERA | 0x900
V4L2_CID_3A_LOCK V4L2_CID_CAMERA_CLASS_BASE + 27
So the ioctrl requested seems to be V4L2_CID_3A_LOCK.
"The V4L2_CID_3A_LOCK bitmask control allows applications to pause
or resume the automatic exposure, focus and wite balance adjustments.
It can be used, for example, to lock the 3A adjustments right before
a still image is captured, for pre-focus, etc.
The applications can control each of the algorithms independently,
through a corresponding control bit, if driver allows that."
https://patchwork.linuxtv.org/patch/10719/
Since we have no such feature available we can safely disable the
error message.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Make provision for a decoder driver to specify clock mode for
progressive in case the decoder provides deinterlaced output.
This is required for ADV7280 decoder where we can use the hardware
deinterlace capabity of ADV7280. Without setting the clock mode
to progressive but having hardware deinterlace on for ADV7280
results in a non working setup.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
The main i.MX 7 SoC compatible string is fsl,imx7d. By that compatible
string, the whole machine init in mach-imx7d.c is registered. While
some might not be necessary for i.MX 7Solo (e.g. SMP init), it seems
not to hurt. On the other hand, not using the i.MX 7 machine init
bypasses a lot of low level init such as PM or basic ethernet clocking.
So far it seemed not to have caused negative effects (likely since the
bootloader initialized those stuff already reasonable...).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Commit 619c5719cf ("MLK-11566-7 ARM: imx: support single SOC config")
ifdef'd clock functionality for SoloX only if Cortex-M4 is running.
However, i.MX 7 also provides a Cortex-M4, hence the true branch in
those if statements have been taken. Since the whole block was ifdef'd,
the functions were rendered useless for i.MX 7. Fix this by just
doing the same thing as if Cortex-M4 is not running.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Use the same clock parent for UART3 as we use for UART2 and UART1.
Using the 240MHz clock caused issue for the Cortex-M4 core (freeze/
UART2 stopped working).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Specify a safe value for the memory node. Apalis iMX6 Dual is the
module with the least amount of memory of our Apalis module family,
hence specify 512MiB.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
If poweroff takes a bit more time (e.g. due to I2C call), it is
quite likely that another timer interrupt fires. Timer interrupt
get broadcasted through the timer interrupt callback
tick_handle_oneshot_broadcast. This code broadcasts the timer
interrupt to all CPU's in tick_broadcast_oneshot_mask. The only
function which removes CPU from this mask is
tick_shutdown_broadcast_oneshot which ultimately get called by
_cpu_down (in kernel/cpu.c). The function disable_nonboot_cpus
makes sure that the CPU's get properly taken down and _cpu_down
gets called. With that no more broadcasts are sent to CPU's which
are no longer online.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Use the PMIC repower capabilities to reboot the module. Register
arm_pm_restart to trigger a cold reboot using the PMIC.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The Colibri iMX7 uses the SNVS_PMIC_ON_REQ signal (connected to the
PMIC's PMIC_ON_EXTIN GPIO) to power off the module. The SNVS RTC
driver provides a poweroff callback which causes that signal to
go low. However, the current PMIC driver registers a poweroff
callback earlier and therefor the kernel uses the PMIC poweroff
instead of the SNVS RTC poweroff callback.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Disable SNVS power key functionality by default for Colibri i.MX 7
modules. The SNVS power key uses the ONOFF signal, which is directly
controlled by reset and therefor not really a power key available
to the user.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Follow commit 286098c029bda740822e68ba6ac2ba0b2fe7c5d3
GPIO number 0 *is* legal and must be accepted.
Set .ena_gpio to -ENODEV on regulators having no GPIO in preparation
of a code change to accept GPIO 0 in the config.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Both drivers, FB_MXS and IPUv3 use functionality from mxc_dispdrv.c.
Allow for a configuartion which builds only FB_MXS.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Allow for a build targeting iMX 7 devices without relying on configuration
from i.MX6 and friends.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add workaround for M4 NMI issue.
Set the Ethernet PHY reference clock to be generated externaly from
the i.MX 7 by default (Colibri i.MX 7 V1.1 sample batch)
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The i.MX 7 can provide a reference clock to the PHY or use a reference clock
from an external circuit.
If the device-tree node with compatible "fsl,imx7d-fec" has a clock named
enet_out then provide the clock from the i.MX 7, if such a clock is missing
use a clock provided from an external circuit.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Without MCLK the sgtl5000 does not answer I2C reads.
So defere probing to later if no sgtl5000 is found.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
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>
|
|
Add device tree node for resistive touch screen controller AD7879.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add device tree support to the I2C variant of AD7879 (AD7879-1). This
allows to specify the touchscreen controller as a I2C client node.
Most of the options available as platform data are also available as
device tree nodes.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The measurements read from the controller which are temporarly stored
in conversion_data, are interpreted wrong. The first measurement X+
contains the Y position, and the second measurement Y+ the X position
(see also Table 11 Register Table in the data sheet).
The problem is already known, the change 6680884a4420 ("Input: ad7879
- add option to correct xy axis") introduced a swap option. However,
the meaning of this boolean was inverted since the underlaying values
were already swapped. With this change, swap_xy = true actually swaps
the two axis.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add TCM and OCRAM specifications required by the PM code,
otherwise booting Linux will fail in imx7d_pm_init.
Also add mcctest, mcctty and rpmsg nodes required to enable
rpmsg based communciation examples between the two cores.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The USB charger functionality depends on functions provided by
CONFIG_POWER_SUPPLY but this dependency is not forced through Kconfig.
Don't compile the functionality in when CONFIG_POWER_SUPPLY is not set.
This fixes linker errors of not found symbols.
power_supply_changed
power_supply_register
power_supply_unregister
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
If IPG clock of the GPC block is missing, we won't be able to get
the IPG bus clock later on. Return with an error if the IPG clock
is missing.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
[exit with error on missing IPG clock]
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
By configure runtime PM prior we enable the use of it, we close the gap
for strange and unhandled conditions. Moreover it makes us rely on the
driver core, after finalized ->probe(), to request an inactive device
to become runtime PM idle/suspended, which earlier potentially could
happen already at pm_runtime_set_autosuspend_delay().
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 77903c01d8c6c5d2544085ba074aceadc1191d21)
|
|
Enable output driver of Ethernet reference clock.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Do not include MXC V4L2 capture drivers for now, they cause
compile time errors:
| ERROR: "foreground_sdc_deselect" [drivers/media/platform/mxc/capture/mxc_v4l2_capture.ko] undefined!
| ERROR: "bg_overlay_sdc_deselect" [drivers/media/platform/mxc/capture/mxc_v4l2_capture.ko] undefined!
| ERROR: "bg_overlay_sdc_select" [drivers/media/platform/mxc/capture/mxc_v4l2_capture.ko] undefined!
| ERROR: "foreground_sdc_select" [drivers/media/platform/mxc/capture/mxc_v4l2_capture.ko] undefined!
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX was missing the daisychain register
address and value resulting in a non working RX path.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
This adds support for Ricoh RN5T567 PMIC used on Colibri iMX7. The
driver should get unified with rn5t618 driver.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
This adds a driver for the watchdog timer available in Ricoh RN5T618
PMIC. The device supports a programmable expiration time of 1, 8, 32
or 128 seconds.
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
(cherry picked from commit 22b1c841e31510c3124c88a13b8a7ada14e2e2d1)
|
|
Ricoh RN5T618 is a power management IC which integrates 3 step-down
DCDC converters, 7 low-dropout regulators, a Li-ion battery charger,
fuel gauge, ADC, GPIOs and a watchdog timer.
This commit adds a MFD core driver to support the I2C communication
with the device.
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
(cherry picked from commit 9bb9e29c78f8d8ee310987fd58a2b908a4ce0c40)
|
|
This adds the device tree bindings documentation for Ricoh RN5T618.
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
(cherry picked from commit a654f81640caa0bb648b0e45b792ba846c9bb02d)
|
|
This driver supports the 3 DCDC and 7 LDO regulators available on
Ricoh RN5T618 PMIC.
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 811b700630ff328c52ddf17d653ffdcb0ba87d30)
Conflicts:
drivers/regulator/Kconfig
drivers/regulator/Makefile
|
|
This reverts commit 87b3f4287b8a9d31ad4d732fac769d97dcf7469a.
Has been fixed upstream differently
3241216e250430a27b30eaf7f7df3e5e006acfb5
|