summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-11-28mvf_dcu: Add 3.5" EDT display supportcolibri_vfBhuvanchandra DV
Add display timings for 3.5" EDT display Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2014-11-28ARM: mvf: improve I2C pinmuxStefan Agner
Enable internal pull-ups, this makes sure the bus is in a valid state even no external pull-ups are present.
2014-09-17ARM: mvf: Complete I2C resource table for I2C1/I2C2Colibri_VF_LinuxImageV2.3Beta3_20141031Stefan Agner
The resources for the I2C1 and I2C2 instance were missing. When adding them from the board file, this could lead to a not working instance of the I2C driver or other undefined behaviour.
2014-08-21ARM: mvf: enable SRTC as wakeup sourceStefan Agner
Enable the SRTC as wakeup source in order to enable Vybrid modules to be waken up by the RTC alarm functionaity.
2014-08-21rtc: snvs: force enable wake alarmStefan Agner
On Vybrid, the machine/architecture specific code seems not to enable wakeup for devices, hence force RTC as wakeup source in the driver.
2014-08-12i2c: imx: add SMBus block read supportKaushal Butala
The smbus block read is not currently supported for imx i2c devices. This patchset adds the support to imx i2c bus so that blocks of data can be read using SMbus block reads.(using i2c_smbus_read_block_data() function from the i2c_core.c.). Tested with 3.10.9 kernel. Reviewed-by: Shawn Guo <shawn.guo@freescale.com> Signed-off-by: Kaushal Butala <kaushalkernelmailinglist@gmail.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Stefan Agner <stefan.agner@toradex.com> [backported to Toradex 3.0 branch from 8e8782c71595a5ad29e234ce6b3d2fce787fb07a]
2014-08-12i2c: imx: assign semaphore before adding I2C adapterBhuvanchandra DV
Adding the i2c_add_numbered_adapter might already lead to calls of i2c_imx_xfer, which requires the semaphore to be assigned. Hence we should assign the semaphore before add the I2C adapter. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2014-08-12i2c: imx: don't disable clock between transfersBhuvanchandra DV
Don't disable I2C clock between each transfers. Instead, disable the module internally between the transfers. This also fixes SMBus multi-block transfers. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> [Removed uncommented clk_enable/disable calls]
2014-07-29can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX and ↵Colibri_VF_LinuxImageV2.3Beta1_20140804Marc Kleine-Budde
abort pending TX In patch 0d1862e can: flexcan: fix flexcan_chip_start() on imx6 the loop in flexcan_chip_start() that iterates over all mailboxes after the soft reset of the CAN core was removed. This loop put all mailboxes (even the ones marked as reserved 1...7) into EMPTY/INACTIVE mode. On mailboxes 8...63, this aborts any pending TX messages. After a cold boot there is random garbage in the mailboxes, which leads to spontaneous transmit of CAN frames during first activation. Further if the interface was disabled with a pending message (usually due to an error condition on the CAN bus), this message is retransmitted after enabling the interface again. This patch fixes the regression by: 1) Limiting the maximum number of used mailboxes to 8, 0...7 are used by the RX FIFO, 8 is used by TX. 2) Marking the TX mailbox as EMPTY/INACTIVE, so that any pending TX of that mailbox is aborted. Cc: linux-stable <stable@vger.kernel.org> Cc: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> [backported for 3.0 kernel by Stefan Agner <stefan.agner@toradex.com>] d5a7b406c529e4595ce03dc8f6dcf7fa36f106fa can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX and abort pending TX
2014-07-29colibri_vf: enable fhandle syscallStefan Agner
Enable fhandle syscall which is required for newer systemd versions.
2014-07-24colibri-vf50-ts: add min_pressure parameterStefan Agner
Add parameter to define the minimal pressure required to be interpreted as a touch event. Also filter out unusual high pressure since this means there is no touch screen connected.
2014-07-24ARM: ftm-pwm: add FlexTimer PWM driverStefan Agner
This adds a new FlexTimer PWM driver in favor of the old PWM driver. The new driver allows to make use of the individual PWM channels independently. However, the PWM period need to be the same for all PWM channels on the same FlexTimer instance. If the period differs, the driver would overwrites the period of a previously configured PWM output. For Colibri VF, we register FTM0/1 only since those instances are used for PWM support. Also we use the same PWM period of 1ms for all outputs.
2014-07-18colibri_vf61: fix ac97 pinmuxMarcel Ziswiler
Now that we are shipping Colibri VF61 V1.1a with modified audio master clock pinmux get rid of temporary workaround of using PTB18 instead.
2014-07-16colibri_vf: updated defconfigStefan Agner
Remove Video for Linux on Vybrid since Video is not (yet) supported on Vybrid. Also compile NTFS into the kernel and remove some CD-ROM file systems. Use make savedefconfig which generates a minimal configuration file.
2014-07-11Merge tag '3.0-vybrid-ts2.17' into colibri_vf_nextStefan Agner
3.0-vybrid-ts2.17 Conflicts: arch/arm/plat-mxc/include/mach/iomux-mvf.h
2014-07-11colibri_vf: enable CAN supportStefan Agner
This enables CAN support for Colibri VFxx if CONFIG_CAN_FLEXCAN is seleced. There is also an example how to make use of the transceiver switch to enable the transceiver on demand (e.g. using a GPIO).
2014-07-11can: flexcan: add Vybrid supportStefan Agner
Extend FlexCAN driver to support Vybrid. Vybrids variant of the IP has ECC support which is controlled through the memory error control register (MECR). There is also an errata which leads to false positive error detections (ID e5295). This patch disables the memory error detection completely. Extend the clock control for FlexCAN to enable the clocks. Fix the base addresses and introduce the necessary pinmux defines.
2014-07-11can: flexcan: dynamically sleep for chip_{en,dis}ableStefan Agner
In flexcan_chip_enable() and flexcan_chip_disable() fixed delays are used. Experiments have shown that the transition from and to low power mode may take several microseconds. This patch adds a while loop which polls the Low Power Mode ACK bit (LPM_ACK) that indicates a successfull mode change. If the function runs into a timeout a error value is returned. This is a simpliefied backport of can: flexcan: fix transition from and to low power mode in chip_{en,dis}able 9b00b300e7bce032c467c36ca47fe2a776887fc2
2014-06-20can: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACKReuben Dowle
Currently the flexcan driver uses hardware local echo. This blindly echos all transmitted frames to all receiving sockets, regardless what CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK are set to. This patch now submits transmitted frames to be echoed in the transmit complete interrupt, preserving the reference to the sending socket. This allows the can protocol to correctly handle the local echo. Further this patch moves tx_bytes statistic accounting into the tx_complete handler. Signed-off-by: Reuben Dowle <reuben.dowle@navico.com> [mkl: move tx_bytes accounting into tx_complete handler; cleanups] Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-06-20can: dev: let can_get_echo_skb() return dlc of CAN frameMarc Kleine-Budde
can_get_echo_skb() is usually called in the TX complete handler. The stats->tx_packets and stats->tx_bytes should be updated there, too. This patch simplifies to figure out the size of the sent CAN frame. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-06-17ENGR00217318-3 flexcan: only enter stop mode when device is upDong Aisheng
The flexcan is still in disable mode during suspend if it's still not up. We do not need to enter stop mode if find the device is not up since the stop mode does not work well in disable mode(remote wakeup does not work). Using disable mode for suspend if it's not up. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00217318-2 flexcan: create abstract api to enter and exit stop modeDong Aisheng
Clean up duplicated code and hide the details of enter/exit stop mode into API. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00217318-1 flexcan: exit stop mode when resumeDong Aisheng
Currently flexcan only exits stop mode by remote wakeup, if system resumes normally, the flexcan may still in stop mode and can not work anymore. Change to also exit stop mode during normal resume in case system is not remote wakeup by flexcan. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-06-17ENGR00171114 flexcan: enable can2 remote wakeup for mx6qDong Aisheng
The root cause is missed to set CAN2_STOP_REQ in iomuxc group register which is used to support can wakeup feature. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2014-05-29twr_vf600: Enable EDMA in UART Configuration3.0-vybrid-ts2.17Anthony Felice
Issues reported in commit aed6c4fe5 have now been fixed. Signed-off-by: Anthony Felice <tony.felice@timesys.com>
2014-05-29serial/mvf.c: Fix DMA channel deallocation.Gordon Smith
Signed-off-by: Anthony Felice <tony.felice@timesys.com>
2014-05-29iomux-mvf: Add UART0-5 pinmux definitions.Anthony Felice
Signed-off-by: Anthony Felice <tony.felice@timesys.com>
2014-05-29ARM: gic: Remove __cpuinit attribute from gic_enable_ppi()Anthony Felice
The gic_enable_ppi() function is used with the global timer when resuming from STOP mode on the Vybrid Tower. With the __cpuinit attribute set, the gic_enable_ppi() function would have already been freed once the kernel finishes loading, causing a kernel oops when attempting to resume from STOP mode. Signed-off-by: Anthony Felice <tony.felice@timesys.com>
2014-05-15Merge tag '3.0-vybrid-ts2.16' into colibri_vfColibri_VF_LinuxImageV2.2Beta1_20140603Marcel Ziswiler
3.0-vybrid-ts2.16 Conflicts: drivers/tty/serial/mvf.c
2014-05-15fsl_nfc: rename device to fsl_nfcStefan Agner
Use the more common name "fsl_nfc" instead of "NAND" for this device. This also affects the mtdparts option of the kernel command line.
2014-05-15fsl_nfc: add chip selectStefan Agner
Add correct chip select handling. This is required when using mainline U-Boot since chip select is properly done there as well.
2014-05-15fsl_nfc: check hardware ECC resultStefan Agner
Hardware ECC was enabled, however the result of the ECC check was actually ignored. This patch checks the result and acts accordingly. Also, enable ECC hardware for every page (which is required for UBIFS, this might be a relict of JFFS2 support). The driver passes the mtd_pagetest. Bits an pieces taken from the RFC mainline driver from Bill Pringlemeir.
2014-05-15colibri-vf50-ts: GPIOs from pdata/support VF50 V1.1 and newerStefan Agner
In order to properly support VF50 V1.1 and older modules we need to move the GPIOs to platform data. This is anyway the cleaner and easier maintainable solution. Also raise pressure threshold to a reasonable level for our resistive touchscreens.
2014-05-15colibri_vf: add optional support for UART3 and UART4Stefan Agner
UART3 and UART4 are possible additions to a custom Colibri carrier board. This patch muxes RX/TX pins for those UARTs, as well as enables DMA and FIFO for those instances. However, UART3 conflicts with Colibris default SD card data pins, so this option disables SD-Card support (SDHC1).
2014-05-15colibri_vf: add support for second EthernetStefan Agner
Add alternative pinmux and platform data for second Ethernet. Also make sure MAC address is calculated from first Ethernet MAC address, which is derived from part serial number. Note that FEC1 is the default Ethernet controller (and hence eth0), while FEC0 is the additional Ethernet controller (eth1).
2014-05-15ARM: mxc: global_timer: fix sched_clock bit lengthStefan Agner
Since update_sched_clock only supports 32-bit timer, we should initialize sched_clock with this bitness too. This avoids sched clock time jumping backwards from time to time.
2014-05-15serial: mvf: don't use work queue to receive dataStefan Agner
In low latency mode, tty_flip_buffer_push should be called from interrupt context. However, because flush_to_ldisc is not safe to call from interrupt, the user get a kernel message "BUG: scheduling while atomic". This is actually a kernel bug, which essentially breaks low latency. Using a work queue works around this, however, it also makes the low latency mode useless. In non-low latency mode, the tty code uses a work queue too. So, don't use our own work queue to work around a kernel bug. Instead rely on work queue implementation in the tty code, disable the UPF_LOW_LATENCY feature and hope the low latency bug itself gets fixed eventually. This is also the way the proposed upstream driver works.
2014-05-15serial: mvf: clear pending data before alter FIFOStefan Agner
When data are pending and altering FIFO size and flushing FIFO, we end up having the UARTSR1_RDRF (receive data register full) bit set while UARTSFIFO_RXEMPT (FIFO empty) is set too. We check the second flag in the interrupt routine, which is set, and hence don't read the data register. This leads to an interrupt storm, which never gets handled properly. However, we can not check the UARTSR1_RDRF flag in the interrupt routine, since reading data in this case would misalign the FIFO buffer. Hence we should make sure there are no data before dealing with the FIFO. This fixes a race condition during bootup: when a character was sent between imx_console_setup and imx_startup, the kernel got stuck in a interrupt storm. Another character usually fixed that storm.
2014-04-04mvf_fec.c: Fix mac address read to match fuse layout for latest u-boot3.0-vybrid-ts2.16Andy Voltz
2014-04-03mvf: Allow DMA channel 0 to be used in imx_shutdown in the serial driver.3.0-vybrid-ts2.15Anthony Felice
2014-03-27twr_vf600: Disabled EDMA in UART Configuration3.0-vybrid-ts2.14Anthony Felice
EDMA enabled in the UART configuration prevents ADC from working in MQX 4.0.2. We also disable EDMA with UART in other Vybrid variants due to an incompatibility with sysvinit.
2014-03-27Fixed a panic seen as soon as you type a character on the terminal when EDMA ↵Roshni Shah
is disabled in UART config. The receive interrupt was attempting to schedule a work queue only defined if EDMA is enabled. kernel BUG at kernel/workqueue.c:1037! Unable to handle kernel NULL pointer dereference at virtual address 00000000
2014-03-18Merge tag '3.0-vybrid-ts2.13' into colibri_vfColibri_VF_LinuxImageV2.1Beta3_20140318Stefan Agner
3.0-vybrid-ts2.13
2014-03-14colibri_vf: add PWM LED platform data for PWM channelsStefan Agner
Add platform data for PWM channels B, C and D to be LED PWM. The PWM value can now be set from userspace using /sys/class/leds/PWM*.
2014-03-14colibri_vf: build AC97 as a moduleStefan Agner
The AC97 driver is not yet finished and has problems with power management. Build it as a module so users can load it if required.
2014-03-14colibri_vf: conditional platform data for CAN MCP251XStefan Agner
The Colibri Evaluation Board V3.1a has a on-board SPI CAN controller MCP251X. This patch adds platform data for this device. However, to have CAN support, some configuration have to be enabled: CONFIG_CAN CONFIG_CAN_RAW CONFIG_CAN_BCM CONFIG_CAN_DEV Plus support for the SPI device itself: CONFIG_CAN_MCP251X
2014-03-13dspi: fix dma for SPI1Stefan Agner
Fix registers and channels for SPI1, however using SPI with DMA still doesn't work (dspi_interrupt doesn't fire).
2014-03-13dspi: use parent clock for clock calculationStefan Agner
Use the supplied parent clock for SPI clock calculation. This results in correct clock calculation for 396MHz/500MHz Vybrid SoCs. Also fix an calculation issue: Another division by 2 is not required, the prescaler is taken into account already.
2014-03-12mvf: clock/colibri_vf: add dspi1 clock definition/enable dspi1Stefan Agner
Enable Colibri SPI pins using DSPI1. Define required clocks for DSPI1 and initialize the device on init. Currently the device is available through spidev (/dev/spidev1.0).
2014-03-12dspi: define mode_bitsStefan Agner
Define drivers supported mode using mode_bits. This fixes warnings which claim that hardware don't support modes which actually are supported, e.g. [ 64.586777] spidev spi1.0: setup: unsupported mode bits 3