karo-tx-uboot.git
5 years agonand, atmel: remove udelay in spl_nand_erase_one()
Heiko Schocher [Mon, 29 Jun 2015 07:10:47 +0000 (09:10 +0200)]
nand, atmel: remove udelay in spl_nand_erase_one()

remove unneeded udelay() in this function, as we use
the dev_ready pin.

Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Scott Wood <scottwood@freescale.com>
5 years agospl, common, serial: build SPL without serial support
Heiko Schocher [Mon, 29 Jun 2015 07:10:46 +0000 (09:10 +0200)]
spl, common, serial: build SPL without serial support

This patch enables building SPL without
CONFIG_SPL_SERIAL_SUPPORT support.

Signed-off-by: Heiko Schocher <hs@denx.de>
[trini: Ensure we build arch/arm/imx-common on mx28]
Signed-off-by: Tom Rini <trini@konsulko.com>
5 years agonet: e1000: Increase autoneg timeout to 8 seconds
Stefan Roese [Tue, 11 Aug 2015 15:12:44 +0000 (17:12 +0200)]
net: e1000: Increase autoneg timeout to 8 seconds

The current 4.5 timeout for the autonegotiation are not enough to
complete it on my platform. Using the Intel E1000 PCIe card in the
Marvell db-mv784mp-gp eval board. So lets increase the timeout to
8 seconds.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Simon Glass <sjg@chromium.org>
5 years agotftp.c: fix CONFIG_TFTP_TSIZE for small files
Max Krummenacher [Wed, 5 Aug 2015 15:17:05 +0000 (17:17 +0200)]
tftp.c: fix CONFIG_TFTP_TSIZE for small files

CONFIG_TFTP_TSIZE should limit a tftp downloads progress to 50 '#'
chars. Make this work also for small files.

If the file size is small, i.e. smaller than 2 tftp block sizes the
number of '#' can get much larger. i.e. with a 1 byte file 65000
characters are printed, with a 512 byte file around 500.

When using CONFIG TFTP BLOCKSIZE together with CONFIG_IP_DEFRAG the
issue is more notable.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agoport vexpress to use distro boot commands
Dennis Gilmore [Sun, 28 Jun 2015 19:05:12 +0000 (14:05 -0500)]
port vexpress to use distro boot commands

remove options defined in the distro defaults
add distro bot commands
set scriptaddr value

Signed-off-by: Dennis Gilmore <dennis@ausil.us>
5 years agoMove setting CONFIG_BOOTP_VCI_STRING to before including the vexpress-common header
Dennis Gilmore [Sun, 28 Jun 2015 19:05:11 +0000 (14:05 -0500)]
Move setting CONFIG_BOOTP_VCI_STRING to before including the vexpress-common header

Signed-off-by: Dennis Gilmore <dennis@ausil.us>
5 years agoPXE: if a board has set its own value for CONFIG_BOOTP_VCI_STRING do not set the...
Dennis Gilmore [Sun, 28 Jun 2015 19:05:10 +0000 (14:05 -0500)]
PXE: if a board has set its own value for CONFIG_BOOTP_VCI_STRING do not set the default one. Use the board set value instead

Signed-off-by: Dennis Gilmore <dennis@ausil.us>
5 years agoARM: highbank: remove DRAM bank setup
Rob Herring [Sat, 20 Jun 2015 23:29:55 +0000 (00:29 +0100)]
ARM: highbank: remove DRAM bank setup

On the highbank platform the SoC's management controller firmware
will probe the DRAM modules and populates the initial device tree with
the correct values. Therefore the memory sizes in the DT are already
correct, so remove U-Boot's DRAM bank setup so the memory node is not
"fixed up" by u-boot.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Andre Przywara <osp@andrep.de>
5 years agodm: pmic: max77686: Correct two typos in a comment
Simon Glass [Sun, 9 Aug 2015 15:10:57 +0000 (09:10 -0600)]
dm: pmic: max77686: Correct two typos in a comment

These were pointed out in review but I missed them.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agopower: regulator: max77686 correct variable type
Peng Fan [Tue, 28 Jul 2015 14:47:08 +0000 (22:47 +0800)]
power: regulator: max77686 correct variable type

The return type of pmic_read and pmic_write is signed int, so
correct variable 'ret' from type unsigned int to int.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
5 years agofsl: common: pfuze: no use original pfuze code if DM_PMIC
Peng Fan [Fri, 7 Aug 2015 08:43:46 +0000 (16:43 +0800)]
fsl: common: pfuze: no use original pfuze code if DM_PMIC

If enable DM PMIC and REGULATOR, we should not use original power
framework. So need to comment out the pfuze code for original power
framework, when CONFIG_DM_PMIC_PFUZE100 defined.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agopower: regulator: add pfuze100 support
Peng Fan [Fri, 7 Aug 2015 08:43:45 +0000 (16:43 +0800)]
power: regulator: add pfuze100 support

1. Add new regulator driver pfuze100.
   * Introduce struct pfuze100_regulator_desc for maintaining info
     for one regulator.
2. Add new Kconfig entry DM_REGULATOR_PFUZE100 for pfuze100.
3. This driver intends to support PF100, PF200 and PF3000.
4. Add related macro definition in pfuze header file.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
5 years agopower: pmic: pfuze100 support driver model
Peng Fan [Fri, 7 Aug 2015 08:43:44 +0000 (16:43 +0800)]
power: pmic: pfuze100 support driver model

