21 Dec, 2014

1 commit

  • Pull more i2c updates from Wolfram Sang:
    "Included are two bugfixes needing some bigger refactoring (sh_mobile:
    deferred probe with DMA, mv64xxx: fix offload support) and one
    deprecated driver removal I thought would go in via ppc but I
    misunderstood. It has a proper ack from BenH"

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: sh_mobile: fix uninitialized var when debug is enabled
    macintosh: therm_pm72: delete deprecated driver
    i2c: sh_mobile: I2C_SH_MOBILE should depend on HAS_DMA
    i2c: sh_mobile: rework deferred probing
    i2c: sh_mobile: refactor DMA setup
    i2c: mv64xxx: rework offload support to fix several problems
    i2c: mv64xxx: use BIT() macro for register value definitions

    Linus Torvalds
     

20 Dec, 2014

1 commit

  • Pull second batch of powerpc updates from Michael Ellerman:
    "The highlight is the series that reworks the idle management on
    powernv, which allows us to use deeper idle states on those machines.

    There's the fix from Anton for the "BUG at kernel/smpboot.c:134!"
    problem.

    An i2c driver for powernv. This is acked by Wolfram Sang, and he
    asked that we take it through the powerpc tree.

    A fix for audit from rgb at Red Hat, acked by Paul Moore who is one of
    the audit maintainers.

    A patch from Ben to export the symbol map of our OPAL firmware as a
    sysfs file, so that tools can use it.

    Also some CXL fixes, a couple of powerpc perf fixes, a fix for
    smt-enabled, and the patch to add __force to get_user() so we can use
    bitwise types"

    * tag 'powerpc-3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/powernv: Ignore smt-enabled on Power8 and later
    powerpc/uaccess: Allow get_user() with bitwise types
    powerpc/powernv: Expose OPAL firmware symbol map
    powernv/powerpc: Add winkle support for offline cpus
    powernv/cpuidle: Redesign idle states management
    powerpc/powernv: Enable Offline CPUs to enter deep idle states
    powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
    i2c: Driver to expose PowerNV platform i2c busses
    powerpc: add little endian flag to syscall_get_arch()
    power/perf/hv-24x7: Use kmem_cache_free() instead of kfree
    powerpc/perf/hv-24x7: Use per-cpu page buffer
    cxl: Unmap MMIO regions when detaching a context
    cxl: Add timeout to process element commands
    cxl: Change contexts_lock to a mutex to fix sleep while atomic bug
    powerpc: Secondary CPUs must set cpu_callin_map after setting active and online

    Linus Torvalds
     

18 Dec, 2014

1 commit

  • If NO_DMA=y:

    drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
    i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
    i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
    i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Wolfram Sang

    Geert Uytterhoeven
     

15 Dec, 2014

1 commit

  • Pull i2c updates from Wolfram Sang:
    "For 3.19, the I2C subsystem has to offer special candy this time.
    Right in time for Christmas :)

    - I2C slave framework: finally, a generic mechanism for Linux being
    an I2C slave (if the bus driver supports that). Docs are still
    missing but will come later this cycle, the code is good enough to
    go.
    - I2C muxes represent their topology in sysfs much more detailed.
    This will help users to navigate around much easier.
    - irq population of i2c clients is now done at probe time, not device
    creation time, to have better support for deferred probing.
    - new drivers for Imagination SCB, Amlogic Meson
    - DMA support added for Freescale IMX, Renesas SHMobile
    - slightly bigger driver updates to OMAP, i801, AT91, and rk3x
    (mostly quirk handling, timing updates, and using better kernel
    interfaces)
    - eeprom driver can now write with byte-access (very slow, but OK to
    have)
    - and the bunch of smaller fixes, cleanups, ID updates..."

    * 'i2c/for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (56 commits)
    i2c: sh_mobile: remove unneeded DMA mask
    i2c: rcar: add slave support
    i2c: slave-eeprom: add eeprom simulator driver
    i2c: core changes for slave support
    MAINTAINERS: add I2C dt bindings also to I2C realm
    i2c: designware: Fix falling time bindings doc
    i2c: davinci: switch to use platform_get_irq
    Documentation: i2c: Use PM ops instead of legacy suspend/resume
    i2c: sh_mobile: optimize irq entry
    i2c: pxa: add support for SCCB devices
    omap: i2c: don't check bus state IP rev3.3 and earlier
    i2c: s3c2410: Handle i2c sys_cfg register in i2c driver
    i2c: rk3x: add Kconfig dependency on COMMON_CLK
    i2c: omap: add notes related to i2c multimaster mode
    i2c: omap: don't reset controller if Arbitration Lost detected
    i2c: omap: implement workaround for handling invalid BB-bit values
    i2c: omap: cleanup register definitions
    i2c: rk3x: handle dynamic clock rate changes correctly
    i2c: at91: enable probe deferring on dma channel request
    i2c: at91: remove legacy DMA support
    ...

    Linus Torvalds
     

