summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-29can: mcp251x: fix resume when device is downColibri_iMX6_LinuxImageV2.6Beta2_20160701Apalis_iMX6_LinuxImageV2.6Beta2_20160701Stefan Agner
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
2016-06-27imx6qdl-apalis.dtsi: Update display timings for LDB (LVDS)Bhuvanchandra DV
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>
2016-06-27video: mxc: ldb: Add support for LVDS configuration via kernel boot argumentsBhuvanchandra DV
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>
2016-06-27colibri_imx6:Add MCP2515 SPI CAN controller to DTDominik Sliwa
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>
2016-06-24apalis_imx6/colibri_imx6: Enable ADV7280 decoder for iMX6 modulesSanchayan Maity
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>
2016-06-24media: Add support for ADV7280 decoder driverSanchayan Maity
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>
2016-06-24mxc_v4l2_capture: Change error message to print on debugSanchayan Maity
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>
2016-06-24mxc_v4l2_capture: Allow clock setting for de-interlaced video inputSanchayan Maity
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>
2016-06-24imx6qdl-apalis-eval.dtsi: follow changed compatibility stringMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-06-24ARM: dts: imx7s-colibri: add fsl,imx7d compatible stringStefan Agner
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>
2016-06-24ARM: imx: fix clock for i.MX 7 when Cortex-M4 is runningStefan Agner
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>
2016-06-24ARM: dts: imx7d-colibri: use 24MHz clock for UART3Stefan Agner
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>
2016-06-24ARM: dts: apalis_imx6: specify 512MiB of memoryStefan Agner
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>
2016-03-21ARM: disable_nonboot_cpus before poweroffColibri_iMX6_LinuxImageV2.6Beta1_20160331Apalis_iMX6_LinuxImageV2.6Beta1_20160331Stefan Agner
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>
2016-03-18rn5t567: register ARM reset callbackStefan Agner
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>
2016-03-18rn5t567: do not register poweroffStefan Agner
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>
2016-03-18ARM: dts: imx7d-colibri: disable power keyStefan Agner
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>
2016-03-09imx7d-colibri.dts: fix double declared UART1 DSR/RI pinmuxingColibri_iMX7_LinuxImageV2.6Alpha1_20160315Max Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09imx7d-colibri.dts: add PMIC / TOUCH interrupt gpioMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09imx7d-colibri.dts: implement mmc card detectMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09rn5txxx-regulator.c: allow GPIO 0 to be used for an enable signalMax Krummenacher
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>
2016-03-09colibri_imx7_defconfig: fix NAND / Thermal Sensor / USBMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09CONFIG_FB_MXS: allow build without configuring IPU alsoMax Krummenacher
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>
2016-03-09drivers/mtd/nand/Kconfig: allow MTD_NAND_GPMI_NAND for i.MX 7Max Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09drivers/dma/Kconfig: allow MXS_DMA for i.MX 7Max Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09arm/mach-imx: add i.MX7 features to SOC_IMX7Max Krummenacher
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>
2016-03-09colibri_imx7_defconfig: cleanup and sync with Colibri iMX6Stefan Agner
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-03-09ARM: imx: fix i.MX7D build without i.MX6Stefan Agner
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-03-09ARM: dts: imx7d-colibri: use external Ethernet PHY clockMax Krummenacher
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>
2016-03-09mach-imx7d.c: use enet_out clk to decide on PHY clockMax Krummenacher
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>
2016-03-09sgtl5000.c: HACK, defer probe when I2C not yet runningMax Krummenacher
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>
2016-03-09ARM: dts: imx7s-colibri: add working dts for soloMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-09video: fbdev: mxsfb: fix pixelclock polarityStefan Agner
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>
2016-03-09ARM: dts: imx7d-colibri: add AD7879 device tree nodeStefan Agner
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>
2016-03-09input: touchscreen: ad7879: add device tree supportStefan Agner
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>
2016-03-09input: touchscreen: ad7879: fix default x/y axis assignmentStefan Agner
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>
2016-03-09ARM: dts: imx7d-colibri: add Cortex-M4 related nodesStefan Agner
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>
2016-03-08chipidea: make usb charger optionalMax Krummenacher
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>
2016-03-08ARM: imx: gpc: exit with error if IPG clock is missingMax Krummenacher
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>
2016-03-08mmc: sdhci-esdhc-imx: Fixup runtime PM conditions during ->probe()Ulf Hansson
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)
2016-03-08ARM: imx: enet1: output reference clockMax Krummenacher
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>
2016-03-08colibri_imx7_defconfig: add initialMax Krummenacher
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>
2016-03-08ARM: dts: imx7d-colibri: add initial device treeMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-03-08arm: imx7d-pinfunc: add daisychain setting for UART2_DTE_RXMax Krummenacher
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>
2016-03-08rn5t567: add PMIC driverMax Krummenacher
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>
2016-03-08watchdog: add driver for Ricoh RN5T618 watchdogBeniamino Galvani
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)
2016-03-08mfd: Add Ricoh RN5T618 PMIC core driverBeniamino Galvani
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)
2016-03-08mfd: rn5t618: Document device tree bindingsBeniamino Galvani
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)
2016-03-08regulator: rn5t618: add driver for Ricoh RN5T618 regulatorsBeniamino Galvani
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
2016-03-08Revert "arm: Export cache flush management symbols when !MULTI_CACHE"Max Krummenacher
This reverts commit 87b3f4287b8a9d31ad4d732fac769d97dcf7469a. Has been fixed upstream differently 3241216e250430a27b30eaf7f7df3e5e006acfb5