1. Support driver model for pfuze100.
2. Introduce a new Kconfig entry DM_PMIC_PFUZE100 for pfuze100
3. This driver intends to support PF100, PF200 and PF3000, so add
   the device id into the udevice_id array.
4. Rename PMIC_NUM_OF_REGS macro to PFUZE100_NUM_OF_REGS.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agopower: regulator: update comments for regulator-name
Peng Fan [Fri, 7 Aug 2015 08:43:43 +0000 (16:43 +0800)]
power: regulator: update comments for regulator-name

We do not need that "regulator-name" property must be provided in dts.
If "regulator-name" property is not provided in dts, node name
will chosen for settings '.name' field of uc_pdata.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
5 years agopower: regulator use node name when no regulator-name
Peng Fan [Fri, 7 Aug 2015 08:43:42 +0000 (16:43 +0800)]
power: regulator use node name when no regulator-name

If there is no property named 'regulator-name' for regulators,
choose node name instead, but not directly return failure value.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
5 years agopower: pfuze100 correct SWBST macro definition
Peng Fan [Fri, 7 Aug 2015 08:43:41 +0000 (16:43 +0800)]
power: pfuze100 correct SWBST macro definition

According to datasheet, SWBST_MODE starts from bit 2 and it occupies 2 bits.
So SWBST_MODE_MASK should be 0xC, and SWBST_MODE_xx should be ([mode] << 2).

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agommc: dw_mmc: Avoid using printf() for errors
Simon Glass [Fri, 7 Aug 2015 02:16:27 +0000 (20:16 -0600)]
mmc: dw_mmc: Avoid using printf() for errors

The dw_mmc driver uses printf() in various places.

These bloat the code and cause problems for SPL. Use debug() where possible
and try to return a useful error code instead.

panto: Small rework to make it apply against top of tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
5 years agonet: phy: broadcom: Add BCM Cygnus PHY
Jiandong Zheng [Wed, 15 Jul 2015 23:28:13 +0000 (16:28 -0700)]
net: phy: broadcom: Add BCM Cygnus PHY

Add Ethernet PHY for BCM Cygnus SoC

Signed-off-by: Jiandong Zheng <jdzheng@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: phy: delay only if reset handler is registered
Jörg Krause [Wed, 15 Jul 2015 13:18:22 +0000 (15:18 +0200)]
net: phy: delay only if reset handler is registered

With commit e3a77218a256edbe201112a39beeed8adcabae3f the MII bus is only
reset if a reset handler is registered. If there is no reset handler there
is no need to wait for a device to come out of the reset.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
5 years agonet: phy: fix data type of phy_id
Jörg Krause [Wed, 15 Jul 2015 12:58:49 +0000 (14:58 +0200)]
net: phy: fix data type of phy_id

phy_id is declared as u32 in create_phy_by_mask and in struct phy_device.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
5 years agoqoriq eth.c bugfix: handle received corrupted frames correctly
Daniel Inderbitzin [Fri, 10 Jul 2015 12:06:02 +0000 (14:06 +0200)]
qoriq eth.c bugfix: handle received corrupted frames correctly

The rxbd is not correctly handled in case of a frame physical error
(FPE) or frame size error (FSE). The rxbd must be cleared and
advanced in case of an error to avoid receive stall.

Signed-off-by: Daniel Inderbitzin <daniel.inderbitzin@gmail.com>
5 years agonet: lpc32xx: add RMII phy mode support
Vladimir Zapolskiy [Mon, 6 Jul 2015 04:22:11 +0000 (07:22 +0300)]
net: lpc32xx: add RMII phy mode support

LPC32xx MAC and clock control configuration requires some minor quirks
to deal with a phy connected by RMII.

It's worth to mention that the kernel and legacy BSP from NXP sets
SUPP_RESET_RMII == (1 << 11) bit, however the description of this bit is
missing in shared LPC32x0 User Manual UM10326 Rev. 3, July 22, 2011
and in LPC32x0 Draft User Mannual Rev. 00.27, November 20, 2008, also
in my tests an SMSC LAN8700 phy device connected over RMII seems to
work correctly without touching this bit.

Add support of RMII, if CONFIG_RMII is defined, this option is aligned
with a number of boards, which already define the same config value.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Tested-by: Sylvain Lemieux <slemieux@tycoint.com>
5 years agonet: lpc32xx: improve MAC configuration on reset and initialization
Vladimir Zapolskiy [Mon, 6 Jul 2015 04:22:10 +0000 (07:22 +0300)]
net: lpc32xx: improve MAC configuration on reset and initialization

This change rearranges general MAC configuration and PHY specific
configuration of MAC registers (duplex mode and speed), before this
change set bits related to PHY configuration in MAC2 and COMMAND
registers are rewritten by the following writing to the registers.

Without the change auto negotiation on boot quite often is not
completed in reasonable time:

  Waiting for PHY auto negotiation to complete......... TIMEOUT !

