summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/arch-mxs
AgeCommit message (Collapse)Author
2024-10-11arch: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2023-12-13arm: mxs: Fix ICOLL macro name typoMarek Vasut
The interrupt collector macro name for i.MX23 is MXS_ICOLL_BASE, this is correct and matches the documentation of both i.MX23 and i.MX28. Align the i.MX28 macro accordingly. No functional change. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]>
2023-05-31include: Remove unused header filesTom Rini
As part of various code clean-ups we have on occasion missed removing unused header files. None of these files are referenced anywhere else at this point. Signed-off-by: Tom Rini <[email protected]>
2022-10-31Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASESimon Glass
The current name is inconsistent with SPL which uses CONFIG_SPL_TEXT_BASE and this makes it imposible to use CONFIG_VAL(). Rename it to resolve this problem. Signed-off-by: Simon Glass <[email protected]>
2020-07-17treewide: convert bd_t to struct bd_info by coccinelleMasahiro Yamada
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <[email protected]>
2020-01-07arm: mxs: fix register definitions for clkctrl_gpmi and clkctrl_sspXRasmus Villemoes
I tried clearing a bit by writing to hw_clkctrl_gpmi_clr, then busy-waiting for it to actually clear. My board hung. The data sheet agrees, these registers do not have _set, _clr, _tog, so fix up the definitions. git grep -E 'clkctrl_(gpmi|ssp[0-9])_' says that nobody uses those non-existing ops registers. Signed-off-by: Rasmus Villemoes <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2018-04-27ARM: mxs: move spl dataMans Rullgard
With full SPL enabled, the loaded image overwrites the mxs_spl_data location. Moving it a slightly lower address fixes this. Signed-off-by: Mans Rullgard <[email protected]>
2017-08-23imx: fix licensing in i.MX filesStefano Babic
Some files for i.MX do not yet have the SPDX ID to reference the correct license. Signed-off-by: Stefano Babic <[email protected]> Reviewed-by: Wolfgang Denk <[email protected]>
2017-07-12imx: reorganize IMX code as other SOCsStefano Babic
Change is consistent with other SOCs and it is in preparation for adding SOMs. SOC's related files are moved from cpu/ to mach-imx/<SOC>. This change is also coherent with the structure in kernel. Signed-off-by: Stefano Babic <[email protected]> CC: Fabio Estevam <[email protected]> CC: Akshay Bhat <[email protected]> CC: Ken Lin <[email protected]> CC: Marek Vasut <[email protected]> CC: Heiko Schocher <[email protected]> CC: "Sébastien Szymanski" <[email protected]> CC: Christian Gmeiner <[email protected]> CC: Stefan Roese <[email protected]> CC: Patrick Bruenn <[email protected]> CC: Troy Kisky <[email protected]> CC: Nikita Kiryanov <[email protected]> CC: Otavio Salvador <[email protected]> CC: "Eric Bénard" <[email protected]> CC: Jagan Teki <[email protected]> CC: Ye Li <[email protected]> CC: Peng Fan <[email protected]> CC: Adrian Alonso <[email protected]> CC: Alison Wang <[email protected]> CC: Tim Harvey <[email protected]> CC: Martin Donnelly <[email protected]> CC: Marcin Niestroj <[email protected]> CC: Lukasz Majewski <[email protected]> CC: Adam Ford <[email protected]> CC: "Albert ARIBAUD (3ADEV)" <[email protected]> CC: Boris Brezillon <[email protected]> CC: Soeren Moch <[email protected]> CC: Richard Hu <[email protected]> CC: Wig Cheng <[email protected]> CC: Vanessa Maegima <[email protected]> CC: Max Krummenacher <[email protected]> CC: Stefan Agner <[email protected]> CC: Markus Niebel <[email protected]> CC: Breno Lima <[email protected]> CC: Francesco Montefoschi <[email protected]> CC: Jaehoon Chung <[email protected]> CC: Scott Wood <[email protected]> CC: Joe Hershberger <[email protected]> CC: Anatolij Gustschin <[email protected]> CC: Simon Glass <[email protected]> CC: "Andrew F. Davis" <[email protected]> CC: "Łukasz Majewski" <[email protected]> CC: Patrice Chotard <[email protected]> CC: Nobuhiro Iwamatsu <[email protected]> CC: Hans de Goede <[email protected]> CC: Masahiro Yamada <[email protected]> CC: Stephen Warren <[email protected]> CC: Andre Przywara <[email protected]> CC: "Álvaro Fernández Rojas" <[email protected]> CC: York Sun <[email protected]> CC: Xiaoliang Yang <[email protected]> CC: Chen-Yu Tsai <[email protected]> CC: George McCollister <[email protected]> CC: Sven Ebenfeld <[email protected]> CC: Filip Brozovic <[email protected]> CC: Petr Kulhavy <[email protected]> CC: Eric Nelson <[email protected]> CC: Bai Ping <[email protected]> CC: Anson Huang <[email protected]> CC: Sanchayan Maity <[email protected]> CC: Lokesh Vutla <[email protected]> CC: Patrick Delaunay <[email protected]> CC: Gary Bisson <[email protected]> CC: Alexander Graf <[email protected]> CC: [email protected] Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
2016-01-03ARM: mxs: allow boards to select DC-DC switching clock sourceMichael Heimpold
For some board designs, it might be useful to switch the DC-DC clock source to something else rather the default 24 MHz, e.g. for EMI reasons. For this, override the mxs_power_setup_dcdc_clocksource function in your board support files. Example: void mxs_power_setup_dcdc_clocksource(void) { mxs_power_switch_dcdc_clocksource(POWER_MISC_FREQSEL_20MHZ); } Signed-off-by: Michael Heimpold <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Acked-by: Marek Vasut <[email protected]>
2015-11-12imx: imx-common: move lcdif structure and macro definition to imx-commonPeng Fan
Move 'struct mxs_lcdif_regs' and lcdif related macro definitions to arch/arm/include/asm/imx-common/regs-lcdif.h. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2015-11-12mxs: regs-common.h must be wrapped with !__ASSEMBLY__Peng Fan
regs-common.h must be wrapped with #ifndef __ASSEMBLY__ Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2015-11-12mxs: add parameter base_addr for mxs_set_lcdclkPeng Fan
Change mxs_set_lcdclk prototype to add a new parameter base_addr. There are two LCD interfaces for i.MX6SX, we may support LCDIF1 or LCDIF2. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Anatolij Gustschin <[email protected]> Acked-by: Anatolij Gustschin <[email protected]>
2015-09-02imx-common: consolidate macros and prototypes into sys_proto.hPeng Fan
Move most macro definitions and prototypes into "arch/arm/include/asm/imx-common/sys_proto.h" to avoid duplicated function prototypes and marco definitions for different i.MX SoCs. This patch do not remove the sys_proto.h for different i.MX SoCs, because we need to modify lots of driver code and others. This patch remove duplicated macros and prototypes and incude "sys_proto.h" of imx-common for each sys_proto.h of different i.MX platforms. Then later we should avoid add stuff in sys_proto.h of each platform, and modify driver to include common sys_proto.h. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Reviewed-by: Stefano Babic <[email protected]>
2015-09-02imx: mxs: reimplement get_cpu_revPeng Fan
Rewrite get_cpu_rev, from "static const char *get_cpu_rev(void)" to "u32 get_cpu_rev(void)". To align with get_cpu_rev of other i.MXes. Also write get_imx_type to replace get_cpu_type, since we have macro named get_cpu_type. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Reviewed-by: Stefano Babic <[email protected]>
2015-02-10arm: mxs: Add 'Wait for JTAG user' if booted in JTAG modeGraeme Russ
When booting in JTAG mode, there is no way to use soft break-points, and no way of knowing when SPL has finished executing (so the user can issue a 'halt' command to load u-boot.bin for example) Add a debug output and simple loop to stop execution at the completion of the SPL initialisation as a pseudo break-point when booting in JTAG mode Signed-off-by: Graeme Russ <[email protected]>
2014-10-25arch-mx: add missing includeJeroen Hofstee
mxs_wait_mask_set and friends need a declaration of struct mxs_register_32. Signed-off-by: Jeroen Hofstee <[email protected]>
2013-10-17ARM: mxs: Setup stack in JTAG modeMarek Vasut
In case the MX23/MX28 is switched into JTAG mode via the BootMode select switches, the BootROM bypasses the CPU core registers initialization. This in turn means that the Stack Pointer (SP) register is not set as it is in every other mode of operation, but instead is only zeroed out. To prevent U-Boot SPL from crashing in this obscure JTAG mode, configure the SP to point at the CONFIG_SYS_INIT_SP_ADDR if the SP is zeroed out. Note that in case the SP is already configured, we must preserve that exact SP value and must not modify it. This is important since in every other mode but the JTAG mode, the SPL returns into the BootROM and BootROM in turn loads U-Boot itself. If the SP were to be corrupted, the BootROM won't be able to continue it's operation after returned from SPL and the system would crash. Finally, add the JTAG mode switch identifier, so it's not recognised as Unknown mode. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]>
2013-09-10ARM: mxs: Receive r0 and r1 passed from BootROMMarek Vasut
Make sure value in register r0 and r1 is preserved and passed to the board_init_ll() and mxs_common_spl_init() where it can be processed further. The value in r0 can be configured during the BootStream generation to arbitary value, r1 contains pointer to return value from CALL'd function. This patch also clears the value in r0 before returning to BootROM to make sure the BootROM is not confused by this value. Finally, this patch cleans up some comments in the start.S file. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-08-21ARM: mxs: Added application UART driverAndreas Wass
The driver makes it possible to use an application UART as the U-Boot output console for Freescale i.MX23/i.MX28 devices. Signed-off-by: Andreas Wass <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marek Vasut <[email protected]> Acked-by: Marek Vasut <[email protected]>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <[email protected]>
2013-05-06arm: mxs: Add LCDIF registers for i.MX233Marek Vasut
Extend the regs-lcdif.h with registers for i.MX233. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-05-06arm: mxs: Add LCDIF clock configuration functionMarek Vasut
This function turns on the LCDIF clock and configures it's frequency. The dividers settings are calculated within the function and the current implementation should be fast and accurate. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-05-05mx23: Fix pad voltage selection bitFabio Estevam
On mx23 the pad voltage selection bit needs to be always '0', since '1' is a reserved value. For example: Pin 108, EMI_A06 pin voltage selection: 0= 1.8V (mDDR) or 2.5V (DDR1); 1= reserved. Fix the pad voltage definitions for the mx23 case. Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Marek Vasut <[email protected]>
2013-04-22imx: Move some header files from arch-mxs to imx-commonStefan Roese
The following headers are moved to a i.MX common location: - regs-common.h - regs-apbh.h - regs-bch.h - regs-gpmi.h - dma.h This way this header can be re-used also by other i.MX platforms. For example the i.MX6 which will need it for the upcoming NAND support. Signed-off-by: Stefan Roese <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]>
2013-03-07mxs: timrot: Add support to i.MX23Fadil Berisha
This patch add timer support to i.MX23 and complete bit fields and values on regs-timrot.h. Testet on imx23-olinuxino board. Signed-off-by: Fadil Berisha <[email protected]> Acked-by: Marek Vasut <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]> Acked-by: Otavio Salvador <[email protected]>
2013-03-07mxs: Fix iomux.h to not break build during assembly stageOtavio Salvador
This fixes the build failure when included in mx23_olinuxino.h board config; the addition of "asm/types.h" is due "u32" being otherwise undefined. Signed-off-by: Otavio Salvador <[email protected]>
2013-03-07mxs: Squash the header file usage in ehci-mxsMarek Vasut
The ehci-mxs driver included the register definitions directly. Use imx-regs.h instead since it contains proper handling of the differences between mx23 and mx28. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]> Acked-by: Otavio Salvador <[email protected]>
2013-03-07mxs: mmc: spi: dma: Better wrap the MXS differencesMarek Vasut
This patch streamlines the differences between the MX23 and MX28 by implementing a few helper functions to handle different DMA channel mapping, different clock domain for SSP block and fixes a few minor bugs. First of all, the DMA channel mapping is now fixed in dma.h by defining the actual channel map for both MX23 and MX28. Thus, MX23 now does no longer use MX28 channel map which was wrong. Also, there is a fix for MX28 DMA channel map, where the last four channels were incorrect. Next, because correct DMA channel map is in place, the mxs_dma_init_channel() call now bases the channel ID starting from SSP port #0. This removes the need for DMA channel offset being added and cleans up the code. For the same reason, the SSP0 offset can now be used in mxs_dma_desc_append(), thus no need to adjust dma channel number in the driver either. Lastly, the SSP clock ID is now retrieved by calling mxs_ssp_clock_by_bus() which handles the fact that MX23 has shared SSP clock for both ports, while MX28 has per-port SSP clock. Finally, the mxs_ssp_bus_id_valid() pulls out two implementations of the same functionality from MMC and SPI driver into common code. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-28mxs: mmc: Allow overriding default card detect implementationMarek Vasut
Some MXS based boards do not implement the card-detect signal. Allow user to specify alternate card-detect implementation. Signed-off-by: Marek Vasut <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-28mxs: ssp: Add SSP registers map for MX23Marek Vasut
The MX23 SSP register layout differs from MX28 in certain bits, adjust the register layout accordingly. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-28mxs: dma: Fix APBH DMA driver for MX23Marek Vasut
The MX23 has less channels for the APBH DMA, sligtly different register layout and some bits in those registers are placed differently. Reflect this in the driver. This patch fixes MMC/DMA issue on MX23. Signed-off-by: Marek Vasut <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mxs: Add MX23 quirks into the clock codeOtavio Salvador
The MX23 has different handling of the SSP clock and GPMI NAND clock sources, add necessary quirks into the clock code to properly handle these. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: Add boot mode descriptionOtavio Salvador
Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: Add support on print_cpuinfo()Otavio Salvador
Add information to identify i.MX23 chips and its known revisions. Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: ssp: Fix ssp-regs.h for MX23Marek Vasut
Disable SSP2 and SSP3 ports on MX23. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: Add POWER and CLKCTRL register definitionsMarek Vasut
Add register definitions for the i.MX23 power control block and clock control block. These are essential for the basic bootstrap of the i.MX23. Also, properly include them in imx-regs.h . Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Otavio Salvador <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: Add iomux-mx23.hOtavio Salvador
This has been copied from Linux source at revision 786f02b719f. Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mx23: Add register base addressesOtavio Salvador
This adds the base addresses of i.MX23 and easy the detection of wrong order in board setup, in case no SoC has been set, an error is raised during build. Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mxs: clock: Use 'mxs' prefix for methodsOtavio Salvador
Signed-off-by: Otavio Salvador <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2013-01-21mxs: ssp: Pull out the SSP bus to regs conversionMarek Vasut
Create function which converts SSP bus number to SSP register pointer. This functionality is reimplemented multiple times in the code, thus make one common implementation. Moreover, make it a switch(), since the SSP ports are not mapped in such nice linear fashion on MX23, therefore having it a switch will simplify things there. Signed-off-by: Marek Vasut <[email protected]> Cc: Andy Fleming <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]>
2012-12-22Merge samsung, imx, tegra into u-boot-arm/masterAlbert ARIBAUD
This commit merges branches from samsung, imx and tegra meant to fix merge issues between u-boot/master and u-boot-arm/master, as well as a few manual merge fixes.
2012-12-19Merge remote-tracking branch 'u-boot/master' into u-boot-arm-mergedAllen Martin
Conflicts: README arch/arm/cpu/armv7/exynos/clock.c board/samsung/universal_c210/universal.c drivers/misc/Makefile drivers/power/power_fsl.c include/configs/mx35pdk.h include/configs/mx53loco.h include/configs/seaboard.h
2012-12-11mxs: i2c: Implement algorithm to set up arbitrary i2c speedMarek Vasut
This algorithm computes the values of TIMING{0,1,2} registers for the MX28 I2C block. This algorithm was derived by using a scope, but the result seems correct. The resulting values programmed into the registers do not correlate with the contents in datasheet. When using the values from the datasheet, the I2C clock were completely wrong. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Wolfgang Denk <[email protected]>
2012-12-04mx28: Rename regs-power.h to regs-power-mx28.hMarek Vasut
The i.MX23 has different register layout and bit placement in the power supply. Thus, in order to be able to add support for MX23, rename the MX28's regs-power.h to regs-power-mx28.h . Moreover, add ifdef around inclusion of regs-*-mx28.h in imx-regs.h so the MX23 boards will include proper set of registers. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2012-12-04mx28: Remove SET, CLR, TOG ops from PLLxCTRL1 registersMarek Vasut
These registers don't have _SET, _CLR and _TOG at the respective offsets available, these registers has to be toggled via R-M-W if needed. Thus do not export these offsets anymore. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]> Acked-by: Otavio Salvador <[email protected]>
2012-11-24mx28: Fix typo in POWER_DCLIMITS_NEGLIMIT_OFFSETMarek Vasut
The POWER_DCLIMITS_NEGLIMIT_OFFSET bit in mx28 power supply block is not called POWER_DCLIMITS_NETLIMIT_OFFSET, but POWER_DCLIMITS_NEGLIMIT_OFFSET. Correct the name in the header file. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2012-11-24mx28: Fix typo in POWER_MINPWR_VBG_OFFMarek Vasut
The POWER_MINPWR_VBG_OFF bit in mx28 power supply block is not called POWER_MINPWR_FBG_OFF, but POWER_MINPWR_VBG_OFF. Correct the name in the header file. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]>
2012-09-01mxs: Convert timeout parameter to 'unsigned int'[email protected]
For representing a timeout value, it makes more sense to pass it as 'unsigned int'. Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Marek Vasut <[email protected]> Acked-by: Stefano Babic <[email protected]>