Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
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 */
>;
};
|
|
Use platform independent description for requested GPIOs.
(cherry picked from commit c300f3a605f8984449c1a5324fd3edda6f2fd8ff)
|
|
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)
|
|
To avoid warnings use the new I2C power management function for
suspend and resume.
(cherry picked from commit 9d996316a470d37fb71c521f27106b014f3f0b23)
|
|
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)
|
|
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)
|
|
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)
|
|
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
|
|
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>
|
|
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>
|
|
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)
|
|
Use the newly invented device evalspi.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
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>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
Set bcmdhd as build in type.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
|
|
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>
|
|
This patch add function sdio_reset_comm() to support bcmdhd wifi
dirver build-in type.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
|
|
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>
|
|
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)
|
|
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>
|
|
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>
|
|
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>
|
|
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)
|
|
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)
|
|
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)
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|