Additionally MAC1_SOFT_RESET clear bit is removed since it is done in
preceding lpc32xx_eth_initialize() and in lpc32xx_eth_halt(), instead
added missing MCFG_RESET_MII_MGMT on device initialization.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
5 years agonet: lpc32xx: connect MAC to phy with CONFIG_PHY_ADDR id
Vladimir Zapolskiy [Mon, 29 Jun 2015 00:35:12 +0000 (03:35 +0300)]
net: lpc32xx: connect MAC to phy with CONFIG_PHY_ADDR id

The lpc32xx_eth_phylib_init() function is capable to connect LPC32XX
MAC to some specified phy by phy id, by chance the single user of
lpc32xx_eth has CONFIG_PHY_ADDR set to 0, however other boards may
have non-zero CONFIG_PHY_ADDR value, fix it.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Acked-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: lpc32xx: correct command register reset value
Vladimir Zapolskiy [Sun, 28 Jun 2015 03:03:38 +0000 (06:03 +0300)]
net: lpc32xx: correct command register reset value

According to LPC32x0 User Manual the following bits in Command
register 0x3106_0100 are defined:

  Bit    Symbol
    2  - Unused
    3  RegReset
    4   TxReset
    5   RxReset

Fix wrong (1-bit shifted right) COMMAND_RESETS value, which sets
an unused bit, but neglects RxReset.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Acked-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: davinci_emac: don't teardown inactive rx channel
Jeroen Hofstee [Sun, 7 Jun 2015 15:30:38 +0000 (17:30 +0200)]
net: davinci_emac: don't teardown inactive rx channel

Tearing down an unitialized rx channel causes a pending address hole
event to be queued. When booting linux it will report this pending
as something like "Address Hole seen by USB_OTG  at address 57fff584",
since u-boot did not handled this interrupt. Prevent that by not
tearing down the rx channel, when not receiving.

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
5 years agonet: Add support for Marvell 88E1510 PHY
Clemens Gruber [Sat, 6 Jun 2015 12:44:58 +0000 (14:44 +0200)]
net: Add support for Marvell 88E1510 PHY

Support the 88E1510 PHY which is very similar to the 88E1518.
I also set the INTn output and configured the LEDs.

Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Hao Zhang <hzhang@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: Improve 88E151x PHY initialization
Clemens Gruber [Sat, 6 Jun 2015 12:44:57 +0000 (14:44 +0200)]
net: Improve 88E151x PHY initialization

- The EEE fixup magic should also be enabled for RGMII
- Improved comments

Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Hao Zhang <hzhang@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: macb: add gmac multi-queue support
Wu, Josh [Wed, 3 Jun 2015 08:45:44 +0000 (16:45 +0800)]
net: macb: add gmac multi-queue support

This patch refer to linux kernel commit: d8b763e1e79f
  net/macb: add TX multiqueue support for gem
  by: Cyrille Pitchen

1. macb driver will check the register to find how many queues support for
this chip.

2. Then as we only use queue0 for tx, so we will set up all other queues
use a dummy descriptor, which USED bit is set. So those queues are not used.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet/phy: set led for rtl8211f phy
Shengzhou Liu [Thu, 21 May 2015 10:07:35 +0000 (18:07 +0800)]
net/phy: set led for rtl8211f phy

Initialize LCR rigister to configure
green LED for Link, yellow LED for Active.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
5 years agoe1000: remove unnecessary clearing of SWSM.SWSM_SMBI
Tim Harvey [Tue, 19 May 2015 17:01:20 +0000 (10:01 -0700)]
e1000: remove unnecessary clearing of SWSM.SWSM_SMBI

remove unnecessary clearing of SWSM.SWSM_SMBI when obtaining the SW
semaphore. This was introduced in 951860634fdb557bbb58e0f99215391bc0c29779
while adding i210 support and should be now resolved by releasing the
semaphore when no longer needed.

Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Aneesh Bansal <aneesh.bansal@freescale.com>
Cc: Naveen Burmi <NaveenBurmi@freescale.com>
Cc: Po Liu <po.liu@freescale.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Alison Wang <alison.wang@freescale.com>
Cc: Reinhard Arlt <reinhard.arlt@esd-electronics.com>
Cc: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: York Sun <yorksun@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
5 years agoRevert "e1000: fix sw fw sync on igb i210/i211"
Tim Harvey [Tue, 19 May 2015 17:01:19 +0000 (10:01 -0700)]
Revert "e1000: fix sw fw sync on igb i210/i211"

This reverts commit 17da7120249bfdef877f46be5bbcb3cc01212eb9.

The i210/i211 do have the SW_FW_SYNC (0x5b5c) register and this is what should
be used when acquiring the semaphore.

I believe the issue that this patch was trying to resolve is now resolved
by properly releasing the semaphore once no longer needed.

Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Aneesh Bansal <aneesh.bansal@freescale.com>
Cc: Naveen Burmi <NaveenBurmi@freescale.com>
Cc: Po Liu <po.liu@freescale.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Alison Wang <alison.wang@freescale.com>
Cc: Reinhard Arlt <reinhard.arlt@esd-electronics.com>
Cc: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: York Sun <yorksun@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
5 years agoe1000: releasing semaphore once no longer needed
Tim Harvey [Tue, 19 May 2015 17:01:18 +0000 (10:01 -0700)]
e1000: releasing semaphore once no longer needed

