summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-28input: touchscreen: fusion: implement multitouch with slot handlingStefan Agner
According to multi-touch-protocol.txt the kernel knows two type of devices: - Type A: devices which provide anonymous contacts - Type B: devices which are capable of tracking individual contacts The Fusion touch screen is a Type B device: The Touch ID field allows to differentiate between 2 different fingers. This updates the driver to properly allocate a slot for each identified contact and use the helper functions available from the input core system.
2016-06-28input: touchscreen: fusion: use level triggered interruptStefan Agner
Use level triggered interrupt which makes sure that even we miss a rising edge (due to latencies in the kernel), the interrupt still will be handled later, and doesn't freeze the input device.
2016-06-28input: touchscreen: fusion: add device tree integrationMax Krummenacher
Add device tree integration and add the device to the dtb. i2c device, interrupt and reset GPIO can be specified in the dts as follows: Note that additionally you may have to set the pinmuxing for the pins to be GPIO. &i2c1 { status = "okay"; pcap@10 { /* TouchRevolution Fusion 7 and 10 multi-touch controller */ compatible = "touchrevolution,fusion-f0710a"; reg = <0x10>; gpios = <&gpio6 10 0 /* MXM-11, Pen down interrupt */ &gpio6 9 0 /* MXM-13, Reset interrupt */ >; };
2016-06-28input: touchscreen: fusion: platform independent GPIO descriptionStefan Agner
Use platform independent description for requested GPIOs. (cherry picked from commit c300f3a605f8984449c1a5324fd3edda6f2fd8ff)
2016-06-28input: touchscreen: fusion: fix error handlingStefan Agner
Fix chip reset by sleeping long enought after reset. Do proper error handling (free GPIO on failure). Use dev_* for message logging to get similar messages for all fusion driver related errors and warnings. (cherry picked from commit 63b293000723e61a880470f093fbe82e86ebd81b)
2016-06-28input: touchscreen: fusion: use new I2C PM functionsStefan Agner
To avoid warnings use the new I2C power management function for suspend and resume. (cherry picked from commit 9d996316a470d37fb71c521f27106b014f3f0b23)
2016-06-28input: touchscreen: added platform data for Fusion touchscreenStefan Agner
Added platform data struct to define interrupt and reset GPIO. This allows to initialize the touchscreen controller inside the driver rather then in each platform and use the driver as a module. (cherry picked from commit cb82730b70f31af3b43041ac4e47de69c18016c9)
2016-06-28input: touchscreen: fix race condition in Fusion driverStefan Agner
When the next interrupt request apeares between the confirmation of the previous (a write via I2C, fusion_F0710A_write_complete) and the reenable of the GPIO interrupt, the driver hangs and no more touch inputs are reported. This patch moves the confirmation after the reenabling of the GPIO interrupt. (cherry picked from commit e95019a4f20b8cdfbe03658e4f73b69cdcf97540)
2016-06-28input: touchscreen: add ABS_X/ABS_Y axis for Fusion touchscreenStefan Agner
Recent evdev X-Server input driver implementation complain when only multitouch axes have been reported ("found only multitouch-axes. That shouldn't happen."). Therefor also report the primary touch detection with default axis. (cherry picked from commit dda7a631ac901e4d140e8a6612c5c6b5506b6a91)
2016-06-28input: touchscreen: add Fusion 7 and 10 multi-touch driverMax Krummenacher
This patch adds the multi-touch input driver for the TouchRevolution Fusion 7 and 10 panels (See Fusion 7 and 10 drivers for Linux.pdf and Linux Drivers Fusion 10.zip) as downloaded in 07.2014
2016-06-28ARM: dts: imx7-colibri: Add MCP2515 SPI CAN controller to DTMax Krummenacher
MCP2515 is available on colibri evaluation board, include it in the device tree for Colibri iMX7. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2016-06-28ARM: dts: imx7-colibri: reduce SPI clock to datasheet maximumMax Krummenacher
According to the datasheet the SPI clock (for read) must not exceed 1 / 43ns for i.MX7. Reflect that correctly in the device tree. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2016-06-28fbcon: logo: allow easy integration of a custom Linux boot logoMarcel Ziswiler
This patch allows for easy integration of a custom Linux boot logo to replace the Tux' being shown by default. Use gimp or the like to create a raw PPM in your desired resolution. Reduce the number of colours in the image to 224: user@host:~$ ppmquant 224 Toradex-640x480.ppm > \ Toradex-640x480-224.ppm ppmquant: making histogram... ppmquant: 370 colors found ppmquant: choosing 224 colors... ppmquant: mapping image to new colors... Convert it from raw PPM to ASCII format: user@host:~$ pnmnoraw Toradex-640x480-224.ppm > \ Toradex-640x480-ascii-224.ppm Copy it into the Linux sources: cp Toradex-640x480-ascii-224.ppm linux-toradex/drivers/video/logo/\ logo_custom_clut224.ppm Activate exclusively custom Linux logo in the kernel configuration: Device Drivers -> Graphics support -> Bootup logo -> Custom 224-color Linux logo And re-compile the kernel. (cherry picked from commit fa2371bff9ac03581881849d8f95678ef3992719)
2016-06-24ARM: dts: imx7-colibri: use Toradex evalspiStefan Agner
Use the newly invented device evalspi. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-06-24spi: spidev: invent a new hw device to work around spidev warningStefan Agner
Upstream discussions would like to get rid of spidev in device trees since it is a Linux software artifact. However, we would like to provide a spidev interface for our standard SPI port available to tinker with on our Toradex Colibri Evaluation Board. Invent a new device called evalspi... Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-06-24ARM: dts: imx7-colibri: cleanup indent and use GPIO flag defineStefan Agner
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: dts: imx7-colibri: fix SD-cardStefan Agner
The SDHC stack uses the GPIO flags to determine whether the card detect gpio is active-low or high. Zero means GPIO_ACTIVE_HIGH, which is actually wrong. Specify the card detect to be active-low. Also remove the tunning step property, this is a board specific parameter which seems to come from Sabre, where NXP actually deleted it too. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: colibri_imx7_defconfig: synchronized defconfigStefan Agner
Synchronized defconfig with Vybrids 4.1 Kernel configuration. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: colibri_imx7_defconfig: compile CAAM test driver as moduleStefan Agner
The CAAM Secure Memory Keystore Test/Example driver is not used by most customers and dumps a lot of keys, add it as a module by default. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24MLK-12722: ASoC: fsl_spdif: clear the validity bit for TXShengjiu Wang
Validity bit is set in default, which means the data is not reliable, The receive device may drop this data. So clear it in default, and provide a mixer interface for user to control this bit. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> (cherry picked from commit 48293e6bf7793de01678ee1426cccc9119998ba1)
2016-06-24MLK-12607: ASoC: fsl-asrc: Add the support of 12kHz and 24kHzShengjiu Wang
Remove the pre-processing and post-processing table. use proc_autosel() to select proper parameters. Unify the supported input and output rate. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> (cherry picked from commit 8353ec20bd9950ec98d76423c62321a7ea0c7190)
2016-06-24MLK-12464-2: ASoC: wm8960: fix clock is not correct after suspend/resumeShengjiu Wang
After the suspend/resume, hw_params may be called in bias_level is not BIAS_ON, then the PLL is not disable/enabled, if the sample rate is changed, the output clock is not correct. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> (cherry picked from commit cced8358c2202824dfdc1780609539655ae5fec5)
2016-06-24MLK-12464-1: ASoC: fsl: imx-wm8960: Fix no clock after suspend/resume randomlyShengjiu Wang
After suspend and resume, the wm8960 codec will change the state from BIAS_OFF to BIAS_ON, in this time, the hw_free is called, the PLL will be diabled, and next instance is started in rapid sequence, hw_params is called But PLL is not enabled, because the bias state is not BIAS_ON. As PLL is disabled in BIAS_ON->BIAS_STANDBY, so don't need to disable pll in hw_free of machine driver. Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> (cherry picked from commit 9b6063efd3966266a1a7616c11b818139933497e)
2016-06-24MLK-12620 ARM: imx: correct i.MX7D fuse MAC1_ADDR offset addressFugang Duan
i.MX7d MAC1_ADDR fuse offset address is 0x640, i.MX6q/dl/sx/ul MAC1_ADDR fuse offset address is 0x620. Correct it for i.MX7d, otherwise read un-correct MAC address. Signed-off-by: Fugang Duan <fugang.duan@nxp.com> (cherry picked from commit:74ee5313534dd9453601f4428c4916d46405669f)
2016-06-24MLK-12706-3 arm: imx_v7_defconfig: build in bcmdhdHaibo Chen
Set bcmdhd as build in type. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2016-06-24MLK-12706-2 net: bcmdhd: set the bcmdhd driver default build inHaibo Chen
Bcmdhd wifi driver default build as module, now default build in this wifi driver. To support this build in feature, this patch add flag ENABLE_INSMOD_NO_FW_LOAD, and use extern function sdio_reset_comm() as instead. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2016-06-24MLK-12706-1 mmc: sdio: add sdio reset function for bcmdhd wifiHaibo Chen
This patch add function sdio_reset_comm() to support bcmdhd wifi dirver build-in type. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2016-06-24MLK-12705 ARM: imx: add support for i.mx7d TO1.2 busfreqAnson Huang
i.MX7D TO1.2 fix the CKE issue, need to follow TO1.0's precedure for DRAM frequency scaling. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2016-06-24MLK-12685 ARM: dts: imx6sx-sabreauto.dts: improve usdhc4 pad drive strengthHaibo Chen
For imx6sx-sabreauto board, the usdhc4 is used for the sd slot locate on the base board, so need to improve the pad drive strength, otherwise we will meet many CRC error or timeout error when insert a sd card. Signed-off-by: Haibo Chen <haibo.chen@nxp.com> (cherry picked from commit 1cbfce01e4e076d7f7e3b879c2c41d217d8afa48)
2016-06-24MLK-12675 ARM: dts: imx: keep RTC enabled for software poweroffAnson Huang
SRTC needs to be kept enabled during system poweroff, SNVS_LP control register bit 0 SRTC_ENV must be set to enable RTC, for software poweroff, kernel just read the register offset and value from dtb and write to SNVS_LP control register to poweroff system, need to make sure bit 0 SRTC_ENV is set to enable RTC during system poweroff. Previous setting did NOT enable it which will cause RTC stop running if using software poweroff. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2016-06-24MLK-12671 ARM: imx: support single soc configAnson Huang
Need to make sure build pass with single SOC config, in current build for single SOC config, if both SOC_IMX7D and SOC_IMX6SX are NOT selected, below build error will occur, add MU module config to fix this build issue. LD init/built-in.o arch/arm/mach-imx/built-in.o: In function `busfreq_probe': :(.text+0x5370): undefined reference to `imx_mu_lpm_ready' arch/arm/mach-imx/built-in.o: In function `bus_freq_pm_notify': :(.text+0x5d50): undefined reference to `imx_mu_lpm_ready' :(.text+0x5d68): undefined reference to `imx_mu_lpm_ready' make: *** [vmlinux] Error 1 Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2016-06-24MLK-12617 mmc: Fix compile error when CONFIG_MMC=mHaibo Chen
When CONFIG_MMC=m, compile error shows up ERROR: "of_alias_max_index" [drivers/mmc/core/mmc_core.ko] undefined! ERROR: "mmc_get_reserved_index" [drivers/mmc/card/mmc_block.ko] undefined! ERROR: "mmc_first_nonreserved_index" [drivers/mmc/card/mmc_block.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 make: *** Waiting for unfinished jobs.... This patch export the upper three symbol for module runtime load. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2016-06-24MLK-12623-03 ARM: imx: Add cpu speed grading check for imx6ulBai Ping
In the OCOTP fuse map, the speed grading[1:0] define the MAX CPU speed the chip can run. The detailed definition is below: 2b'00: Reserved; 2b'01: 528000000Hz; 2b'10: 696000000Hz; 2b'11: Reserved; We need to disable the illegal setpoints according to the fuse map. Signed-off-by: Bai Ping <ping.bai@nxp.com> (cherry picked from commit 1fc5419ba08a8da302cfcddb0ea76226d7bdc8c3)
2016-06-24MLK-12623-02 ARM: dts: imx: Add 700MHz setpoint define in dtsBai Ping
According to the latest datasheet(Rev. 0, 12/2015), When the chip is run at LDO enabled mode, the highest setpoint can be set to 700MHz in overdrive mode. Signed-off-by: Bai Ping <ping.bai@nxp.com> (cherry picked from commit 9838ff4b9dfaaacdea01b2bf5f54020ccf991f23)
2016-06-24MLK-12623-01 cpufreq: imx: Add support for 700MHz setpoint in cpufreqBai Ping
On i.MX6UL EVK board, we use a external GPIO DC regulator to control the VDD_ARM_SOC_IN voltage, if default voltage is 1.4V when the system is bootup. Per design team, when the highest setpoint freq is not bigger than 528MHz, we can decrease this regulator voltage to 1.3V. On i.MX6UL TO1.1, we add a 700MHz setpoint. When the highest setpoint freq is 700MHz, the DC regulator should be at 1.4V to to cover the IR drop. Signed-off-by: Bai Ping <ping.bai@nxp.com> (cherry picked from commit 0e3293e53f4bd5b122abc250b610dd61850e3ce9)
2016-06-24ARM: imx: fix clock for i.MX 7 when Cortex-M4 is runningStefan Agner
Commit b0149f1c7c ("MLK-11620 ARM: imx: single SOC config/compile support") 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: imx7-colibri: introduce carrier board level dtsStefan Agner
Split up the colibri device tree into two device tree files for COM and Carrier Board. Use the usual SoC/COM/Board tripplet and follow including scheme used for Vybrid. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: dts: imx7-colibri: make use of per SoC base device treeStefan Agner
Now that we have a base device tree per SoC we can make use of them by including only imx7s.dtsi for the Colibri iMX7S modules. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24dts: imx7d: create imx7s.dtsi which is the base device treeStefan Agner
The i.MX 7Solo supports a subset of the features which i.MX 7Dual does, hence make imx7s.dtsi to be the base device tree. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: dts: imx7s-colibri: disable second CPUStefan Agner
The i.MX 7Solo device tree currently builds on the i.MX 7Dual device tree, which specifies two CPU's. This leads to a delay during boot and the following error message: CPU1: failed to come online Unfortunately the CPU driver code seems not to honor the status property, but we can "disable" the second CPU node by clearing the device_type property. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: dts: imx7d-colibri: Work around poweroff issueStefan Agner
The AD7879 interrupt GPIO is a wakeup pin. On poweroff, the external pull-up is not holding the GPIO high, hence causing a falling edge on the pad. Since the GPIO is a wakeup pin, this causes the SNVS Dumb PMIC to switch to on again (hence causing a reboot instead of a power- off). Make sure the interrupt line stays high during poweroff by configuring a pull-up on the IOMUXC LPSR GPR. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24pinctrl: pinctrl-imx: add support for LPSR GPR padctrlStefan Agner
The LPSR IOMUXC also has a general purpose (GPR) part which is able to define pad settings for GPIO8-15. Implement it as yet another pinctrl driver. Note: 4 GPIO's share one register, the values are currently over- written, hence the current code only allows one GPIO per register to be configured... Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24mfd: rn5t618: register restart handlerStefan Agner
Use the PMIC repower capabilities to reboot the module. Register the register_restart_handler handler to trigger a cold reboot. Also only register power off if the PMIC is defined as system power controller (see Documentation/devicetree/bindings/power/ power-controller.txt). Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24ARM: 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> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-06-24imx7d-colibri.dts: fix double declared UART1 DSR/RI pinmuxingMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2016-06-24imx7d-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-06-24imx7d-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-06-24drivers/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-06-24regulator: rn5t618: 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-06-24ENGR00305648-1 ASoC: imx-sgtl5000: Support non-ssi cpu-daiNicolin Chen
The current imx-sgtl5000 driver always attaches the cpu-dai to ssi while in fact it could be attached to other cpu-dais like SAI. Thus this patch use a general code to support another cpu-dai. And meanwhile update the devicetree for i.MX6 Series. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>