14 Dec, 2014

1 commit

  • The patch exposes the available i2c busses on the PowerNV platform
    to the kernel and implements the bus driver to support i2c and
    smbus commands.
    The driver uses the platform device infrastructure to probe the busses
    on the platform and registers them with the i2c driver framework.

    Signed-off-by: Neelesh Gupta
    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Wolfram Sang (I2C part, excluding the bindings)
    Signed-off-by: Michael Ellerman

    Neelesh Gupta
     

24 Nov, 2014

1 commit


19 Nov, 2014

1 commit

  • The SCB is present on IMG SoCs other than the META-based TZ1090,
    such as the MIPS-based Pistachio SoC. Relax the Kconfig dependency
    so that it can be built on any MIPS or META machine.

    Signed-off-by: Andrew Bresticker
    Acked-by: James Hogan
    Signed-off-by: Wolfram Sang

    Andrew Bresticker
     

18 Nov, 2014

2 commits


13 Nov, 2014

1 commit


11 Nov, 2014

1 commit

  • This patch adds support for the Diolan DLN-2 I2C master module. Due
    to hardware limitations it does not support SMBUS quick commands.

    Information about the USB protocol interface can be found in the
    Programmer's Reference Manual [1], see section 6.2.2 for the I2C
    master module commands and responses.

    [1] https://www.diolan.com/downloads/dln-api-manual.pdf

    Signed-off-by: Laurentiu Palcu
    Signed-off-by: Octavian Purdila
    Acked-by: Wolfram Sang
    Reviewed-by: Johan Hovold
    [Lee: Fixed some whitespace issues in Kconfig]
    Signed-off-by: Lee Jones

    Laurentiu Palcu
     

20 Oct, 2014

1 commit

  • Pull i2c updates from Wolfram Sang:
    "Highlights from the I2C subsystem for 3.18:

    - new drivers for Axxia AM55xx, and Hisilicon hix5hd2 SoC.

    - designware driver gained AMD support, exynos gained exynos7 support

    The rest is usual driver stuff. Hopefully no lowlights this time"

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: i801: Add Device IDs for Intel Sunrise Point PCH
    i2c: hix5hd2: add i2c controller driver
    i2c-imx: Disable the clock on probe failure
    i2c: designware: Add support for AMD I2C controller
    i2c: designware: Rework probe() to get clock a bit later
    i2c: designware: Default to fast mode in case of ACPI
    i2c: axxia: Add I2C driver for AXM55xx
    i2c: exynos: add support for HSI2C module on Exynos7
    i2c: mxs: detect No Slave Ack on SELECT in PIO mode
    i2c: cros_ec: Remove EC_I2C_FLAG_10BIT
    i2c: cros-ec-tunnel: Add of match table
    i2c: rcar: remove sign-compare flaw
    i2c: ismt: Use minimum descriptor size
    i2c: imx: Add arbitration lost check
    i2c: rk3x: Remove unlikely() annotations
    i2c: rcar: check for no IRQ in rcar_i2c_irq()
    i2c: rcar: make rcar_i2c_prepare_msg() *void*
    i2c: rcar: simplify check for last message
    i2c: designware: add support of platform data to set I2C mode
    i2c: designware: add support of I2C standard mode

    Linus Torvalds
     

16 Oct, 2014

2 commits


08 Oct, 2014

1 commit

  • Pull "trivial tree" updates from Jiri Kosina:
    "Usual pile from trivial tree everyone is so eagerly waiting for"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Remove MN10300_PROC_MN2WS0038
    mei: fix comments
    treewide: Fix typos in Kconfig
    kprobes: update jprobe_example.c for do_fork() change
    Documentation: change "&" to "and" in Documentation/applying-patches.txt
    Documentation: remove obsolete pcmcia-cs from Changes
    Documentation: update links in Changes
    Documentation: Docbook: Fix generated DocBook/kernel-api.xml
    score: Remove GENERIC_HAS_IOMAP
    gpio: fix 'CONFIG_GPIO_IRQCHIP' comments
    tty: doc: Fix grammar in serial/tty
    dma-debug: modify check_for_stack output
    treewide: fix errors in printk
    genirq: fix reference in devm_request_threaded_irq comment
    treewide: fix synchronize_rcu() in comments
    checkstack.pl: port to AArch64
    doc: queue-sysfs: minor fixes
    init/do_mounts: better syntax description
    MIPS: fix comment spelling
    powerpc/simpleboot: fix comment
    ...

    Linus Torvalds
     