Once the hwsw semaphore is acquired, it must be released when access to the
hw is completed. Without this subsequent calls to acquire will timeout
obtaining the semaphore.

Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Aneesh Bansal <aneesh.bansal@freescale.com>
Cc: Naveen Burmi <NaveenBurmi@freescale.com>
Cc: Po Liu <po.liu@freescale.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Alison Wang <alison.wang@freescale.com>
Cc: Reinhard Arlt <reinhard.arlt@esd-electronics.com>
Cc: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: York Sun <yorksun@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
5 years agommc: dw_mmc: Improve handling of data transfer failure
Marek Vasut [Mon, 27 Jul 2015 20:39:38 +0000 (22:39 +0200)]
mmc: dw_mmc: Improve handling of data transfer failure

In case the data transfer failure happens, instead of returning
immediatelly, make sure the DMA is disabled, status register is
cleared and the bounce buffer is stopped.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
5 years agommc: dw_mmc: Zap endless timeout
Marek Vasut [Mon, 27 Jul 2015 20:39:37 +0000 (22:39 +0200)]
mmc: dw_mmc: Zap endless timeout

Endless timeouts are bad, since if we get stuck in one, we have no
way out. Zap this one by implementing proper timeout.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
5 years agommc: dw_mmc: Stop bounce buffer even in case of failure
Marek Vasut [Mon, 27 Jul 2015 20:39:36 +0000 (22:39 +0200)]
mmc: dw_mmc: Stop bounce buffer even in case of failure

The driver didn't stop the bounce buffer in case a data transfer
failed. This would lead to memory leakage if the communication
between the CPU and the card is unreliable. Add the missing call
to stop the bounce buffer.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
5 years agodm: serial: Add a REQUIRE_SERIAL_CONSOLE option for boards with no serial port
Hans de Goede [Sat, 8 Aug 2015 15:45:18 +0000 (17:45 +0200)]
dm: serial: Add a REQUIRE_SERIAL_CONSOLE option for boards with no serial port

Currently the serial code assumes that there is always at least one serial
port (and panics / crashes due to null pointer dereferences when there is
none).

This makes it impossible to use u-boot on boards where there is no (debug)
serial port, because e.g. all uart pins are muxed to another function.

This commit adds a CONFIG_REQUIRE_SERIAL_CONSOLE Kconfig option, which
defaults to y (preserving existing behavior), which can be set to n on
such boards to make them work.

This commit only implements this for CONFIG_DM_SERIAL=y configs, as allowing
running without a serial port for CONFIG_DM_SERIAL=n configs is non trivial,
and is not necessary at this moment.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Simon Glass <sjg@chromium.org>
5 years agosunxi: display: Add composite video out support
Hans de Goede [Mon, 3 Aug 2015 17:20:26 +0000 (19:20 +0200)]
sunxi: display: Add composite video out support

Add composite video out support.

This only gets enabled on the Mele M3 for now, since that is were it
was tested. It will be enabled on more boards after testing.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: display: Add support for interlaced modes
Hans de Goede [Sun, 2 Aug 2015 14:49:29 +0000 (16:49 +0200)]
sunxi: display: Add support for interlaced modes

Add support for interlaced modes, this is a preparation patch for adding
composite out support.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: display: Add a few extra register and constant defines
Hans de Goede [Mon, 3 Aug 2015 17:45:37 +0000 (19:45 +0200)]
sunxi: display: Add a few extra register and constant defines

Add a few extra sunxi display registers and constant defines.

Also rename some existing defines (e.g. dropping _GCTRL) and make
some more generic (e.g. dropping the 2x scaling from
SUNXI_LCDC_TCON1_TIMING_V_TOTAL).

This is a preparation patch for adding composite video out support.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: display: Correct clk_delay calculations for lcd displays
Hans de Goede [Sun, 2 Aug 2015 15:38:43 +0000 (17:38 +0200)]
sunxi: display: Correct clk_delay calculations for lcd displays

We should only subtract 2 from the vblank time when using tcon1.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: display: Replace #ifdef-ery with helper functions
Hans de Goede [Mon, 3 Aug 2015 21:01:38 +0000 (23:01 +0200)]
sunxi: display: Replace #ifdef-ery with helper functions

All the #ifdef-ery in selecting the default and fallback monitor type is
becoming unyielding and makes the code hard to read, replace it with a few
helper functions.

This will also be useful with the upcoming CHIP board which has display
adapter daughterboards which should be runtime detectable.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: Enable musb in host mode on the Jesurun Q5
Hans de Goede [Tue, 4 Aug 2015 21:49:17 +0000 (23:49 +0200)]
sunxi: Enable musb in host mode on the Jesurun Q5

The Jesurun Q5 has the musb hooked up to an usb-a receptacle, enable it
in host-only mode.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: Do not add a stdout-path alias to dts on boards without a serial port
Hans de Goede [Sat, 1 Aug 2015 12:44:29 +0000 (14:44 +0200)]
sunxi: Do not add a stdout-path alias to dts on boards without a serial port

Do not add a bogus (pointing to a non existing serial port) stdout-path
alias to dts on boards without a serial port.

Note that we still define CONS_INDEX as this is used by the SPL where we do
not use DM_SERIAL and thus CONFIG_REQUIRE_SERIAL_CONSOLE is not honored.

We are getting away with this because the sun5i die actually has
an uart0, which in the A13 package is not routed to the outside,
so we are simply sending SPL bootup messages to the tx pin at the
edge of the die, and they go no further from there...

