Eric Nelson [Wed, 3 Oct 2012 07:26:37 +0000 (07:26 +0000)]
i.MX: iomux: input pad array can be const
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Signed-off-by: Stefano Babic <sbabic@denx.de>
Fabio Estevam [Tue, 2 Oct 2012 11:20:12 +0000 (11:20 +0000)]
mx6qsabreauto: Pass the board revision to the kernel
The kernel from Freescale expects that the bootloader passes the board revision.
Read the board revision and pass it via get_board_rev().
Without passing the board revision the kernel does not operate properly as the
initialization of peripherals are different in revA versus revB boards.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Otavio Salvador [Tue, 2 Oct 2012 09:22:10 +0000 (09:22 +0000)]
mx6qsabreauto: Change mmcroot so it works out of box
The mmcroot setting vary between mx6qsabreauto and mx6qsabresd so we
move this to the board configuration file.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Fabio Estevam <fabio.estevam@freescale.com>
Benoît Thébaudeau [Mon, 1 Oct 2012 08:36:25 +0000 (08:36 +0000)]
mxc: Fix SDHC multi-instance clock
On mxc, each SDHC instance has a dedicated clock, so gd->sdhc_clk is not
suitable for the multi-instance use case (initialization made directly with
fsl_esdhc_initialize()).
This patch fixes this issue by adding a configuration field for the SDHC input
clock frequency.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Jason Liu <r64343@freescale.com>
Cc: Matt Sealey <matt@genesi-usa.com>
Cc: Andy Fleming <afleming@gmail.com>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:26:02 +0000 (10:26 +0000)]
mx35: Fix eSDHC clocks
Each eSDHC instance has a dedicated clock.
gd->sdhc_clk must also be set accordingly. This is good for the case only a
single SDHC instance is used (initialization made with fsl_esdhc_mmc_init()). A
future patch will fix the multi-instance use case (initialization made directly
with fsl_esdhc_initialize()).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Benoît Thébaudeau [Mon, 20 Aug 2012 09:54:53 +0000 (09:54 +0000)]
mx35: Clean up lowlevel_init
Clean up mx35 lowlevel_init:
- Indent with tabs.
- Fix comments.
- Use defined values instead of literal constants.
- Use defined macros instead of duplicating code.
- Use macro parameters with default values instead of #define'd configs.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Tom Rini [Mon, 15 Oct 2012 20:37:22 +0000 (13:37 -0700)]
Merge branch 'agust@denx.de-next' of git://git.denx.de/u-boot-staging
Joe Hershberger [Fri, 12 Oct 2012 10:23:37 +0000 (10:23 +0000)]
tools/env: Fix build failure from missing header include
This was introduced in:
8679d0ffdcc0beafea8e6942c0c67cf859afa18e -
COMMON: Use __stringify() instead of MK_STR()
The header is now needed since common.h is not included in this tool.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Marek Vasut [Sat, 6 Oct 2012 14:05:01 +0000 (14:05 +0000)]
kerneldoc: Add myself to the git-mailrc for kerneldoc
Add entry for kerneldoc into the git-mailrc pointing to the U-Boot ML
and myself.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sat, 6 Oct 2012 14:05:00 +0000 (14:05 +0000)]
kerneldoc: Implement "Example" section handling
The default kernel-doc strips starting spaces from every single
line in the Example section. This makes the code look bad. Thus,
implement special handling for this section.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sat, 6 Oct 2012 14:04:59 +0000 (14:04 +0000)]
kerneldoc: Add nicer CSS stylesheet for HTML docs
Import basic CSS stylesheet for the HTML documentation. The base for
the stylesheet is taken from:
http://ds9a.nl/docbook/minimal-page.html
I customized the CSS a bit further, for example to add curvy corners
to example section and change the tint of gray. The HTML documentation
does not look that crude anymore.
Signed-off-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sat, 6 Oct 2012 14:04:58 +0000 (14:04 +0000)]
kerneldoc: Implant DocBook from Linux kernel
Pull slightly modified version of Documentation/DocBook, the related perl
script scripts/kernel-doc and the scripts/docproc.c from Linux kernel and
implant it into U-Boot. This will allow smooth generation of kerneldoc
style documentation.
It was necessary to modify the DocBook/Makefile to work with U-Boot build
system. The changes were only minor though and involved replacing the kbuild
specific parts.
It was also necessary to replace use of variables like KERNEL_VERSION with
U_BOOT_VERSION, strings like Linux kernel with U-Boot Bootloader etc. so
the generated result actually matches.
Finally, it was necessary to adjust docproc.c, since the documentation in
U-Boot is located in doc/DocBook instead of Documentation/DocBook as is in
case of the Linux kernel.
Some parts of the DocBook Makefile are unused, but to allow easier sync with
Linux kernel, these parts are still left in. The targets enabled now are
"htmldocs" "pdfdocs" "psdocs" "xmldocs" and "cleandocs" to remove the results
of documentation build.
Linux scripts/docproc.c:
commit
f0f3ca8d967462dafb815412b14ca3339b9817a6
Date: Wed Jun 15 11:53:13 2011 +0200
Linux scripts/kernel-doc:
commit
1b40c1944db445c1de1c47ffd8cd426167f488e8
Date: Sun Aug 12 10:46:15 2012 +0200
Linux Documentation/DocBook:
commit
bb8187d35f820671d6dd76700d77a6b55f95e2c5
Date: Thu May 17 19:06:13 2012 -0400
Signed-off-by: Marek Vasut <marex@denx.de>
Fabio Estevam [Sun, 30 Sep 2012 05:07:10 +0000 (05:07 +0000)]
configs: mx6qsabre_common.h: Use default clock definitions
Since commit
50d4a707f0 (mx5/6: Define default SoC input clock frequencies)
we can use the default clock values.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Tue, 25 Sep 2012 08:43:57 +0000 (08:43 +0000)]
mx6qsabreauto: Add Ethernet support
mx6qsabreauto has a AR8031 Gigabit PHY.
Add support for it.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Benoît Thébaudeau [Mon, 20 Aug 2012 09:00:57 +0000 (09:00 +0000)]
mx25: Clean up lowlevel_init
Clean up mx25 lowlevel_init:
- Add comments.
- Do not use write32 repeatedly with the same value in order not to increase
code size.
- Make register values configurable.
- Use macro parameters with default values instead of literal constants.
- Use defined macros instead of duplicating code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: John Rigby <jcrigby@gmail.com>
Cc: Matthias Weisser <weisserm@arcor.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 08:43:07 +0000 (08:43 +0000)]
mx31: Fix PDR0_CSI_PODF
The CSI PODF bit-field used by the previous code for the i.MX31 CCM PDR0
register is actually composed of two bit-fields: one pre-divider and one
post-divider. This patch fixes the CCM access macros and the code using them
accordingly.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 11:03:59 +0000 (11:03 +0000)]
mx35: Define MAX and AIPS registers
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 08:43:29 +0000 (08:43 +0000)]
mx31: Add more CCM access macros
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 05:19:12 +0000 (05:19 +0000)]
mx5: Optimize lowlevel_init code size
Optimize mx5 lowlevel_init.S code size:
- Compute values at compile time rather than at runtime where possible.
- Assign r4 to hold the zero value rather than setting registers to 0 again and
again.
- Associate a function to setup_pll rather than expanding its large macro code
multiple times.
- Allocate constant values in section only if used.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Tested-by: Stefano Babic <sbabic@denx.de>
Acked-by: Stefano Babic <sbabic@denx.de>
Otavio Salvador [Wed, 26 Sep 2012 11:37:01 +0000 (11:37 +0000)]
mx6qsabreauto: Use ttymxc3 as console
The mx6qsabreauto console is different than mx6qsabresd so the console
configuration is now set in the board file.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:28:29 +0000 (10:28 +0000)]
mx25: Fix eSDHC support
The MMC driver appropriate for the i.MX25 is fsl_esdhc, which has nothing to do
with mxcmmc.
Also, each eSDHC instance has a dedicated clock, so gd->sdhc_clk must be set
accordingly. This is good for the case only a single SDHC instance is used
(initialization made with fsl_esdhc_mmc_init()). A future patch will fix the
multi-instance use case (initialization made directly with
fsl_esdhc_initialize()).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:28:09 +0000 (10:28 +0000)]
mx25: Define cpu_eth_init() only if needed
The FEC is the only SoC Ethernet support available on i.MX25, so define
cpu_eth_init() only for it instead of returning a misleading success code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:57 +0000 (10:27 +0000)]
mx25: Clean up clocks API
Use the standard mxc_get_clock() instead of exporting internal functions and
using literal constant values.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:44 +0000 (10:27 +0000)]
mx25 clocks: Fix MXC_FEC_CLK
mxc_get_clock(MXC_FEC_CLK) should return the IPG clock, not the AHB clock.
Also, imx_get_fecclk() was correct but reimplemented the calculation of the IPG
clock, so remove the duplicated code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:28 +0000 (10:27 +0000)]
mx25: Define more standard clocks
Define AHB, IPG and CSPI clocks.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:14 +0000 (10:27 +0000)]
mx25: Clean up clock calculations
Avoid possible overflow in clock calculations, and do not waste calls to lldiv()
to divide simple ulongs.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:26:54 +0000 (10:26 +0000)]
mx25: Fix decode_pll
The MFN bit-field of the PLL registers represents a signed value. See the
reference manual.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:24:37 +0000 (10:24 +0000)]
mx5/6 clocks: Fix SDHC clocks
The i.MX5 eSDHC clocks were considered as coming from the IPG clock although
they have dedicated clock paths.
Also, on i.MX5/6, each SDHC instance has a dedicated clock, so gd->sdhc_clk must
be set accordingly. This is good for the case only a single SDHC instance is
used (initialization made with fsl_esdhc_mmc_init()). A future patch will fix
the multi-instance use case (initialization made directly with
fsl_esdhc_initialize()).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:24:13 +0000 (10:24 +0000)]
mx51: Fix I2C clock ID check
There are only 2 I²C instances on i.MX51, but 3 on i.MX53.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:58 +0000 (10:23 +0000)]
mx5 clocks: Fix MXC_FEC_CLK
The FEC clock does not come from PLL1, but from the IPG clock. The previous code
was even inconsistent with itself, returning the IPG clock as expected for
imx_get_fecclk(), but the PLL1 clock for mxc_get_clock(MXC_FEC_CLK).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:42 +0000 (10:23 +0000)]
mx5 clocks: Simplify imx_get_cspiclk()
The code handling the dividers was duplicated for each possible input clock, and
this function can benefit from the newly introduced get_standard_pll_sel_clk()
function instead of duplicating this mux handling code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:23 +0000 (10:23 +0000)]
mx5 clocks: Fix get_uart_clk()
This function returned
66500000 instead of the correct lp_apm clock frequency if
the CCM.CSCMR1.uart_clk_sel mux is set to 3.
This patch fixes this issue by introducing the get_standard_pll_sel_clk()
function that will be used by future patches to handle identical muxes used by
many other clocks.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:08 +0000 (10:23 +0000)]
mx5 clocks: Fix get_ipg_per_clk()
This fixes the "IPG PERCLK" frequency printed by the clocks command. The issue
was that get_ipg_per_clk() used periph_clk instead of lp_apm in the case
CCM.CBCMR.perclk_lp_apm_sel is set.
It also fixes I²C support.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:51 +0000 (10:22 +0000)]
mx5 clocks: Fix get_periph_clk()
In the case periph_clk comes from periph_apm_clk, the latter is selected by the
CCM.CBCMR.periph_apm_sel mux, which can source the lp_apm clock from its
input ♯2. get_periph_clk() returned 0 instead of the lp_apm clock frequency in
this case.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:37 +0000 (10:22 +0000)]
mx5 clocks: Fix get_lp_apm()
If CCM.CCSR.lp_apm is set, the lp_apm clock is not necessarily 32768 Hz x 1024.
In that case:
- on i.MX51, this clock comes from the output of the FPM,
- on i.MX53, this clock comes from the output of PLL4.
This patch fixes the code accordingly.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:22 +0000 (10:22 +0000)]
mx5 clocks: Add and use CCSR definitions
This fixes config_pll_clk(), which used 0x20 instead of 0x200 for PLL4_CLOCK.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Fri, 28 Sep 2012 07:09:03 +0000 (07:09 +0000)]
mx51: Fix USB PHY clocks
The i.MX51 has a single USB PHY clock, while the i.MX53 has two. These 3 clocks
have different clock gate control bit-fields.
The existing code was correct only for i.MX53, so this patch fixes the i.MX51
use case.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Jana Rapava <fermata7@gmail.com>
Cc: Wolfgang Grandegger <wg@denx.de>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:21:22 +0000 (10:21 +0000)]
mx5: Fix clock gate values
The clock gate values are 2-bit bit-fields. Hence, setting or clearing only one
of these bits like what was done is wrong and can lead to unpredictable behavior
depending on the original value of these bit-fields.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:21:00 +0000 (10:21 +0000)]
mx5: Use explicit clock gate names
Use clock gate definitions having names showing clearly the gated clock instead
of names giving only a register field index.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:20:33 +0000 (10:20 +0000)]
mx5 clocks: Cleanup
Clean up the i.MX5 clock driver:
- Use readl() and writel() instead of their __raw_ counterparts.
- Use the clr/setbits_le32() family of macros rather than expanding code.
- Use accessor macros for bit-fields instead of _MASK and _OFFSET.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:19:58 +0000 (10:19 +0000)]
mx5/6: Define default SoC input clock frequencies
Define default SoC input clock frequencies for i.MX5/6 in order to get rid of
duplicated definitions.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Jason Liu <r64343@freescale.com>
Cc: Matt Sealey <matt@genesi-usa.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Matthias Weisser [Mon, 24 Sep 2012 02:46:53 +0000 (02:46 +0000)]
imx: Use MXC_I2C_CLK in imx i2c driver
i2c didn't work on imx25 due to missing MXC_IPG_PERCLK. Now using
MXC_I2C_CLK on all imx systems using i2c.
Signed-off-by: Matthias Weisser <weisserm@arcor.de>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Benard [Sun, 23 Sep 2012 02:03:05 +0000 (02:03 +0000)]
mx25: add CPU revision 1.2
tested on a MCIMX257CJM4A which now reports :
CPU: Freescale i.MX25 rev1.2 at 399 MHz
Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Fabio Estevam [Mon, 24 Sep 2012 08:09:33 +0000 (08:09 +0000)]
mx6q: Add basic support for mx6qsabreauto
mx6qsabreauto is a board based on mx6q SoC with the following features:
- 2GB of DDR3
- 2 USB ports
- 1 HDMI output port
- SPI NOR
- 2 LVDS LCD ports
- Gigabit Ethernet
- Camera
- eMMC and SD card slot
- Multichannel Audio
- CAN
- SATA
- NAND
- PCIE
- Video Input
Add very basic support for it.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Mon, 24 Sep 2012 08:09:32 +0000 (08:09 +0000)]
configs: mx6: Add a common config file
Add a common mx6 config file that can be shared between some mx6 boards.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Eric Nelson [Tue, 18 Sep 2012 15:26:32 +0000 (15:26 +0000)]
i.MX6: get rid of redundant struct src_regs (dupe of struct src)
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Wed, 19 Sep 2012 08:32:31 +0000 (08:32 +0000)]
i.MX6: define struct iomuxc and IOMUX_GPR2 register bitfields
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Nelson [Wed, 19 Sep 2012 08:29:46 +0000 (08:29 +0000)]
i.MX6: Add ANATOP_PFD_480 bitfield constants
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Nelson [Fri, 21 Sep 2012 11:41:42 +0000 (11:41 +0000)]
i.MX6: define IOMUX_GPR3 register bitfields
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Wed, 19 Sep 2012 08:33:50 +0000 (08:33 +0000)]
i.MX6: define bitfields for CHSCCDR register
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Mon, 17 Sep 2012 10:20:50 +0000 (10:20 +0000)]
i.MX6: change register name for CCM_CHSCCDR to match ref. manual
Register CCM_CHSCCDR (offset 0x34 in CCM) is named CCM_CHSCCDR in
reference manual, but was named chscdr in struct mxc_ccm_reg.
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Fri, 21 Sep 2012 07:33:51 +0000 (07:33 +0000)]
i.MX6: provide functional names for CCM_CCGR0-CCGR6 bit fields
Add meaningful constants for each clock channels and use them for
enabling and disabling i.MX6 clocks.
Includes an update to enable/disable the IPU1 clock in
drivers/video/ipu_common to remove IMX5x register access
when used on i.MX6 as discussed in V1:
http://patchwork.ozlabs.org/patch/185129/
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Fabio Estevam [Tue, 18 Sep 2012 09:27:49 +0000 (09:27 +0000)]
mx6qsabresd: Add 8-bit USDHC support
USDHC3 has 8 pins wired in mx6qsabresd. Configure the extra pins.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Tue, 18 Sep 2012 17:24:23 +0000 (17:24 +0000)]
mx6qsabresd: Add Ethernet support
mx6qsabresd has a AR8031 Gigabit PHY.
Add support for it.
Also increase CONFIG_SYS_MALLOC_LEN so that FEC buffer allocation does not fail.
Tested on 1Gbp and 100Mbps networks.
Suggested-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
Fabio Estevam [Thu, 13 Sep 2012 03:18:20 +0000 (03:18 +0000)]
mx6: Add basic support for mx6qsabresd board.
mx6qsabresd is a board based on mx6q SoC with the following features:
- 1GB of DDR3
- 1 USB OTG port
- 1 HDMI output port
- SPI NOR
- LVDS panel
- Gigabit Ethernet
- Camera Connector
- eMMC and SD card slot
- Audio
Add very basic support for it.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Thu, 13 Sep 2012 03:18:19 +0000 (03:18 +0000)]
mx6q: Factor out common DDR3 init code
Factor out common DDR3 initialization code, allowing easier maintainance of such
scripts.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Lukasz Dalek [Tue, 2 Oct 2012 22:51:06 +0000 (00:51 +0200)]
pxa: Add code to examine cpu model and revision
Add function which return CPU model and revision which can be used for
cpu detection.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lucas Stach [Sat, 29 Sep 2012 10:02:09 +0000 (10:02 +0000)]
tegra: nand: add board pinmux
Boards may require a different pinmux setup for NAND than the default one.
Add a way to call into board specific code to set this up.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Sat, 29 Sep 2012 10:02:08 +0000 (10:02 +0000)]
tegra: clean up board include hell
The prototypes used in board files were all scattered out, which lead to
code duplication between SPL and normal U-Boot and some prototypes not actually
being used. Consolidate this in a common board header.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Thu, 27 Sep 2012 13:04:27 +0000 (13:04 +0000)]
tegra: add funcmux entry for NAND attached to KBC
Secondary config for the Flash attachment.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 20:21:14 +0000 (20:21 +0000)]
tegra20: rework UART GPIO handling
Rename board provided gpio_config_uart() to
gpio_early_init_uart() as it does the same thing as the equally
called function provided by the uart-switch code. This allows
to simply call this function in early board init whether or not
we are building with CONFIG_UART_SWITCH defined.
Also provide a weak symbol for this function, to avoid the
need to provide this function for boards that don't need any
fixup.
This patch supersedes the earlier posted
"tegra: convert gpio_config_uart to weak symbol".
Build tested with MAKEALL -s tegra20
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 20:21:13 +0000 (20:21 +0000)]
tegra20: add clock_set_pllout function
Common practice on Tegra 2 boards is to use the pllp_out4 FO
to generate the ULPI reference clock. For this to work we have
to override the default hardware generated output divider.
This function adds a clean way to do so.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 09:59:12 +0000 (09:59 +0000)]
tegra20: complete periph_id enum
Most Tegra boards output the ULPI reference clock on pad DEV2.
Complete the periph_id enum so that we are able to enable this
clock output circuit.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Stephen Warren [Tue, 25 Sep 2012 13:32:26 +0000 (13:32 +0000)]
tegra: enable CONFIG_CMD_PART
This is extremely likely to be used from the boot.scr that Tegra's default
bootcmd locates and executes.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Tom Warren [Wed, 19 Sep 2012 22:50:56 +0000 (15:50 -0700)]
Tegra20: Move some include files to arch-tegra for sharing with Tegra30
The move is pretty straight-forward. ap20.h and tegra20.h were renamed to ap.h and tegra.h.
Some files remain in arch-tegra20 but 'include' a file in 'arch-tegra' with #defines & structs
that will be common between T20 and T30 HW. HW-specific #defines, etc. stay in the 'arch-tegra20'
'root' file.
All boards build OK w/MAKEALL -s tegra20. Checkpatch.pl runs clean. Seaboard works OK.
Signed-off-by: Tom Warren <twarren@nvidia.com>
Tom Warren [Wed, 19 Sep 2012 21:08:52 +0000 (14:08 -0700)]
Tegra20: Move some code files to common directories for upcoming Tegra30 patches.
Move files that are going to be common between T20 and T30 into 'tegra-common'
subdirs in AVP (arm720t), CPU (armv7), and shared (arch/arm/cpu/.) areas. Any
files that are left behind in '/tegra20' will be copied to '/tegra30' subdirs
and modified for that SoC. The 'common' files should need only minor changes.
Include files (arch/arm/include/asm/arch-tegra/tegra20) will be done in a
follow-on patch.
Builds fine w/MAKEALL -s tegra20. Checkpatch.pl is clean.
Signed-off-by: Tom Warren <twarren@nvidia.com>
Thierry Reding [Wed, 19 Sep 2012 00:37:21 +0000 (00:37 +0000)]
tegra: Rename Medcom to Medcom-Wide
Medcom is the marketing name for an older, PXA-based version of the same
device. In order to avoid confusion, rename the Tegra-based version to
the new marketing name.
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Thierry Reding [Wed, 19 Sep 2012 00:37:20 +0000 (00:37 +0000)]
tegra: Update Avionic Design vendor prefix
The official vendor prefix for Avionic Design is now "ad". Update the
board DTS files accordingly.
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Joe Hershberger [Thu, 4 Oct 2012 08:31:00 +0000 (08:31 +0000)]
tools: Add a README note about fw_printenv lock file
Add a mention of the lock file to the README for the fw_printenv tool.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Luka Perkov <uboot@lukaperkov.net>
Joe Hershberger [Wed, 3 Oct 2012 09:38:50 +0000 (09:38 +0000)]
env: Check for NULL pointer in envmatch()
If the pointer passed into envmatch() is NULL, return -1 instead of
crashing.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:49 +0000 (09:38 +0000)]
tools/env: Serialize calls to fw_*env
Use a lock file at /var/lock/fw_printenv.lock.
Avoids seriously confusing the MTD driver.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:48 +0000 (09:38 +0000)]
tools/env: Don't call env_init() in fw_getenv()
We will only call fw_getenv when the env has already been initialized.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:47 +0000 (09:38 +0000)]
tools/env: Remove unneeded complexity
The length included the name length, and then it was subtracted back
out on each use. Now we don't include it in the first place. Also
realloc as we process arguments and eliminate memset. Use memcpy
instead of manually copying each byte.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:46 +0000 (09:38 +0000)]
tools/env: Use a board-specific default env
Originally added in
aa701b94336b358798d676eef12a7b90bdac23f5
Before this patch, there was a hard-coded env that was used as default
if the env in flash is detected as invalid. Now this tool (compiled
for a given board) will share the default env with the u-boot for the
board.
Fix include of config.h
Need to define "TEXT_BASE" when building the fw_env tool so that the
default env will be correct for environments which use it.
Define __ASSEMBLY__ when calling #include <config.h> so that we only
get #defines (all we're interested in).
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Daniel Schwierzeck [Wed, 3 Oct 2012 08:36:11 +0000 (08:36 +0000)]
common: cmd_bdinfo: fix type of value in print_lnum
This fixes a warning when compiling with ELDK-5.2.1 for MIPS64:
cmd_bdinfo.c: In function 'print_lnum':
cmd_bdinfo.c:56:2: warning: format '%llX' expects argument of type 'long long unsigned int', but argument 3 has type 'u64' [-Wformat]
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Simon Glass [Thu, 27 Sep 2012 15:18:43 +0000 (15:18 +0000)]
input: Add debugging for key matrix key codes
These are read from the fdt - add a debug feature to display the mapping
on start-up.
See that we get debug output listing the keycodes
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:42 +0000 (15:18 +0000)]
input: Allow key ghosting filter to be disabled
Some keyboards will not need a key ghosting filter, so make this feature
optional.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:41 +0000 (15:18 +0000)]
input: Separate out keyboard repeat/delay from init
It is inconvenient to have to specify the keyboard repeat and delay at
init time if it is not yet available, so move this into a separate
function.
Some drivers will want to do this when their keyboard init routine
is actually called.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:40 +0000 (15:18 +0000)]
input: Correct key_matrix fdt decoding
Some issues with this were not addressed in the previous series. Fix up
the binding decoding to deal with what is actually expected in the fdt.
This corrects the broken keyboard on seaboard.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fabio Estevam [Fri, 28 Sep 2012 03:36:14 +0000 (03:36 +0000)]
tools: Add cleanpatch
There are some errors reported by checkpatch.pl that can be easily cleaned up by
using the cleanpatch tool.
Import the cleanpatch script from linux kernel 3.5.4 stable version as from the
following commit:
commit
cb3ed5b7e09c6c0462e396d55e3fecc0980a333a
Author: H. Peter Anvin <hpa@zytor.com>
Date: Fri May 25 17:58:26 2007 -0700
scripts: Make cleanfile/cleanpatch warn about long lines
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Simon Glass [Thu, 27 Sep 2012 15:33:46 +0000 (15:33 +0000)]
patman: Handle checkpatch.pl not providing file/line info
Sometimes we don't get a valid filename or line number from checkpatch.pl,
for example if the patch is in a bad format. Deal with this by using a
default value, rather than a stack trace.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:06:02 +0000 (15:06 +0000)]
patman: Support Series-name tag to name a series
Sometimes it is possible to forget the name of the branch you used to
generate an upstream series. To assist with this, add an optional
patman does not use this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Kim Phillips [Thu, 27 Sep 2012 14:57:34 +0000 (14:57 +0000)]
MAKEALL: add a -C/--check option to enable build checking
thanks to Tom Rini for the good idea.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Kim Phillips [Fri, 21 Sep 2012 12:28:17 +0000 (12:28 +0000)]
add check infrastructure, default sparse
Add support for running source code checkers on u-boot source, e.g.,
using sparse to aid with typechecking. This comes in especially
handy as SoC vendors mix and match cores and devices with different
endianness, thus here we add CHECK_ENDIAN to the otherwise linux
kernel default CHECKFLAGS.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Pavel Herrmann [Thu, 27 Sep 2012 23:18:04 +0000 (23:18 +0000)]
sata.h: Make all sata/ata drivers include <sata.h>
- block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong.
- We also move the extern of sata_dev_desc into <sata.h>
- Remove now duplicate declarations from driver-specific headers.
Signed-off-by: Tom Rini <trini@ti.com>
Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
Tom Rini [Sat, 29 Sep 2012 14:36:43 +0000 (07:36 -0700)]
ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)
block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:57:25 +0000 (07:57 -0700)]
sil_sata: Make sata_write() comply with <part.h>
sata_write() takes a const void as the last argument. Fixing this means
we also need to make ata_low_level_rw_lba{28,48} also take a const void.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:57:04 +0000 (07:57 -0700)]
sata_dwc: Make sata_write() use const void, per <part.h>
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:56:31 +0000 (07:56 -0700)]
pata_bfin: Make sata_{read,write}() comply with <part.h>
These functions take lbaint_t for blkcnt.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:55:11 +0000 (07:55 -0700)]
fsl_sata: Make sata_{read,write}() comply with <part.h>
- sata_write() takes a const void as the last argument. Fixing this
means we also need to make ata_low_level_rw_lba{28,48} also take a
const void.
- Both sata_{read,write} take lbaint_t for blkcnt and ulong for blknr
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:53:06 +0000 (07:53 -0700)]
dwc_ahsata: Make sata_write() comply with <part.h>
sata_write() takes a const void as the last argument. Fixing this means
we also need to make ata_low_level_rw_lba{28,48} also take a const void.
Acked-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:52:48 +0000 (07:52 -0700)]
ata_piix: sata_write must take a const void argument.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:35:12 +0000 (07:35 -0700)]
ata_piix: Fix checkpatch issues
While in here also:
- Switch to debug from custom PRINTF for debugging.
- Use mdelay rather than custom msleep.
Signed-off-by: Tom Rini <trini@ti.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:33 +0000 (17:04 +0200)]
usb.h: Add udc_disconnect prototype to usb.h
PXA25x gadget implements common function usb_disconnect().
This patch adds this function prototype into usb.h for boards using it.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:32 +0000 (17:04 +0200)]
pxa25x: Add support for USB ethernet gadget
Add to pxa25x based devices support for USB ethernet gadget. This is a
port of pxa25x UDC driver from Linux kernel.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:31 +0000 (17:04 +0200)]
usbether: Removed DEV_CONFIG_{CDC,SUBSET}
Removed DEV_CONFIG_CDC and DEV_CONFIG_SUBSET and replaced it with
CONFIG_USB_ETH_CDC and CONFIG_USB_ETH_SUBSET.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:30 +0000 (17:04 +0200)]
usbether: Define CONFIG_USB_ETH_{CDC,SUBSET}
Introduced CONFIG_USB_ETH_CDC and CONFIG_USB_ETH_SUBSET as preparation
for removal DEV_CONFIG_CDC and DEV_CONFIG_SUBSET
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:29 +0000 (17:04 +0200)]
usbether: Fixed bug when using with PXA25X chips
PXA25X chips don't support alternate settings so driver uses non-CDC
driver.
But only code defined between DEV_CONFIG_CDC signals that network is up.
This patch is fixing this bug by signaling that network is up after USB
SET_INTERFACE request.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lucas Stach [Sun, 30 Sep 2012 22:44:35 +0000 (00:44 +0200)]
tegra20: add USB ULPI init code
This adds the required code to set up a ULPI USB port. It is
mostly a port of the Linux ULPI setup code with some tweaks
added for more correctness, discovered along the way of
debugging this.
To use this both CONFIG_USB_ULPI and CONFIG_USB_ULPI_VIEWPORT
have to be set in the board configuration file.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Lucas Stach [Sun, 30 Sep 2012 22:44:34 +0000 (00:44 +0200)]
usb: ulpi: add indicator configuration function
Allows for easy configuration of the VBUS indicator related ULPI
config bits.
Also move the external indicator setup from ulpi_set_vbus() to
the new function.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>