Age | Commit message (Collapse) | Author |
|
To access the keypad port registers the IPG clocks need to be on,
specify the clock accordingly.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The keypad port (KPP) module is clocked by the IPG root clock
through clock gate CCM_CCGR170.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Using print_hex_dump_debug avoids printing of every rpmsg message
which is crucial when exchanging messages in higher rates. Using
a #define DEBUG at the beginning of the file allows to reenable
the full debug dump messages if necessary.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Pushing data while there is no reader seems to lock/crash the TTY
layer in some way. Especially when a reader gets attached again,
the kernel crashes with
Unable to handle kernel paging request at virtual address 00002248
Also use tty_insert_flip_string which handels the coping and TTY
buffer resizing if necessary.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
print_hex_dump_debug() is likely supposed to be analogous to pr_debug() or
dev_dbg() & friends. Currently it will adhere to dynamic debug, but will
not stub out prints if CONFIG_DEBUG is not set. Let's make it do the
right thing, because I am tired of having my dmesg buffer full of hex
dumps on production systems.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit cdf17449af1d9b596742c260134edd6c1fac2792)
|
|
Let RPMSG_NUM_BUFS to be the number of buffers per VirtIO queue,
so that each queue (TX/RX) has 256 buffers. The change does not
affect the number of buffers. But specifing per VirtIO queue
aligns better with the way buffer sizes are specified on the
FreeRTOS side (in platform_info.c).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add a kernel parameter ("gpio-mxc.noclearirq") to disable
unconditional interrupt mask/clearing. This is useful when a
second CPU (the Cortex-M4) is accessing the same GPIO bank.
Using the same GPIO bank from the Cortex-A7 and M4 sounds risky,
but it seems to work quite well. Most registers are write only
(e.g. interrupt status register can be cleared with a single
write), which makes them safe for concurrent access. However,
sharing a single GPIO bank between two cores does not allow to
use the Resource Domain Controller. Hence for secure applications
assigning a dedicated GPIO bank is still preferable.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The VirtIO vring descriptors are currently at the end of the
1024MiB boundary of DDR memory 0xbfff8000. For the Colibri iMX7S
and iMX7D this is outside of the addressable DDR memory. In
practise VirtIO still worked because when accessing memory at
out-of-bound addresses it usually just accesses memory from lower
addresses (most significant address line is ignored).
However, we should not rely on that behavior. Move the hardcoded
vring to the end of the 256MiB boundary at 0x8fff0000.
Note: This needs a Cortex-M4 firmware which uses the same
hardcoded vring address.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Currently DMA CMA is set to 320MB which is rather large and cannot
be allocated on Colibri iMX7S. Lower the reserved amount to 128MB
which should be enouth for most use cases and works with systems
which have only 256MiB memory available.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The iMX7 wakeup pin currently has a 47k pullup configured. Thus
one has to pull the pin to 0V to generate the wakeup event. All
other Colibri modules use pull downs and require 3.3V to generate
an event. Also on the Colibri Evaluation Board an external 100kOhm
pulldown is connected, thus the pin is neither at 0V nor 3.3V but
at 2.2V potentially increasing power consumption.
Change logic to use pulldown and require 3.3V to generate wakeup
event.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
SIT tunnels (IPv6 over IPv4) are not often used hence configure
the driver as a module. This also gets rid of the extra network
interface sit0 by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The SPI CAN controller MCP2515 was set up to use the wrong interrupt source.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add the 240MHz sys main clock to the init on list to make sure it
is kept enabled by Linux. This allows to enable/debug the M4 core
after Linux started.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The pad SAI1_RX_DATA can be used as second chip select for dual-die
NAND. However, with an assembly option the pad is available as GPIO
on SODIMM 169. All current version of Colibri iMX7 modules have the
pad available as GPIO hence mux it as GPIO by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The SPI CAN controller MCP2515 uses a dedicated interrupt line.
Assign the interrupt line to the CAN controller node explicitly.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Revisit default pinmux configuration, use pull-ups instead of
pull-downs where there is already an external pull-up by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
We traditionally have all standard pinctrl in the module level
device tree. Move pinctrl accordingly.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The PWM<A> and PWM<D> have multiplexed pins which by default have a
pull-up enabled. Take them into the same pinmux group as the PWM
pin and disable pull-ups.
This also makes sure that there is no conflicting usage of the same
pin...
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable extcon usb gpio support required for usb host/device
switch on Colibri iMX7.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Use USBC_DET feature of standard Colibri SODIMM pin 137 for USB
device/host switching using the generic extcon USB gpio implementation.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
[remove pin from FEC and fixed pinmux assignment]
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Rather than relying on special USB/PHY pins/registers use the
generic extcon framework with its extcon-usb-gpio implementation
to detect ID and VBUS changes.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Use VGA (640x480) timings by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Disable internal RTC on i.MX 7Solo since writing to it is currently
not possible. This leads to freezes/lockups especially on carrier
boards which do not come with an external RTC (where the system
tries to use the internal RTC automatically).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Update #pwm-cells to 3 in order to support PWM signal polarity
control.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add support for PWM polarity control
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Use pwm-backlight driver 'enable-gpios' property for backlight
on/off control.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add sleep state for FEC pins to avoid pull-ups feeding the Ethernet
PMIC while the Ethernet rail is turned off.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add wakeup GPIO key which is able to wake the system from sleep
modes (e.g. Suspend-to-Memory). Also rename the intermediate node
to imx7d-colibri.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Use the disable-wp property since we don't have a concept of write
protect. This also gets rid of the following warning:
mmc0: host does not support reading read-only switch, assuming write-enable
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Remove check if a OPP table has been supplied already (e.g. via
platform data). i.MX 7 always uses OPP tables from device tree
hence this check is superfluous. This also gets rid of the
following error message:
cpu cpu0: dev_pm_opp_get_opp_count: device OPP not found (-19)
Note: There is no i.MX 7 specific cpufreq driver upstream hence
this issue won't appear in newer kernels.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Rename display node to avoid node name duplication:
device-tree: Duplicate name in lcdif@30730000, renamed to "display#1"
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
We can store multiple modes now and select the mode used by the
driver by default using the native-mode property.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Honor the native-mode property by adding only that mode to the
mode list. With that we loose the list of modes, but we currently
don't make use of it anyway. Also, the mode list lacks the pixel
clock polarity information since struct fb_videomode does not store
this information.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Use the timing count from the parsed struct display_timings instead
of looping through the device tree again.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
On some carrier boards (namely Aster, Viola and Orchid) the second
USB port (USBC) is used in host only mode. In this case, the USBH_PEN
signal is also used to enable USB power. This change makes sure that
USBH_PEN is also set in case only one USB port is available (as it is
the case on Colibri iMX7 Solo).
Strictly speaking we should not add the regulator in the Evaluation
Board device tree. However, we use the Evaluation Board device tree
as our "Colibri Standard" device tree and it does not really hurt on
the Evaluation Board...
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
This reverts commit 150c9ee190ebd236f7693b82b9328d49440d0a33.
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The SGTL5000 requires a MCLK frequency in the range of 8 to 27MHz to
work properly. Make sure the clocking requirements are met by setting
the clock within the codecs node.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The SAI1 MCLK pad is connected to the Codecs MCLK and essential for
the codec to function. This allows to probe the Codec before the DAI
which happens to happen by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
toradex_imx_4.1.15_1.0.0_ga-next
|
|
[ Upstream commit 95272c29378ee7dc15f43fa2758cb28a5913a06d ]
-ftracer can duplicate asm blocks causing compilation to fail in
noclone functions. For example, KVM declares a global variable
in an asm like
asm("2: ... \n
.pushsection data \n
.global vmx_return \n
vmx_return: .long 2b");
and -ftracer causes a double declaration.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: stable@vger.kernel.org
Cc: kvm@vger.kernel.org
Reported-by: Linda Walsh <lkml@tlinx.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit 9b561b878bc40703e21144def6a5c2c8d436b883)
|
|
[ Upstream commit cb984d101b30eb7478d32df56a0023e4603cba7f ]
As gcc major version numbers are going to advance rather rapidly in the
future, there's no real value in separate files for each compiler
version.
Deduplicate some of the macros #defined in each file too.
Neaten comments using normal kernel commenting style.
Signed-off-by: Joe Perches <joe@perches.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Sasha Levin <levinsasha928@gmail.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: Alan Modra <amodra@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit f320793e52aee78f0fbb8bcaf10e6614d2e67bfc)
|
|
Change the hardware reset gpio to 'GPIO6_IO15' for mipi dsi to
allow fec2 and mipi dsi can run at the same time. This needs
some hardware rework as follows:
"
1. Replace R631 with 100K resistor;
2. Remove D14, D24;
3. Solder the Cathode of the diode to R471,
you can use BAT54HT1(ONSEMI) or NSR0320MW2T1G(ONSEMI);
4. Solder the wire to the Anode end of the diode;
5. Scrape the solder mask(Green oil) of the MIPI Reset via,
then solder the end of the wire to the via.
"
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 0af28564e73f006f742a9af0db4bc5b8588e3490)
|
|
The 32 bpp pixel format which is passed to pxp should be
'PXP_PIX_FMT_RGB32' instead of 'PXP_PIX_FMT_RGB24', since
only 'PXP_PIX_FMT_RGB32' can be recognized by lcdif.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c98efc59e1bc6d1814b2179f1b7e9f22cb177f47)
|
|
with CONFIG_HZ=100, the precision of jiffies is 10ms, and the
generic_cmd6_time of some card is also 10ms. then, may be current
time is only 5ms, but already timed out caused by jiffies precision.
Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 8bcce64faaaf07165453e6600ae9ffb887e79b1a)
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
(cherry picked from commit 38f639884a2cfd65cbe29ac2fbfe4ab3fcb1f1af)
|
|
there is a time window between __mmc_send_status() and time_afer(),
on some eMMC chip, the timeout_ms is only 10ms, if this thread was
scheduled out during this period, then, even card has already changes
to transfer state by the result of CMD13, this part of code also treat
it to timeout error.
So, need calculate timeout first, then call __mmc_send_status(), if
already timeout and card still in programing state, then treat it to
the real timeout error.
Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 3bbb0deea6d5c6d5ed38ae927a5bf9b0cd7c8639)
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
(cherry picked from commit b9b8249b98b9128d8931887eccb38cd45a0f8bf3)
|
|
Now, when call esdhc_set_timeout() to set the data timeout counter value,
IPP_RST_N(bit 23) is wrongly affected. This patch add a mask to avoid this.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
(cherry picked from commit 6713b713dda4382677bc31a16d6ff3ef23f2d1ac)
|
|
Our Reference Manual has a mistake, for the register SYS_CTRL,the
DTOCV(bit 19~16) means the data timeout counter value. When DTOCV
is set to 0xF, it means SDCLK << 29, not SDCLK << 28.
This patch correct this in our usdhc driver.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
(cherry picked from commit df9598d6dd617ed87b2e41e29bfc794b69831e86)
|
|
Add TouchRevolution's Fusion multi-touch driver and GPIO power
capabilities (useful for custom carrier boards).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add TouchRevolution multitouch controller driver which is connectable
over I2C bus. The driver supports the 7" and 10" multitouch variant
available from TouchRev.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add support for resetting the controller using the gpio reset pin
if interrupt could not be cleared. If clearing the interrupt fails,
the interrupt line stays high and no further interrupts are generated
resulting in a non functioning touchscreen until next reboot, when we
reset the controller again in probe.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|