And sofar we only have one A13 board which does not have a serial
port, all others do have a serial port. This kinda makes sense since
the A13 is a much lower pincount package compared to all the other
sunxi SoCs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: Add CONFIG_USB0_ID_DET setting to 2 more tablets
Hans de Goede [Sat, 1 Aug 2015 12:42:40 +0000 (14:42 +0200)]
sunxi: Add CONFIG_USB0_ID_DET setting to 2 more tablets

Now that we have code to check the id-pin and detect usb-host adapters
plugged into the otg port that way, enable it on the tablets which I own.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: usb-phy: Never power off the usb ports
Hans de Goede [Wed, 8 Jul 2015 14:44:22 +0000 (16:44 +0200)]
sunxi: usb-phy: Never power off the usb ports

USB devices are not really designed to get the power bounced off and on
at them. Esp. USB powered harddisks do not like this.

Currently we power off the USB ports both on a "usb reset" and when
booting the kernel, causing the usb-power to bounce off and then back
on again.

This patch removes the powering off calls, fixing the undesirable power
bouncing.

Note this requires some special handling for the OTG port:
1) We must skip the external vbus check if we've already enabled our own
vbus to avoid false positives
2) If on an usb reset we no longer detect that the id-pin is grounded, turn
off vbus as that means an external vbus may be present now

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
5 years agosunxi: nand: Add board configuration options
Piotr Zierhoffer [Thu, 23 Jul 2015 12:33:03 +0000 (14:33 +0200)]
sunxi: nand: Add board configuration options

When SPL_NAND_SUNXI option is selected in config, set some configuration
options for sunxi NAND.

This commit also introduces the configurable options in Kconfig.

Signed-off-by: Peter Gielda <pgielda@antmicro.com>
Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
Signed-off-by: Mateusz Holenko <mholenko@antmicro.com>
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
Signed-off-by: Karol Gugala <kgugala@antmicro.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
5 years agosunxi: nand: Add basic sunxi NAND driver for SPL with DMA support
Piotr Zierhoffer [Thu, 23 Jul 2015 12:33:02 +0000 (14:33 +0200)]
sunxi: nand: Add basic sunxi NAND driver for SPL with DMA support

This driver adds NAND support to SPL.
It was tested on Allwinner A20.

Signed-off-by: Peter Gielda <pgielda@antmicro.com>
Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
Signed-off-by: Mateusz Holenko <mholenko@antmicro.com>
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
Signed-off-by: Karol Gugala <kgugala@antmicro.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
5 years agosunxi: nand: Add pinmux and clock settings for NAND support
Karol Gugala [Thu, 23 Jul 2015 12:33:01 +0000 (14:33 +0200)]
sunxi: nand: Add pinmux and clock settings for NAND support

To enable NAND flash in sunxi SPL,
pins 0-6, 8-22 and 24 on port C are configured.

Signed-off-by: Karol Gugala <kgugala@antmicro.com>
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
5 years agosunxi: Enable USB DRC on Wexler TAB7200
Aleksei Mamlin [Thu, 30 Jul 2015 17:33:56 +0000 (20:33 +0300)]
sunxi: Enable USB DRC on Wexler TAB7200

Enable the otg/drc usb controller on the Wexler TAB7200 tablet.

Signed-off-by: Aleksei Mamlin <mamlinav@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
5 years agoarm: socfpga: misc: Add support for printing FPGA type
Dinh Nguyen [Sat, 1 Aug 2015 01:42:10 +0000 (03:42 +0200)]
arm: socfpga: misc: Add support for printing FPGA type

Add code which uses the new functions for obtaining FPGA ID from
the scan manager. This new code prints the FPGA model attached to
the SoCFPGA during boot and sets environment variable "fpgatype",
which can be used to determine the FPGA model in U-Boot scripts.

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoarm: socfpga: scan: Add code to get FPGA ID
Dinh Nguyen [Fri, 31 Jul 2015 16:06:50 +0000 (11:06 -0500)]
arm: socfpga: scan: Add code to get FPGA ID

Add code to get the FPGA type for Altera's SoCFPGA family of FPGA. The code
uses the scan manager to send jtag pulses that will return the FPGA ID.

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoarm: socfpga: scan: Factor out IO chain programming
Marek Vasut [Sat, 1 Aug 2015 12:28:48 +0000 (14:28 +0200)]
arm: socfpga: scan: Factor out IO chain programming

Factor out the code which sends JTAG instruction followed by data
into separate function to tidy the code up a little.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoarm: socfpga: scan: Clean up horrible macros
Marek Vasut [Sat, 1 Aug 2015 01:18:50 +0000 (03:18 +0200)]
arm: socfpga: scan: Clean up horrible macros

Clean up the horrible macros present in the scan_manager.h . Firstly,
the function scan_mgr_io_scan_chain_prg() is static, yet all the macros
are used only within it, thus there is no point in having them in the
header file. Moreover, the macros are just making the code much less
readable, so remove them instead.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoarm: socfpga: scan: Introduce generic JTAG accessor
Marek Vasut [Sat, 1 Aug 2015 01:01:25 +0000 (03:01 +0200)]
arm: socfpga: scan: Introduce generic JTAG accessor

