summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-04-14usb: dwc2: correctly program hcchar for LS devicesStephen Warren
A bit must be set in HCCHAR when communicating with low-speed devices. I have no idea why there's no corresponding bit to distinguish between full-speed and high-speed devices, but no matter; they all work now! Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: detect device speed correctlyStephen Warren
This doesn't make my LS keyboard work any better, but it does at least report the correct speed in "usb tree". Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: use phys_to_bus/bus_to_physStephen Warren
Use of these APIs is required on the Raspberry Pi. With this change, USB on RPi1 should be more reliable, and USB on the RPi2 will start working. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14Create API to map between CPU physical and bus addressesStephen Warren
On some SoCs, DMA-capable peripherals see a different address space to the CPU's physical address space. Create an API to allow platform-agnostic drivers to convert between the two address spaces when programming DMA operations. This API will exist on all platforms, but will have a dummy implementation when this feature is not required. Other platforms will enable CONFIG_PHYS_TO_BUS and provide the required implementation. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: fix bulk transfersStephen Warren
When I created wait_for_chhltd(), I noticed that some instances of the code it replaced expected the ACK bit to be set and others didn't. I assumed this was an accidental inconsistency in the code, so wrote wait_for_chhltd() to always expect ACK to be set. This code appeared to work correctly for both enumeration of USB keyboards and operation of USB Ethernet devices. However, this change broke USB Mass Storage (at least my USB SD card reader). This change reverts to exactly the original behaviour. I'm not sure why the ACK bit isn't always set (perhaps a quirk in the USB HW or DWC2 controller), but the code works this way! Fixes: 5be4ca7d6ac8 ("usb: dwc2: unify waiting for transfer completion") Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: remove restriction on buffer lengthStephen Warren
Each USB transfer is split up into chunks that are held in an aligned buffer. This imposes a limit on the size of each chunk, but no limit on the total size of transferred data. Fix the logic in chunk_msg() not to reject large transfers, but simply take the size of the aligned buffer into account when calculating the chunk size. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: fix aligned buffer usageStephen Warren
The original aligned_buffer usage: a) Uselessly copied data into the aligned buffer even for IN transactions. Fix this my making the copy conditional. b) Always programmed the HW to transfer to/from the start of the aligned buffer. This worked fine for OUT transactions since the memcpy copied the OUT data to this location too. However, for large IN transactions, since the copy from the aligned buffer to the "client" buffer was deferred until after all chunks were transferred. it resulted in each chunk's transfer over-writing the data for the first transfer. Fix this by copying IN data as soon as it's received. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: simplify wait_for_chhltdStephen Warren
toggle is never NULL. Simplify the code by removing handling of when it is NULL. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: remove control_data_toggle[]Stephen Warren
The control data toggle resets to DATA1 at the start of the data phase of every setup transaction. We don't need a global variable to store the value; we can just store it on the stack. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: usb chunk_msg() for control transfers tooStephen Warren
This removes duplicated code. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: refactor submit_bulk_msg to be commonStephen Warren
Move the body of submit_bulk_msg() into new function chunk_msg(). This can be shared with submit_control_msg() to reduce code duplication, and allow control messages larger than maxpacket. Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: dwc2: unify waiting for transfer completionStephen Warren
Lift common code out of submit_bulk_msg() and submit_control_msg(). Signed-off-by: Stephen Warren <[email protected]>
2015-04-14usb: 64-bit architectures support for xHCISergey Temerkhanov
This commit allows xHCI to use both 64 and 32 bit memory physical addresses depending on architecture it's being built for. Also it makes use of readq()/writeq() on 64-bit systems Signed-off-by: Sergey Temerkhanov <[email protected]> Signed-off-by: Radha Mohan Chintakuntla <[email protected]>
2015-04-14usb: mass-storage: Build warning fixes for 64-bitThierry Reding
Fix a printf format mismatch warning seen on 64-bit builds. Cc: Łukasz Majewski <[email protected]> Cc: Marek Vasut <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Acked-by: Lukasz Majewski <[email protected]> Tested-by: Lukasz Majewski <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]>
2015-04-14usb: ehci-tegra: Build warning fixes for 64-bitThierry Reding
Cast pointers to unsigned long instead of a sized 32-bit type to avoid pointer to integer cast size mismatch warnings. Cc: Tom Warren <[email protected]> Cc: Marek Vasut <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
2015-04-14ehci-hcd: fix warnings on 64-bit buildsRob Herring
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable. Signed-off-by: Rob Herring <[email protected]> Cc: Marek Vasut <[email protected]>
2015-04-14usb: ci_udc: fix warnings on 64-bit buildsRob Herring
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable. Signed-off-by: Rob Herring <[email protected]> Cc: "Łukasz Majewski" <[email protected]> Cc: Marek Vasut <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]>
2015-04-14usb: eth: asix: Build warning fixes for 64-bitThierry Reding
Fix a type mismatch in a printf format string. Cc: Marek Vasut <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
2015-04-10dtt: add ds620 supportAlbert ARIBAUD \(3ADEV\)
Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-10lpc32xx: add LPC32xx SSP support (SPI mode)Albert ARIBAUD \(3ADEV\)
Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]> Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-10lpc32xx: add GPIO supportAlbert ARIBAUD \(3ADEV\)
This driver only supports Driver Model, not legacy model. Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-10lpc32xx: i2c: add LPC32xx I2C interface supportAlbert ARIBAUD \(3ADEV\)
Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-10lpc32xx: mtd: nand: add MLC NAND controllerAlbert ARIBAUD \(3ADEV\)
The controller's Reed-Solomon ECC hardware is used except of course for raw reads and writes. It covers in- and out-of-band data together. The SPL framework is supported. Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-10lpc32xx: add Ethernet supportAlbert ARIBAUD \(3ADEV\)
Signed-off-by: Albert ARIBAUD (3ADEV) <[email protected]>
2015-04-07ahci: Fix a wrong parameter passTang Yuantian
In stead of user_buffer_size, transfer_size should be used to pass to ahci_device_data_io(). transfer_size is the length that we want the low level function to transfer each time. If we use user_buffer_size which is the totally data length as parameter, low level function will actually create many SGs to transfer as many data as possible each time. That will produce many redundant data transfer. Signed-off-by: Tang Yuantian <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2015-04-06video: parade: configure SLP and RST GPIOs if specified in DTAjay Kumar
Add support to configure EDP_RST GPIO and EDP_SLP GPIO, if provided in parade DT node. Signed-off-by: Ajay Kumar <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2015-04-06video: exynos_fb: configure backlight GPIOs if specified in DTAjay Kumar
Add support to configure PWM_OUT(PWM output) GPIO and BL_EN(backlight enable) GPIO, if provided in FIMD DT node. Signed-off-by: Ajay Kumar <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2015-04-03serial-arc: switch to DMAlexey Brodkin
Now when all infrastructure in ARC is ready for it let's switch ARC UART to driver model. Signed-off-by: Alexey Brodkin <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Simon Glass <[email protected]>
2015-04-03serial/serial_arc: set registers address during compilationAlexey Brodkin
Being global variable with 0 value it falls into .bss area which we may only use after relocation to RAM. And right afetr relocation we zero .bss - effectively cleaing register address set for early console. Now with pre-set value "regs" variable is no longer in .bss and this way safely survives relocation. Signed-off-by: Alexey Brodkin <[email protected]>
2015-03-31Merge branch 'master' of git://git.denx.de/u-boot-atmelTom Rini
2015-04-01ARM: at91: atmel_nand: Support flash based BBTDavid Dueck
Add support for on-flash bad block table. This makes U-Boot handle an existing BBT correctly. Signed-off-by: David Dueck <[email protected]> Reviewed-by: Boris BREZILLON <[email protected]> CC: Boris BREZILLON <[email protected]> CC: Josh Wu <[email protected]> CC: Andreas Bießmann <[email protected]> CC: Scott Wood <[email protected]> Acked-by: Josh Wu <[email protected]>
2015-03-31Merge git://git.denx.de/u-boot-nand-flashTom Rini
2015-03-31Merge branch 'master' of git://git.denx.de/u-boot-imxTom Rini
2015-03-30mtd: vf610_nfc: specify transfer size before each transferStefan Agner
Testing showed, that commands like STATUS made the buffer dirty when executed with NFC_SECSZ set to the page size. It looks like the controller transfers bogus data when this register is configured. When setting it to 0, the buffer does not get altered while the status command still seems to work flawless. Signed-off-by: Stefan Agner <[email protected]>
2015-03-30mtd: vf610_nfc: mark page as dirty on block eraseStefan Agner
The driver tries to re-use the page buffer by storing the page number of the current page in the buffer. The page is only read if the requested page number is not currently in the buffer. When a block is erased, the page number is marked as invalid if the erased page equals the one currently in the cache. However, since a erase block consists of multiple pages, also other page numbers could be affected. The commands to reproduce this issue (on a written page): > nand dump 0x800 > nand erase 0x0 0x20000 > nand dump 0x800 The second nand dump command returns the data from the buffer, while in fact the page is erased (0xff). Avoid the hassle to calculate whether the page is affected or not, but set the page buffer unconditionally to invalid instead. Signed-off-by: Stefan Agner <[email protected]>
2015-03-30nand: yaffs: Remove the "nand write.yaffs" commandPeter Tyser
This command is only enabled by one board, complicates the NAND code, and doesn't appear to have been functioning properly for several years. If there are no bad blocks in the NAND region being written nand_write_skip_bad() will take the shortcut of calling nand_write() which bypasses the special yaffs handling. This causes invalid YAFFS data to be written. See http://lists.denx.de/pipermail/u-boot/2011-September/102830.html for an example and a potential workaround. U-Boot still retains the ability to mount and access YAFFS partitions via CONFIG_YAFFS2. Signed-off-by: Peter Tyser <[email protected]>
2015-03-30nand: Remove CONFIG_MTD_NAND_VERIFY_WRITEPeter Tyser
The CONFIG_MTD_NAND_VERIFY_WRITE has been removed from Linux for some time and a more generic method of NAND verification now exists in U-Boot. Signed-off-by: Peter Tyser <[email protected]> Tested-by: Heiko Schocher <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2015-03-30dfu: nand: Verify writesPeter Tyser
Previously NAND writes were not verified and could fail silently. Add a verification step after all writes to NAND. Signed-off-by: Peter Tyser <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]> Tested-by: Heiko Schocher <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2015-03-30nand: Add verification functionsPeter Tyser
Add nand_verify() and nand_verify_page_oob(). nand_verify() verifies NAND contents against an arbitrarily sized buffer using ECC while nand_verify_page_oob() verifies a NAND page's contents and OOB. Signed-off-by: Peter Tyser <[email protected]> Tested-by: Heiko Schocher <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2015-03-30mtd: nand: mxs: fix PIO_WORDs in mxs_nand_write_buf()Luca Ellero
There is only one pio_word in this DMA transaction so data field must be 1. Signed-off-by: Luca Ellero <[email protected]>
2015-03-30mtd: nand: mxs: fix PIO_WORDs in mxs_nand_read_buf()Luca Ellero
There is only one pio_word in this DMA transaction so data field must be 1. Signed-off-by: Luca Ellero <[email protected]>
2015-03-30spi: designware_spi: revisit FIFO size detection againAxel Lin
By specification the FIFO size would be in a range 2-256 bytes. From TX Level prospective it means we can set threshold in the range 0-(FIFO size - 1) bytes. Hence there are currently two issues: a) FIFO size 2 bytes is actually skipped since TX Level is 1 bit and could be either 0 or 1 byte; b) FIFO size is incorrectly decreased by 1 which already done by meaning of TX Level register. Fixes: 501943696ea4 (spi: designware_spi: Fix detecting FIFO depth) Signed-off-by: Andy Shevchenko <[email protected]> Signed-off-by: Axel Lin <[email protected]> Acked-by: Pavel Machek <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30spi: cf_spi: Staticize local functionsAxel Lin
Make local functions static and remove unneeded forward declarations. Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30spi: cf_spi: Use to_cf_spi_slave to resolve cfslave from slaveAxel Lin
Don't assume slave is always the first member of struct cf_spi_slave. Use container_of instead of casting first structure member. Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30qspi: dra7x: enable quad mode read for ti-qspi driverRavi Babu
This patch enables QUAD read mode for qspi to improve the read performace while loading the binaries from qspi. Signed-off-by: Ravi Babu <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30spi: ftssp010_spi: Use to_ftssp010_spi() to ensure free correct addressAxel Lin
Don't assume slave is always the first member of struct ftssp010_spi. Use to_ftssp010_spi() to ensure free correct address in spi_free_slave(). Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30spi: davinci: Remove duplicate code to set bus and cs for slaveAxel Lin
It's done in spi_alloc_slave(). Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-30spi: cf_qspi: Fixup to_cf_qspi_slave macroAxel Lin
The third parameter of container_of is the name of the member within the struct. Current code only works if the parameter passed to to_cf_qspi_slave named slave. Fix it. Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Jagannadha Sutradharudu Teki <[email protected]>
2015-03-29sunxi: musb: Fix some lo speed devices not working with musb hostHans de Goede
The usb0 / otg phy on sunxi boards has a bug where it wrongly detects a high speed squelch on usb reset deassert when a lo speed device is plugged in. The android kernel has a work around for this in the form of temporary disabling the phy's squelch detection on reset deassert, this commit adds the same workaround to the u-boot sunxi musb code, thereby fixing various usb lo speed devices not working. Tested with a (before non working) usb keyboard and a usb 2.4 GHz wireless keyboard/mouse combo receiver. Signed-off-by: Hans de Goede <[email protected]> Acked-by: Ian Campbell <[email protected]>
2015-03-28ARM: bcm283x: move SoC headers to mach-bcm283x/include/machMasahiro Yamada
Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Stephen Warren <[email protected]>