07 Oct, 2014

1 commit

  • Add support for AMD version of the DW I2C host controller. The device is
    enumerated from ACPI namespace with ACPI ID AMD0010. Because the core
    driver needs an input source clock, and this is not an Intel LPSS device
    where clocks are provided through drivers/acpi/acpi_lpss.c, we register the
    clock ourselves if the clock rate is given in ->driver_data

    Signed-off-by: Carl Peng
    Signed-off-by: Mika Westerberg
    Signed-off-by: Wolfram Sang

    Carl Peng
     

03 Oct, 2014

2 commits

  • Add I2C bus driver for the controller found in the LSI Axxia family SoCs. The
    driver implements 10-bit addressing and SMBus transfer modes via emulation
    (including SMBus block data read).

    Signed-off-by: Anders Berg
    Signed-off-by: Wolfram Sang

    Anders Berg
     
  • The HSI2C module on Exynos7 differs in the transfer status
    bits. Transfer status bits were moved to INT_ENABLE and
    INT_STATUS registers

    This patch adds support for the HSI2C module on Exynos7.
    1. Implementes a "hw" field in the variant struct to distinguish
    the hardware.
    2. Updates the dt-new compatible in dt-binding documenation

    Signed-off-by: Naveen Krishna Chatradhi
    Signed-off-by: Wolfram Sang

    Naveen Krishna Ch
     

26 Sep, 2014

1 commit


05 Aug, 2014

1 commit

  • All Exynos5 platforms have HSI2C controllers and are needed by
    various IPs connected to the boards based on these SoCs. Thus
    select this by default for Exynos5 platforms.

    Signed-off-by: Sachin Kamat
    Acked-by: Kukjin Kim
    Reviewed-by: Doug Anderson
    Signed-off-by: Wolfram Sang

    Sachin Kamat
     

18 Jul, 2014

1 commit


17 Jul, 2014

2 commits

  • This driver is marked as deprecated since the pre-git era. Any user
    left(?) should really have switched to i2c-gpio meanwhile.

    Signed-off-by: Wolfram Sang
    Acked-by: Jim Cromie

    Wolfram Sang
     
  • It turned out that the s6000 simply has a designware IP core and should
    use the designated driver for it which is way more maintained and
    feature complete. There are currently no users in tree, and not even a
    toolchain for s6000 seems to be available. So, simply remove this
    duplicate. If someone needs assistance in converting to the designware
    driver, the i2c list will be there to help.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     

12 Jun, 2014

2 commits

  • The P2WI controller looks like an SMBus controller which only supports byte
    data transfers. But, it differs from standard SMBus protocol on several
    aspects:
    - it supports only one slave device, and thus drop the address field
    - it adds a parity bit every 8bits of data
    - only one read access is required to read a byte (instead of a write
    followed by a read access in standard SMBus protocol)
    - there's no Ack bit after each byte transfer

    This means this bus cannot be used to interface with standard SMBus
    devices (the only known device to support this interface is the AXP221
    PMIC).
    However the P2WI protocol is close enough to SMBus to be integrated in
    the I2C subsystem (see this thread [1] for detailed reasons that led to
    integrating this driver in the I2C subsystem).

    [1] http://www.spinics.net/lists/linux-i2c/msg15066.html

    Signed-off-by: Boris BREZILLON
    Acked-by: Maxime Ripard
    Acked-by: Arnd Bergmann
    Signed-off-by: Wolfram Sang

    Boris BREZILLON
     
  • Driver for the native I2C adapter found in Rockchip RK3xxx SoCs.

    Configuration is only possible through devicetree. The driver is
    interrupt driven and supports the I2C_M_IGNORE_NAK mangling bit.

    Signed-off-by: Max Schwarz
    Signed-off-by: Wolfram Sang

    Max Schwarz
     

07 Jun, 2014