Introduce generic function for accessing the JTAG scan chains in the
SCC manager. Make use of this function throughout the SCC manager to
replace the ad-hoc writes to registers and make the code less cryptic.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoarm: socfpga: scan: Clean up scan_chain_engine_is_idle()
Marek Vasut [Sat, 1 Aug 2015 00:48:03 +0000 (02:48 +0200)]
arm: socfpga: scan: Clean up scan_chain_engine_is_idle()

Rework this function so it's clear that it is only polling for certain
bits to be cleared. Add kerneldoc. Fix it's return value to be either
0 on success and -ETIMEDOUT on error and propagate this through the
scan manager code.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: add RW_MGR_MEM_NUMBER_OF_RANKS
Dinh Nguyen [Wed, 5 Aug 2015 03:12:32 +0000 (22:12 -0500)]
ddr: altera: sequencer: add RW_MGR_MEM_NUMBER_OF_RANKS

Fix build error for socfpga_cyclone5_defconfig:

board/altera/socfpga/wrap_sdram_config.c:245:26: error: ‘RW_MGR_MEM_NUMBER_OF_RANKS’ undeclared here (not in a function)
make[2]: *** [spl/board/altera/socfpga/wrap_sdram_config.o] Error 1

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Clean checkpatch issues
Marek Vasut [Sun, 2 Aug 2015 17:47:01 +0000 (19:47 +0200)]
ddr: altera: sequencer: Clean checkpatch issues

Fix most of the dangling checkpatch issues, no functional change.
There are still 7 warnings, 1 checks , but those are left in place
for the sake of readability of the code.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Clean data types
Marek Vasut [Sun, 2 Aug 2015 17:42:26 +0000 (19:42 +0200)]
ddr: altera: sequencer: Clean data types

Replace uintNN_t with uNN. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Pluck out misc macros from code
Marek Vasut [Sun, 2 Aug 2015 17:26:55 +0000 (19:26 +0200)]
ddr: altera: sequencer: Pluck out misc macros from code

Actually convert the sequencer code to use socfpga_sdram_misc_config
instead of the various macros. This is just an sed exercise here, no
manual coding needed.

This patch actually removes the need to include any board-specific
files in sequencer.c , so sequencer.c namespace is now no longer
poluted by QTS-generated macros.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Zap SEQ_T(INIT|RESET)_CNTR._VAL
Marek Vasut [Sun, 2 Aug 2015 17:24:12 +0000 (19:24 +0200)]
ddr: altera: sequencer: Zap SEQ_T(INIT|RESET)_CNTR._VAL

This is another macro used to obfuscate the real code. The
T(INIT|RESET)_CNTR._VAL is always defined, so this indirection
is unnecessary. Get rid of this.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Zap VFIFO_SIZE
Marek Vasut [Sun, 2 Aug 2015 17:21:56 +0000 (19:21 +0200)]
ddr: altera: sequencer: Zap VFIFO_SIZE

Just use READ_VALID_FIFO_SIZE directly, no need for this macro obfuscation.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Wrap misc remaining macros
Marek Vasut [Sun, 2 Aug 2015 17:18:47 +0000 (19:18 +0200)]
ddr: altera: sequencer: Wrap misc remaining macros

Introduce structure socfpga_sdram_misc_config to wrap the remaining
misc configuration values in board file. Again, introduce a function,
socfpga_get_sdram_misc_config(), which returns this the structure. This
is almost the final step toward wrapping the nasty QTS generated macros
in board files and reducing the pollution of the namespace.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Pluck out IO_* macros from code
Marek Vasut [Sun, 2 Aug 2015 17:10:58 +0000 (19:10 +0200)]
ddr: altera: sequencer: Pluck out IO_* macros from code

Actually convert the sequencer code to use socfpga_sdram_io_config
instead of the IO_* macros. This is just an sed excercise here, no
manual coding needed.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Wrap IO_* macros
Marek Vasut [Sun, 2 Aug 2015 17:00:23 +0000 (19:00 +0200)]
ddr: altera: sequencer: Wrap IO_* macros

Introduce structure socfpga_sdram_io_config to wrap the IO configuration
values in board file. Introduce socfpga_get_sdram_io_config() function,
which returns this the structure. This is another step toward wrapping
the nasty QTS generated macros in board files and reducing the pollution
of the namespace.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Pluck out RW_MGR_* macros from code
Marek Vasut [Sun, 2 Aug 2015 16:44:06 +0000 (18:44 +0200)]
ddr: altera: sequencer: Pluck out RW_MGR_* macros from code

Actually convert the sequencer code to use socfpga_sdram_rw_mgr_config
instead of the RW_MGR_* macros. This is just an sed exercise here, no
manual coding needed.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Wrap RW_MGR_* macros
Marek Vasut [Sun, 2 Aug 2015 16:12:08 +0000 (18:12 +0200)]
ddr: altera: sequencer: Wrap RW_MGR_* macros

Introduce structure socfpga_sdram_rw_mgr_config to wrap the RW manager
configuration values in board file. Introduce a complementary function,
socfpga_get_sdram_rwmgr_config(), which returns this the structure.
This is another step toward wrapping the nasty QTS generated macros
in board files and reducing the pollution of the namespace.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Wrap ac_rom_init and inst_rom_init
Marek Vasut [Sun, 2 Aug 2015 15:15:19 +0000 (17:15 +0200)]
ddr: altera: sequencer: Wrap ac_rom_init and inst_rom_init

