Age | Commit message (Collapse) | Author |
|
put the imx6sx-19x19-arm2-gpmi-weim.dts to the common dts dir
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
supported NAND on i.MX6SX 19x19 ARM2 board.
Signed-off-by: Allen Xu <b45815@freescale.com>
|
|
This reverts commit 920fa48dd74b158e8a359cc546cf9f6cbfcd95a9.
[Beta2 release does not include Bug fix patches]
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
QSPI chip changed from spansion s25fl128s to micron n25q256a
Signed-off-by: Allen Xu <b45815@freescale.com>
|
|
i.MX6SX TO1.2 ROM has add ocram_s space support for ARM resume,
so no need to enable ROMCP to workaround it for TO1.2.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
On imx6sx-sdb-revb board we use pfuze200 and pfuze100 on reva board.
Signed-off-by: Robin Gong <b38343@freescale.com>
|
|
Commit 63288b721a80 ("ARM: imx: fix shared gate clock") attempted to fix
an issue with particular enable/disable sequence from two shared gate
clocks. But unfortunately, while it partially fixed the issue, it also
did something wrong in .is_enabled() function hook. In case of shared
gate, the function shouldn't really query the hardware state via
share_count, because the function is trying to query the enabling state
of the clock in question, not the hardware state which is shared by
multiple clocks.
Fix the issue by returning the enable_count of the clock itself which is
maintained by clock core, in case it's a clock sharing hardware gate
with others. As the result, the initialization of share_count per
hardware state is not needed now. So remove it.
shawn.guo: cherry-pick commit 9e1ac462b982 from upstream
Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Fixes: 63288b721a80 ("ARM: imx: fix shared gate clock")
Cc: <stable@vger.kernel.org>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
|
|
The CAN transceiver is changed on RevB board and the default imx6sx-sdb.dts
is for support new RevB board.
This patch adds the dts for legacy RevA board support, especially for CAN
device.
This is for people who still wants to use RevA board with this code base.
Signed-off-by: Dong Aisheng <b29396@freescale.com>
|
|
With this, we can pass the gpio active flag from device tree
for initialize the transceiver.
Signed-off-by: Dong Aisheng <b29396@freescale.com>
|
|
-Update the parent of gpu2d_core for mx6dl.
-Update the parent of gpu3d_shader and gpu3d_core for mx6dl.
-Update the clock of gpu3d_shader and gpu3d_core for mx6dl.
The code change is cherry-picked from patch 00e75bcba16d.
Signed-off-by: Loren Huang <b02279@freescale.com>
(cherry picked from commit 2b335e6232b807d114a5a57e0b5956ab794786a4)
|
|
only enable this module in specific dts file.
Signed-off-by: Allen Xu <b45815@freescale.com>
|
|
Add new dts file and enable gpmi module.
Signed-off-by: Allen Xu <b45815@freescale.com>
|
|
The QuadSPI driver has a workaround to check if M4 is using QuadSPI NOR
flash. When M4 is running on QuadSPI NOR, the QuadSPI driver will quit.
This workaround has a bug when system booting from QuadSPI NOR.
Therefore, removed the workaround and disabled the QuadSPI driver in
MCC specific DTB. The MCC DTB will let the QuadSPI driver to disabled,
not conflict with M4.
Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked from commit 6733ca3382ddb6358f4ccf8dd4f16d8f65995241)
|
|
M4 has occupied the ADC1 and ADC2 in RDC, must disable them in DTS
to avoid kernel boot panic.
Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked from commit 046b1c214af6740e7936aae6876941e79c10da8e)
|
|
enable dual camera support on imx6sx-sdb.
For camera ov5640, need an adapter (sch 700-28342)
For VADC, need expansion board (sch 700-26109)
Signed-off-by: Sandor Yu <R01008@freescale.com>
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit ce4e36b59f225b3af75ba04accde746049a58cb4)
|
|
The code incorrectly attempts to set the parent of periph2_clk to periph2_clk2_sel.
Fix this by calling the clk_set_parent() function with the correct parameters.
Also replace all calls to clk_set_parent() and clk_set_rate() with imx_clk_set_parent()
and imx_clk_set_rate() function that prints out error messages in case of failure.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
|
|
for PLL clocks"
The commit aabf4911f9971d4a6f02fe74bfdd39e7d74b7154, which added a check
to prevent pll rate changes when PLL is enabled, causes incorrect reporting
of MMDC clock during low power IDLE.
So revert the patch as the code needs to be improved to handle all cases.
Revert "ENGR00318063-6: ARM: imx6: add CLK_SET_RATE_GATE flag for PLL clocks"
This reverts commit aabf4911f9971d4a6f02fe74bfdd39e7d74b7154.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
|
|
There are a bunch of clk_enable_prepare, clk_set_parent and clk_set_rate
calls in imx6 clock driver's initialization. They are called without
retunr check. If there is something going wrong with the calls, they
will just fail silently.
The patch creates a set of helper functions imx_clk_enable_prepare,
imx_clk_set_parent and imx_clk_set_rate, and use them instead from clock
initialization to check the return and print error message to tell
failures if any.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|
|
GPIO17 is used by headphone jack. if don't config the PAD setting, the
gpio value is not correct.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
|
|
On imx6dl dcic2 clock gate depend on dcic1,
so setting dcic1 as disp-axi clock for dcic2 in imx6qdl dts.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
396MHz in low power idle.
In low power IDLE mode, CPU needs to be sourced from PLL1 instead of PLL2_PFD0
as PLL2 needs to be in bypass mode to achieve 24MHz DDR frequency.
The original code attempts to relock the PLL1 at frequency that is as close
as possible to 396MHz, which results in PLL1 at 648MHz and the ARM freq turns
out to be 324MHz instead of 396MHz. This causes issues with CPUFREQ as 324MHz is
not a frequency listed in the cpufreq table in the device tree.
This patch attempts to fix this mis-match and maintains CPU freq at 396MHz
in low power idle.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
|
|
This is a smilar change for imx6sx clock tree as what we did for imx6q
with commit 0bec46131d88 (ENGR00318063-8: ARM: imx6q: hide buggy
ldb_di_sel from clk API).
As the valid procedure of switching ldb_di_sel on imx6sx is not
available yet, we hide this buggy mux by looking at the parent selection
done by bootloader and register it statically to clock framework, so
that switching this buggy mux becomes impossible.
Also, since the bit width of ldb_di_sels is 3, we add two "dummy"
entries for ldb_di_sels to avoid out-of-bounds error.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|
|
Let's say clock A and B are two gate clocks that share the same register
bit in hardware. Therefore they are registered as shared gate clocks
with imx_clk_gate2_shared().
In a scenario that only clock A is enabled by clk_enable(A) while B is
not used, the shared gate will be unexpectedly disabled in hardware.
It happens because clk_enable(A) increments the share_count from 0 to 1,
while clock B is unused to clock core, and therefore the core function
will just disable B by calling clk->ops->disable() directly. The
consequence of that call is share_count is decremented to 0 and the gate
is disabled in hardware, even though clock A is still in use.
The patch fixes the issue by initializing the share_count per hardware
state and returns enable state per share_count from .is_enabled() hook,
in case it's a shared gate.
While at it, add a check in clk_gate2_disable() to ensure it's never
called with a zero share_count.
Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Fixes: f9f28cdf2167 ("ARM: imx: add shared gate clock support")
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
|
|
We met an issue that access the 0x2600 offset of message ram
does not work although the mx6sx spec claims a 16KB size.
The reason is still unkown.
Change the RAM size to a small size to use the first 2K
to avoid such issue.
Signed-off-by: Dong Aisheng <b29396@freescale.com>
|
|
As some modules need to access ocotp in MSL, so we need to
make sure it is enabled during MSL, after kernel boot up,
clk dirver will disable it in late init.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
bit17/bit18 of GPC_CNTR worked as VADC power state control, that's function looks
different with other bits of this register: write 1 raise power request and write
0 do nothing. Need read and write only the related bit fields of the register to
avoid touch bit17/bit18 on i.mx6sx. Also fix the same for pcie power on/off.
Signed-off-by: Robin Gong <b38343@freescale.com>
|
|
Improve DDR3 freq scaling procedure of i.MX6SX:
1. some code of condition check is incorrect;
2. better to keep MMDC command same as ddr script;
3. improve the clock tree change of mmdc path;
4. remove precharge command.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
Now that we have found the root cause of ddr3 freq scaling of i.MX6SX,
we can remove the previous workaround and add correct fix.
Revert "ENGR00316496 ARM: imx: fix random failure for ddr3 freq scaling on i.mx6sx"
This reverts commit 93510bfa720670b2f80a7f35ffb327f69fcb0f21.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
Gpr item is remove from vadc dts by dcic patch incorrectly.
It should add back, otherwise vadc driver can not initialized.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit f24c5f76c18745c3b6b7562a873dedf0d4a3c321)
|
|
Enable dcic driver for imx6sx ARM2 and SDB board.
Setting LCDIF pins bit 4 for loopback to dcic.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit bf508e6be22d077043c071477250e208621aefd2)
|
|
Enable dcic driver for imx6q/dl SabreSD and SabreAI
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit eec9deb496b20e9dba0de071da9fdfdf779895b3)
|
|
Add dcic driver source code.
Support two instance dcic1 and dcic2.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit 5dd90299f33e93252bd1cc7a9704adb9f469fa66)
|
|
Add dcic1 and dcic define in imx6q clock tree.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit 93ae4ba005f1931ed3cd4e0ac0e8948e3752ad68)
|
|
The PL310 integrated on i.MX6 series and VF610 are revision r3p1 and
later. Per ARM PL310 errata document, 588369 is fixed in r2p0 and
727915 is fixed in r3p1. Neither is needed for i.MX6 or VF610. So
let's drop them.
Signed-off-by: Richard Liu <r66033@freescale.com>
Acked-by: Jason Liu <r64343@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|
|
Becuase in fsl_csi.c, there's a function call as follows.
id = of_alias_get_id(pdev->dev.of_node, "csi");
The corresponding change has been made for imx6sx, but not for imx6sl.
This patch fixed it by making an alias csi0.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit a5738d856fd5a8176f04a5eb316dfd512603ab4a)
|
|
csi_id property is missing in dts file for imx6sl-evk board, which
causes the following kernel dump when insert the csi_v4l2_capture module.
This patch fixed it.
csi_v4l2 csi_v4l2_cap.22: csi_id missing or invalid
Unable to handle kernel NULL pointer dereference at virtual address 00000034
pgd = a8774000
[00000034] *pgd=a957f831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP ARM
Modules linked in: csi_v4l2_capture(+) fsl_csi ov5642_camera ov5640_camera evbug
CPU: 0 PID: 829 Comm: modprobe Not tainted 3.10.31-1.1.0_beta+g3c16fd0 #1
task: a881ef00 ti: a892c000 task.ti: a892c000
PC is at csi_v4l2_probe+0x2a0/0x35c [csi_v4l2_capture]
LR is at csi_v4l2_probe+0x290/0x35c [csi_v4l2_capture]
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit d0173b8ba4027983b2b9e988fafb64124ccb9731)
|
|
csi_id property is missing in dts file for imx6sx-sdb board, which
causes the following kernel dump when insert the csi_v4l2_capture module.
This patch fixed it.
udevd[122]: starting version 182
csi_v4l2 csi1_v4l2_cap.29: csi_id missing or invalid
Unable to handle kernel NULL pointer dereference at virtual address 00000034
pgd = a8c50000
[00000034] *pgd=a8c2f831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP ARM
Modules linked in: evbug csi_v4l2_capture(+) fsl_csi
CPU: 0 PID: 147 Comm: udevd Not tainted 3.10.31-01988-gd965cfd-dirty #831
task: a8c95a40 ti: a8c4c000 task.ti: a8c4c000
PC is at csi_v4l2_probe+0x58/0xfc [csi_v4l2_capture]
LR is at csi_v4l2_probe+0x50/0xfc [csi_v4l2_capture]
pc : [<7f007efc>] lr : [<7f007ef4>] psr: a00f0113
sp : a8c4de40 ip : 600f0113 fp : 00097220
r10: 7f00c000 r9 : a8c4c000 r8 : 7f009d78
r7 : 00000000 r6 : a80ec810 r5 : a80ec800 r4 : 7f009f30
r3 : a8c03000 r2 : 00000000 r1 : a8c03000 r0 : 00000000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c53c7d Table: a8c5004a DAC: 00000015
Process udevd (pid: 147, stack limit = 0xa8c4c238)
Stack: (0xa8c4de40 to 0xa8c4e000)
This patch also changed csi_id for vadc to 1.
Signed-off-by: Robby Cai <r63905@freescale.com>
|
|
Make the linux mmc index to be fixed according to controller order.
This can make user easily to identify which mmcX corresponding to which
controller and kernel be able find the rootfs in a card plugged in a
specific slot persistently.
This is a eventually solution for finding mmc block devices correctly
for different cards on multi slots.
Signed-off-by: Dong Aisheng <b29396@freescale.com>
(cherry picked from commit d6aa7401f65fbe5458e5459526d84405fdf4d078)
|
|
Add CSI2 support.
use CSI2 for VADC instead of CSI1.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit 9de447e3c715fa570c145bdd2e9692f59b0072a3)
|
|
make the alias for two CSI ports.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit 3ba09b29305103b466cc4afa038df9b77818d3c5)
|
|
Add device tree for spdif in sx-sdb board.
Signed-off-by: Shengjiu Wang <b02247@freescale.com>
|
|
Commit ac166cffc9de (ENGR00318063-7: ARM: imx6q: mmdc_ch_axi clock
should be non-gateable) dropped the non-exist gate clock mmdc_ch0_axi by
pointing it to mmdc_ch0_axi_podf. But it forgot updating clock name
used in clock mux selections. This causes call like
clk_set_parent(clk[gpu3d_core_sel], clk[mmdc_ch0_axi]) to fail.
Fix the failure by updating clock name in mux selections to be
"mmdc_ch0_axi_podf".
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|
|
Enable SoC usb charger detect function
Signed-off-by: Peter Chen <peter.chen@freescale.com>
|
|
Modify the dispmix on/off interfaces to add
specific support for 6sx platform.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
(cherry picked from commit 31aab0b205ea9438de96f04ac0201c6fec3a669c)
|
|
Add the required clocks for the dispmix on/off operation.
This include clocks definition and initialization.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
(cherry picked from commit 638acb3c30b135901631e59c9938e06422cc4b76)
|
|
mode option.
The driver for android team need to enalbe mma8451 fifo overflow interrupt feather.
So add the interrupt option into device tree.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from commit 443fd43f454215f615ee326ddb02911e05bcd2ae)
|
|
mux clocks"
This reverts commit cf56832a5ddf3a7caf3641bc272f59c7033f0b88.
The change has a much bigger impact than we initially thought. It
basically requires client drivers to check return of every single
clk_set_parent() and clk_set_rate() call to know if they're doing
something that clock driver prohibits for sake of glitch.
The client drivers haven't been so ready for this change, so let's
revert it from release branch and keep developing it on main branch
for a while.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|
|
As some modules in M/F domain are not ready for this feature,
so need to disable it until every driver are ready for it.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
When there is busfreq scaling between low power mode and audio bus
mode, the enabling of MMDC auto self-refresh code will be skipped
as they are both DLL off mode, it will cause DDR power increase,
so we just move the enabling of the MMDC auto self-refresh mode
to the end of busfreq change to make sure it is enabled after a
DDR freq change.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
Improve DDR3 freq scaling procedure of i.MX6SX:
1. some code of condition check is incorrect;
2. better to keep MMDC command same as ddr script;
3. improve the clock tree change of mmdc path;
4. remove CON_REG req for MMDC.
Signed-off-by: Anson Huang <b20788@freescale.com>
|