1 commit

  • Pull i2c updates from Wolfram Sang:
    "I2C has the following updates for 3.16:

    - major cleanups to the rcar and sh_mobile drivers
    - removal of nuc900 driver which had a compile error for years
    - usual bunch of driver updates, bugfixes and cleanups"

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (44 commits)
    i2c: pca954x: Fix compilation without CONFIG_GPIOLIB
    i2c: mux: pca954x: Use the descriptor-based GPIO API
    i2c: mpc: insert DR read in i2c_fixup()
    i2c: bfin: turn to Resource-managed API in probe function
    i2c: Make of_device_id array const
    i2c: remove unnecessary OOM messages
    i2c: designware-pci: Add Haswell PCI IDs
    i2c: designware: Add runtime PM hooks
    i2c: designware: Disable device on system suspend
    i2c: nuc900: remove driver
    i2c: imx: update i2c clock divider for each transaction
    i2c: imx: fix the i2c bus hang issue when do repeat restart
    i2c: rcar: update copyright and license information
    i2c: rcar: janitorial cleanup after refactoring
    i2c: rcar: reuse status bits as enable bits
    i2c: rcar: remove spinlock
    i2c: rcar: refactor status bit handling
    i2c: rcar: refactor setting up msg
    i2c: rcar: check bus free before first message
    i2c: rcar: refactor irq state machine
    ...

    Linus Torvalds
     

03 Jun, 2014