Introduce two wrapper functions, socfpga_get_seq_ac_init() and
socfpga_get_seq_inst_init() to avoid direct inclusion of the
sequencer_auto_ac_init.h and sequencer_auto_inst_init.h QTS
generated files. This reduces namespace pollution again.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Zap bogus redefinition of RW_MGR_MEM_NUMBER_OF_RANKS
Marek Vasut [Sun, 2 Aug 2015 16:40:27 +0000 (18:40 +0200)]
ddr: altera: sequencer: Zap bogus redefinition of RW_MGR_MEM_NUMBER_OF_RANKS

This is defined in the QTS-generated headers, so it must not be
re-defined in sequencer.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Zap unused params and macros
Marek Vasut [Sun, 2 Aug 2015 16:27:21 +0000 (18:27 +0200)]
ddr: altera: sequencer: Zap unused params and macros

These parameters are not used in the code, zap them and the
macros which are used by them as well.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Clean up mach/sdram.h
Marek Vasut [Sun, 2 Aug 2015 15:02:11 +0000 (17:02 +0200)]
ddr: altera: sequencer: Clean up mach/sdram.h

Zap non-existent functions and place function prototypes at the
beginning of the header file.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sequencer: Move qts-generated files to board dir
Marek Vasut [Sun, 2 Aug 2015 14:55:45 +0000 (16:55 +0200)]
ddr: altera: sequencer: Move qts-generated files to board dir

Move the files generated by QTS into the board directory, they should not
be part of the driver files at all.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
5 years agoddr: altera: sdram: Make sdram_start and sdram_end into u32
Marek Vasut [Sat, 1 Aug 2015 21:12:11 +0000 (23:12 +0200)]
ddr: altera: sdram: Make sdram_start and sdram_end into u32

Originally, both sdram_start and sdram_end were 64b values. The
sdram_start had no reason for being so, since our address space
is only 32b, so switching sdram_start to u32 is simple.

The sdram_end is a bit more complex, since it can actually be
set to (1 << 32) if someone really wanted to use an SoCFPGA with
4 GiB of DRAM and fixed the code around a little. But, the code
handling the protection rules internally decrements the sdram_end
variable anyway. Thus, instead of calling the code and passing in
the address of the SDRAM end, pass in the address already decremented
by one. This lets the sdram_end be 32b as well.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Minor cleanup in sdram_get_rule()
Marek Vasut [Sat, 1 Aug 2015 21:21:23 +0000 (23:21 +0200)]
ddr: altera: sdram: Minor cleanup in sdram_get_rule()

Fix the data types and zap unnecessary type change.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Minor cleanup in sdram_set_rule()
Marek Vasut [Sat, 1 Aug 2015 20:40:48 +0000 (22:40 +0200)]
ddr: altera: sdram: Minor cleanup in sdram_set_rule()

Zap an obscure unneeded cast and clean other minor nits in this function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Add missing kerneldoc
Marek Vasut [Sat, 1 Aug 2015 20:28:30 +0000 (22:28 +0200)]
ddr: altera: sdram: Add missing kerneldoc

Add kerneldoc to functions which are missing it, but are already
cleaned up.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_write_verify()
Marek Vasut [Sat, 1 Aug 2015 20:26:11 +0000 (22:26 +0200)]
ddr: altera: sdram: Clean up sdram_write_verify()

Clean the function up so that it's obvious what it is doing,
fix the formating strings in debug outputs, add kerneldoc.
Make the function return proper errno-compliant return values
and propagate this change throughout sdram.c

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_calculate_size() part 2
Marek Vasut [Sat, 1 Aug 2015 19:47:16 +0000 (21:47 +0200)]
ddr: altera: sdram: Clean up sdram_calculate_size() part 2

Clean up coding style, mostly clean up comments, add kerneldoc.
Also, zap assignment of the "cs" variable, which is outright
dead code, so just remove it.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_calculate_size() part 1
Marek Vasut [Sat, 1 Aug 2015 19:44:00 +0000 (21:44 +0200)]
ddr: altera: sdram: Clean up sdram_calculate_size() part 1

Pluck out all of the CONFIG_HPS_SDR_CTRLCFG_* macros. This change
makes sdram.c completely clear of these macros and allows removing
of the ugly include of sdram.h . The namespace is now a much nicer
place!

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Introduce socfpga_sdram_get_config()
Marek Vasut [Sat, 1 Aug 2015 19:35:18 +0000 (21:35 +0200)]
ddr: altera: sdram: Introduce socfpga_sdram_get_config()

