1. 16 7月, 2014 2 次提交
  2. 08 7月, 2014 2 次提交
  3. 03 7月, 2014 4 次提交
    • Y
      ARMv8/FSL_LSCH3: Add FSL_LSCH3 SoC · 2f78eae5
      York Sun 提交于
      Freescale LayerScape with Chassis Generation 3 is a set of SoCs with
      ARMv8 cores and 3rd generation of Chassis. We use different MMU setup
      to support memory map and cache attribute for these SoCs. MMU and cache
      are enabled very early to bootst performance, especially for early
      development on emulators. After u-boot relocates to DDR, a new MMU
      table with QBMan cache access is created in DDR. SMMU pagesize is set
      in SMMU_sACR register. Both DDR3 and DDR4 are supported.
      Signed-off-by: NYork Sun <yorksun@freescale.com>
      Signed-off-by: NVarun Sethi <Varun.Sethi@freescale.com>
      Signed-off-by: NArnab Basu <arnab.basu@freescale.com>
      2f78eae5
    • S
      i2c: tegra: dump alen in debug statements · ad3091ad
      Stephen Warren 提交于
      Since tegra_i2c_{read,write}'s debug() call dumps the chip address, dump
      the address length (alen) too, so the address value can be correctly
      interpreted.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Reviewed-by: NYen Lin <yelin@nvidia.com>
      ad3091ad
    • S
      i2c: tegra: write clean data to TX FIFO · 981b14f0
      Stephen Warren 提交于
      The Tegra I2C controller's TX FIFO contains 32-bit words. If the final
      FIFO entry of a transaction contains fewer than 4 bytes, the driver
      currently fills the unused FIFO bytes with uninitialized data. This can
      be confusing when reading back the FIFO content for debugging purposes.
      
      Solve this by explicitly initializing the variable containing FIFO data
      before filling it (partially) with data. With this change,
      send_recv_packets()'s loop's if (is_write) code mirrors the else (i.e.
      read) branch.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Reviewed-by: NYen Lin <yelin@nvidia.com>
      981b14f0
    • S
      i2c: tegra: use repeated start for reads · 68049a08
      Stephen Warren 提交于
      I2C read transactions are typically implemented as follows:
      
      START(write) address REPEATED_START(read) data... STOP
      
      However, Tegra's I2C driver currently implements reads as follows:
      
      START(write) address STOP START(read) data... STOP
      
      This sequence confuses at least the AS3722 PMIC on the Jetson TK1 board,
      leading to corrupted read data in some cases. Fix the driver to chain
      the transactions together using repeated starts to solve this.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Reviewed-by: NYen Lin <yelin@nvidia.com>
      68049a08
  4. 12 6月, 2014 1 次提交
  5. 14 5月, 2014 2 次提交
    • H
      mvtwsi: Remove unnecessary twsi_baud_rate and twsi_slave_address globals · 2072e726
      Hans de Goede 提交于
      These are used only once, so their is no need to have them global.
      
      This also stops mvtwsi from using any bss vars making it easier to use
      before dram init (to talk to the pmic to set the dram voltage).
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      2072e726
    • H
      mvtwsi: Fix clock programming · fab356a0
      Hans de Goede 提交于
      The TWSI_FREQUENCY macro was wrong in 2 ways:
      1) It was casting the result of the calculations to an u8, while i2c clk
      rates are often >= 100Khz which won't fit in a u8, drop the cast.
      2) It had an extra factor of 2 in the divider which neither the datasheet nor
      the Linux driver have.
      
      The comment for the default value was wrongly saying that m lives in
      bits 4-7, while in reality it is in bits 3-6, as can be seen from the correct
      shift by 3 used in i2c_init().
      
      While at it remove the unused twsi_actual_speed variable.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      fab356a0
  6. 08 5月, 2014 1 次提交
  7. 29 4月, 2014 2 次提交
    • S
      drivers/i2c/fsl_i2c: modify i2c_read to handle multi-byte write · a405764c
      Shaveta Leekha 提交于
      Most of the I2C slaves support accesses in the typical style
      that is : read/write series of bytes at particular address offset.
      These transactions look like:"
      (1) START:Address:Tx:Offset:RESTART:Address[0..4]:Tx/Rx:data[0..n]:STOP"
      
      However there are certain devices which support accesses in
      terms of the transactions as follows:
      (2) "START:Address:Tx:Txdata[0..n1]:Clock_stretching:
              RESTART:Address:Rx:data[0..n2]"
      Here Txdata is typically a command and some associated data,
      similarly Rxdata could be command status plus some data received
      as a response to the command sent.
      
      Type (1) transactions are currently supportd in the
      i2c driver using i2c_read and i2c_write APIs. I2C EEPROMs,
      RTC, etc fall in this category.
      
      To handle type (2) along with type (1) transactions,
      i2c_read() function has been modified.
      Signed-off-by: NShaveta Leekha <shaveta@freescale.com>
      Signed-off-by: NPoonam Aggrwal <poonam.aggrwal@freescale.com>
      a405764c
    • Y
      driver/mxc_i2c: Move static data structure to global_data · dec1861b
      York Sun 提交于
      This driver needs a data structure in SRAM before SDRAM is available.
      This is not alway the case using .data section. Moving this data
      structure to global_data guarantees it is writable.
      Signed-off-by: NYork Sun <yorksun@freescale.com>
      CC: Troy Kisky <troy.kisky@boundarydevices.com>
      dec1861b
  8. 18 4月, 2014 2 次提交
  9. 14 4月, 2014 1 次提交
    • T
      i2c: sh_i2c: bugfix: i2c probe command does not work · 7a657689
      Tetsuyuki Kobayashi 提交于
      This is regression of commit 2035d77d i2c: sh_i2c: Update to new CONFIG_SYS_I2C framework
      
      Before commit 2035d77d, i2c probe command works properly on kzm9g board.
      
      KZM-A9-GT# i2c probe
      Valid chip addresses: 0C 12 1D 32 39 3D 40 60
      
      After commit 2035d77d, i2c probe command does not work.
      
      KZM-A9-GT# i2c probe
      Valid chip addresses: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
      
      sh_i2c_probe() calls sh_i2c_read(), but read length is 0. So acutally it does not read device at all. This patch prepares dummy buffer and read data into it.
      Signed-off-by: NTetsuyuki Kobayashi <koba@kmckk.co.jp>
      Acked-by: NHeiko Schocher <hs@denx.de>
      Signed-off-by: NNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      7a657689
  10. 31 3月, 2014 1 次提交
  11. 23 2月, 2014 1 次提交
  12. 20 2月, 2014 10 次提交
  13. 06 2月, 2014 1 次提交
  14. 13 1月, 2014 5 次提交
  15. 19 12月, 2013 1 次提交
  16. 06 12月, 2013 1 次提交
  17. 05 12月, 2013 3 次提交
    • N
      arm: omap: i2c: don't zero cnt in i2c_write · 92c23c92
      Nikita Kiryanov 提交于
      Writing zero into I2Ci.I2C_CNT register causes random I2C failures in OMAP3
      based devices. This seems to be related to the following advisory which
      apears in multiple erratas for OMAP3 SoCs (OMAP35xx, DM37xx), as well as
      OMAP4430 TRM:
      
      Advisory:
      I2C Module Does Not Allow 0-Byte Data Requests
      Details:
      When configured as the master, the I2C module does not allow 0-byte data
      transfers. Note: Programming I2Ci.I2C_CNT[15:0]: DCOUNT = 0 will cause
      undefined behavior.
      Workaround(s):
      No workaround. Do not use 0-byte data requests.
      
      The writes in question are unnecessary from a functional point of view.
      Most of them are done after I/O has finished, and the only one that preceds
      I/O (in i2c_probe()) is also unnecessary because a stop bit is sent before
      actual data transmission takes place.
      
      Therefore, remove all writes that zero the cnt register.
      
      Cc: Heiko Schocher <hs@denx.de>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Tom Rini <trini@ti.com>
      Cc: Lubomir Popov <lpopov@mm-sol.com>
      Cc: Enric Balletbo Serra <eballetbo@gmail.com>
      Signed-off-by: NNikita Kiryanov <nikita@compulab.co.il>
      Tested-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Tested-by: NLubomir Popov <lpopov@mm-sol.com>
      92c23c92
    • K
      i2c: fti2c010: serial out r/w address in MSB order · c727618d
      Kuo-Jung Su 提交于
      For a eeprom with a 2-bytes address (e.g., Ateml AT24C1024B),
      the r/w address should be serial out in MSB order.
      Signed-off-by: NKuo-Jung Su <dantesu@faraday-tech.com>
      Cc: Heiko Schocher <hs@denx.de>
      c727618d
    • K
      i2c: fti2c010: migrate to new i2c model · 49f4c762
      Kuo-Jung Su 提交于
      Replace the legacy i2c model with the new one.
      Signed-off-by: NKuo-Jung Su <dantesu@faraday-tech.com>
      Cc: Heiko Schocher <hs@denx.de>
      49f4c762