2 commits

  • On ARM Chromebooks we have a few devices that are accessed by both the
    AP (the main "Application Processor") and the EC (the Embedded
    Controller). These are:
    * The battery (sbs-battery).
    * The power management unit tps65090.

    On the original Samsung ARM Chromebook these devices were on an I2C
    bus that was shared between the AP and the EC and arbitrated using
    some extranal GPIOs (see i2c-arb-gpio-challenge).

    The original arbitration scheme worked well enough but had some
    downsides:
    * It was nonstandard (not using standard I2C multimaster)
    * It only worked if the EC-AP communication was I2C
    * It was relatively hard to debug problems (hard to tell if i2c issues
    were caused by the EC, the AP, or some device on the bus).

    On the HP Chromebook 11 the design was changed to:
    * The AP/EC comms were still i2c, but the battery/tps65090 were no
    longer on the bus used for AP/EC communication. The battery was
    exposed to the AP through a limited i2c tunnel and tps65090 was
    exposed to the AP through a custom Linux driver.

    On the Samsung ARM Chromebook 2 the scheme is changed yet again, now:
    * The AP/EC comms are now using SPI for faster speeds.
    * The EC's i2c bus is exposed to the AP through a full i2c tunnel.

    The upstream "tegra124-venice2" uses the same scheme as the Samsung
    ARM Chromebook 2, though it has a different set of components on the
    other side of the bus.

    This driver supports the scheme used by the Samsung ARM Chromebook 2.
    Future patches to this driver could add support for the battery tunnel
    on the HP Chromebook 11 (and perhaps could even be used to access
    tps65090 on the HP Chromebook 11 instead of using a special driver,
    but I haven't researched that enough).

    Signed-off-by: Vincent Palatin
    Signed-off-by: Simon Glass
    Signed-off-by: Doug Anderson
    Reviewed-by: Wolfram Sang
    Signed-off-by: Lee Jones

    Doug Anderson
     
  • Arnd said in another patch:

    "As far as I can tell, this driver must have produced this
    error for as long as it has been merged into the mainline kernel, but
    it was never part of the normal build tests:

    drivers/i2c/busses/i2c-nuc900.c: In function 'nuc900_i2c_probe':
    drivers/i2c/busses/i2c-nuc900.c:601:17: error: request for member
    'apbfreq' in something not a structure or union
    ret = (i2c->clk.apbfreq)/(pdata->bus_freq * 5) - 1;
    ^
    This is an attempt to get the driver to build and possibly
    work correctly, although I do wonder whether we should just
    remove it, as it has clearly never worked."

    I agree with removing it since nobody showed interest in Arnd's fixup
    patch.

    Reported-by: Arnd Bergmann
    Signed-off-by: Wolfram Sang
    Cc: Wan ZongShun
    Acked-by: Arnd Bergmann

    Wolfram Sang
     

22 May, 2014

1 commit

  • The i2c-eg20t driver is for a companion chip to the Intel Atom E600
    series processors. These are 32-bit x86 processors so the driver is
    only needed on X86_32. Add COMPILE_TEST as an alternative, so that the
    driver can still be build-tested elsewhere.

    Signed-off-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Jean Delvare
     

09 Apr, 2014

1 commit

  • Pull i2c updates from Wolfram Sang:
    "Here is the pull request from the i2c subsystem. It got a little
    delayed because I needed to wait for a dependency to be included
    (commit b424080a9e08: "reset: Add optional resets and stubs"). Plus,
    I had some email problems. All done now, the highlights are:

    - drivers can now deprecate their use of i2c classes. That shouldn't
    be used on embedded platforms anyhow and was often blindly
    copy&pasted. This mechanism gives users time to switch away and
    ultimately boot faster once the use of classes for those drivers is
    gone for good.

    - new drivers for QUP, Cadence, efm32

    - tracepoint support for I2C and SMBus

    - bigger cleanups for the mv64xxx, nomadik, and designware drivers

    And the usual bugfixes, cleanups, feature additions. Most stuff has
    been in linux-next for a while. Just some hot fixes and new drivers
    were added a bit more recently."

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (63 commits)
    i2c: cadence: fix Kconfig dependency
    i2c: Add driver for Cadence I2C controller
    i2c: cadence: Document device tree bindings
    Documentation: i2c: improve section about flags mangling the protocol
    i2c: qup: use proper type fro clk_freq
    i2c: qup: off by ones in qup_i2c_probe()
    i2c: efm32: fix binding doc
    MAINTAINERS: update I2C web resources
    i2c: qup: New bus driver for the Qualcomm QUP I2C controller
    i2c: qup: Add device tree bindings information
    i2c: i2c-xiic: deprecate class based instantiation
    i2c: i2c-sirf: deprecate class based instantiation
    i2c: i2c-mv64xxx: deprecate class based instantiation
    i2c: i2c-designware-platdrv: deprecate class based instantiation
    i2c: i2c-davinci: deprecate class based instantiation
    i2c: i2c-bcm2835: deprecate class based instantiation
    i2c: mv64xxx: Fix reset controller handling
    i2c: omap: fix usage of IS_ERR_VALUE with pm_runtime_get_sync
    i2c: efm32: new bus driver
    i2c: exynos5: remove unnecessary cast of void pointer
    ...

    Linus Torvalds
     

08 Apr, 2014

1 commit

  • If the renamed symbol is defined lib/iomap.c implements ioport_map and
    ioport_unmap and currently (nearly) all platforms define the port
    accessor functions outb/inb and friend unconditionally. So
    HAS_IOPORT_MAP is the better name for this.

    Consequently NO_IOPORT is renamed to NO_IOPORT_MAP.

    The motivation for this change is to reintroduce a symbol HAS_IOPORT
    that signals if outb/int et al are available. I will address that at
    least one merge window later though to keep surprises to a minimum and
    catch new introductions of (HAS|NO)_IOPORT.

    The changes in this commit were done using:

    $ git grep -l -E '(NO|HAS)_IOPORT' | xargs perl -p -i -e 's/\b((?:CONFIG_)?(?:NO|HAS)_IOPORT)\b/$1_MAP/'

    Signed-off-by: Uwe Kleine-König
    Acked-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     

07 Apr, 2014

1 commit

  • During development, the driver first really needed to depend on
    COMMON_CLK only. Later, it was switched to writel_relaxed, but it was
    forgotten to update the dependencies, so build errors occured:

    config: make ARCH=i386 allyesconfig

    All error/warnings:

    drivers/i2c/busses/i2c-cadence.c: In function 'cdns_i2c_clear_bus_hold':
    >> drivers/i2c/busses/i2c-cadence.c:168:3: error: implicit declaration
    >> of function 'writel_relaxed' [-Werror=implicit-function-declaration]

    Use a very safe dependency for now.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     

06 Apr, 2014

1 commit


29 Mar, 2014

1 commit

  • This bus driver supports the QUP i2c hardware controller in the Qualcomm SOCs.
    The Qualcomm Universal Peripheral Engine (QUP) is a general purpose data path
    engine with input/output FIFOs and an embedded i2c mini-core. The driver
    supports FIFO mode (for low bandwidth applications) and block mode (interrupt
    generated for each block-size data transfer).

    Signed-off-by: Ivan T. Ivanov
    Signed-off-by: Bjorn Andersson
    Reviewed-by: Andy Gross
    Tested-by: Philip Elcan
    [wsa: removed needless IS_ERR_VALUE]
    Signed-off-by: Wolfram Sang

    Bjorn Andersson
     

28 Mar, 2014

1 commit


14 Mar, 2014

1 commit


10 Mar, 2014

1 commit


07 Mar, 2014

1 commit


06 Mar, 2014

1 commit

  • The Allwinner A31 SoC using that IP has a reset controller maintaining
    it reset unless told otherwise.

    Add some optional reset support to the driver.

    Signed-off-by: Maxime Ripard
    Reviewed-by: Gregory CLEMENT
    Tested-by: Gregory CLEMENT
    Signed-off-by: Wolfram Sang

    Maxime Ripard
     

25 Jan, 2014

1 commit