Introduce socfpga_sdram_get_config() function implement in a board file,
which returns the socfpga_sdram_config structure. This is the last step
in cleaning up the socfpga_mmr_init_full(), but not the last step which
allows removing the inclusion of sdram.h from drivers/ddr/altera/sdram.c
thus far.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 8
Marek Vasut [Sat, 1 Aug 2015 20:25:29 +0000 (22:25 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 8

Fix the return value so that standard errno return values can be used.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 7
Marek Vasut [Sat, 1 Aug 2015 20:03:48 +0000 (22:03 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 7

Add kerneldoc.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 6
Marek Vasut [Sat, 1 Aug 2015 19:26:55 +0000 (21:26 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 6

Pull out the block of register programming into a separate function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 5
Marek Vasut [Sat, 1 Aug 2015 19:24:31 +0000 (21:24 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 5

Rework remaining two register setting functions such that they only
return the final register value. Move the register setting into the
block of register I/O in sdram_mmr_init_full().

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 4
Marek Vasut [Sat, 1 Aug 2015 19:21:21 +0000 (21:21 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 4

Merge sdr_set_*() functions which are just setting registers among
the sea of register setting in sdram_mmr_init_full(). There is no
need to keep them separate this way, there is nothing special about
them.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 3
Marek Vasut [Sat, 1 Aug 2015 19:16:20 +0000 (21:16 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 3

Pluck out the remaining CONFIG_HPS_SDR_CTRLCFG_ and put it into
the socfpga_sdram_config structure.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 2
Marek Vasut [Sat, 1 Aug 2015 18:58:44 +0000 (20:58 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 2

Suck out all the CONFIG_HPS_SDR_CTRLCFG_* from sdram_mmr_init_full()
into the socfpga_sdram_config structure. There is still one ugly
macro left behind, but this will be taken care of in subsequent patch.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up sdram_mmr_init_full() part 1
Marek Vasut [Sat, 1 Aug 2015 18:39:46 +0000 (20:39 +0200)]
ddr: altera: sdram: Clean up sdram_mmr_init_full() part 1

Zap all the ad-hoc readbacks from the registers and other useless
and broken debug output. This is really not useful and is only
confusing.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Introduce socfpga_sdram_config() structure
Marek Vasut [Sat, 1 Aug 2015 18:30:10 +0000 (20:30 +0200)]
ddr: altera: sdram: Introduce socfpga_sdram_config() structure

Introduce this seemingly massive structure, which holds required values
of all the registers of the SDRAM controller. The idea here is to avoid
including the sdram.h header file, which is full of ad-hoc macros that
polute the global namespace. Once the cleanup of sdram.c would be complete
and all registers would be loaded from this new socfpga_sdram_config, a
board file will only pass this structure into the sdram.c . This will
hide all the horrors generated by QTS in the board directory.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_mp_threshold()
Marek Vasut [Sat, 1 Aug 2015 18:14:11 +0000 (20:14 +0200)]
ddr: altera: sdram: Clean up set_sdr_mp_threshold()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_mp_pacing()
Marek Vasut [Sat, 1 Aug 2015 18:12:31 +0000 (20:12 +0200)]
ddr: altera: sdram: Clean up set_sdr_mp_pacing()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_mp_weight()
Marek Vasut [Sat, 1 Aug 2015 18:10:23 +0000 (20:10 +0200)]
ddr: altera: sdram: Clean up set_sdr_mp_weight()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_fifo_cfg()
Marek Vasut [Sat, 1 Aug 2015 18:04:33 +0000 (20:04 +0200)]
ddr: altera: sdram: Clean up set_sdr_fifo_cfg()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_static_cfg()
Marek Vasut [Sat, 1 Aug 2015 18:04:19 +0000 (20:04 +0200)]
ddr: altera: sdram: Clean up set_sdr_static_cfg()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_addr_rw()
Marek Vasut [Sat, 1 Aug 2015 17:50:56 +0000 (19:50 +0200)]
ddr: altera: sdram: Clean up set_sdr_addr_rw()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_dram_timing*()
Marek Vasut [Sat, 1 Aug 2015 17:45:24 +0000 (19:45 +0200)]
ddr: altera: sdram: Clean up set_sdr_dram_timing*()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.
Merge set_sdr_dram_timing{1,2,3,4,lowpwr}() into single function
set_sdr_dram_timing() , since there's no point in keeping all this
stuff separate anymore.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up set_sdr_ctrlcfg()
Marek Vasut [Sat, 1 Aug 2015 17:33:40 +0000 (19:33 +0200)]
ddr: altera: sdram: Clean up set_sdr_ctrlcfg()

Get rid of the constant clrsetbits_le32(), instead prepare the whole
content of the register once and write it at the end of the function.
The big plan here is to remove all the CONFIG_HPS_SDR_ macros, hide
them in QTS compatibility layer in board implementation and pass only
a small structure into the driver.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up compute_errata_rows() part 2
Marek Vasut [Sat, 1 Aug 2015 17:20:19 +0000 (19:20 +0200)]
ddr: altera: sdram: Clean up compute_errata_rows() part 2

Remove all parameters of this function, since they are only constants
passed in from another function, so make them local. Also, rename the
function to get_errata_rows() as this is closer to what it does.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Clean up compute_errata_rows() part 1
Marek Vasut [Sat, 1 Aug 2015 16:54:34 +0000 (18:54 +0200)]
ddr: altera: sdram: Clean up compute_errata_rows() part 1

Clean up weird parenthesis and odd type casts from the function.
Fix comment style.

Signed-off-by: Marek Vasut <marex@denx.de>
5 years agoddr: altera: sdram: Switch to generic_hweight32()
Marek Vasut [Sat, 1 Aug 2015 16:46:55 +0000 (18:46 +0200)]
ddr: altera: sdram: Switch to generic_hweight32()

Use generic function instead of CPU-specific one.

Signed-off-by: Marek Vasut <marex@denx.de>