09 Aug, 2014

2 commits

  • Pull ARM SoC driver changes from Olof Johansson:
    "A handful of driver-related changes. We've had a bunch of them going
    in through other branches as well, so it's only a part of what we
    really have this release.

    Larger pieces are:

    - Removal of a now unused PWM driver for atmel
    [ This includes AVR32 changes that have been appropriately acked ]
    - Performance counter support for the arm CCN interconnect
    - OMAP mailbox driver cleanups and consolidation
    - PCI and SATA PHY drivers for SPEAr 13xx platforms
    - Redefinition (with backwards compatibility!) of PCI DT bindings for
    Tegra to better model regulators/power"

    Note: this merge also fixes up the semantic conflict with the new
    calling convention for devm_phy_create(), see commit f0ed817638b5 ("phy:
    core: Let node ptr of PHY point to PHY and not of PHY provider") that
    came in through Greg's USB tree.

    Semantic merge patch by Stephen Rothwell through
    the next tree.

    * tag 'drivers-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)
    bus: arm-ccn: Fix error handling at event allocation
    mailbox/omap: add a parent structure for every IP instance
    mailbox/omap: remove the private mailbox structure
    mailbox/omap: consolidate OMAP mailbox driver
    mailbox/omap: simplify the fifo assignment by using macros
    mailbox/omap: remove omap_mbox_type_t from mailbox ops
    mailbox/omap: remove OMAP1 mailbox driver
    mailbox/omap: use devm_* interfaces
    bus: ARM CCN: add PERF_EVENTS dependency
    bus: ARM CCN PMU driver
    PCI: spear: Remove spear13xx_pcie_remove()
    PCI: spear: Fix Section mismatch compilation warning for probe()
    ARM: tegra: Remove legacy PCIe power supply properties
    PCI: tegra: Remove deprecated power supply properties
    PCI: tegra: Implement accurate power supply scheme
    ARM: SPEAr13xx: Update defconfigs
    ARM: SPEAr13xx: Add pcie and miphy DT nodes
    ARM: SPEAr13xx: Add bindings and dt node for misc block
    ARM: SPEAr13xx: Fix static mapping table
    phy: Add drivers for PCIe and SATA phy on SPEAr13xx
    ...

    Linus Torvalds
     
  • Pull ARM SoC device-tree changes from Olof Johansson:
    "Unlike the board branch, this keeps having large sets of changes for
    every release, but that's quite expected and is so far working well.

    Most of this is plumbing for various device bindings and new
    platforms, but there's also a bit of cleanup and code removal for
    things that are moved from platform code to DT contents (some OMAP
    clock code in particular).

    There's also a pinctrl driver for tegra here (appropriately acked),
    that's introduced this way to make it more bisectable.

    I'm happy to say that there were no conflicts at all with this branch
    this release, which means that changes are flowing through our tree as
    expected instead of merged through driver maintainers (or at least not
    done with conflicts).

    There are several new boards added, and a couple of SoCs. In no
    particular order:

    - Rockchip RK3288 SoC support, including DTS for a dev board that
    they have seeded with some community developers.
    - Better support for Hardkernel Exynos4-based ODROID boards.
    - CCF conversions (and dtsi contents) for several Renesas platforms.
    - Gumstix Pepper (TI AM335x) board support
    - TI eval board support for AM437x
    - Allwinner A23 SoC, very similar to existing ones which mostly has
    resulted in DT changes for support. Also includes support for an
    Ippo tablet with the chipset.
    - Allwinner A31 Hummingbird board support, not to be confused with
    the SolidRun i.MX-based Hummingboard.
    - Tegra30 Apalis board support"

    * tag 'dt-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (334 commits)
    ARM: dts: Enable USB host0 (EHCI) on rk3288-evb
    ARM: dts: add rk3288 ehci usb devices
    ARM: dts: Turn on USB host vbus on rk3288-evb
    ARM: tegra: apalis t30: fix device tree compatible node
    ARM: tegra: paz00: Fix some indentation inconsistencies
    ARM: zynq: DT: Clarify Xilinx Zynq platform
    ARM: dts: rockchip: add watchdog node
    ARM: dts: rockchip: remove pinctrl setting from radxarock uart2
    ARM: dts: Add missing pinctrl for uart0/1 for exynos3250
    ARM: dts: Remove duplicate 'interrput-parent' property for exynos3250
    ARM: dts: Add TMU dt node to monitor the temperature for exynos3250
    ARM: dts: Specify MAX77686 pmic interrupt for exynos5250-smdk5250
    ARM: dts: cypress,cyapa trackpad is exynos5250-Snow only
    ARM: dts: max77686 is exynos5250-snow only
    ARM: zynq: DT: Remove DMA from board DTs
    ARM: zynq: DT: Add CAN node
    ARM: EXYNOS: Add exynos5260 PMU compatible string to DT match table
    ARM: dts: Add PMU DT node for exynos5260 SoC
    ARM: EXYNOS: Add support for Exynos5410 PMU
    ARM: dts: Add PMU to exynos5410
    ...

    Linus Torvalds
     

08 Aug, 2014

1 commit

  • Pull pinctrl updates from Linus Walleij:
    "This is the bulk pin control changes for the v3.17 merge development
    cycle:

    - get rid of the .disable() callback from the driver callback vtable.

    This callback was abused and counterintuitive since a pin or group
    of pins can be said to always be in some setting, and never really
    disabled. We now only enable a certain muxing, and move between
    some certain muxings, we never "disable" a mux setting

    - some janitorial moving the MSM, Samsung and Nomadik and drivers to
    their own subdirectories for a clearer view in the subsystem. This
    will continue

    - kill off the use of the return value from gpiochip_remove(), this
    will be done in parallel in the GPIO subsystem and hopefully not
    trigger too many unchecked return value warnings before we get rid
    of this altogether

    - a huge set of changes and improvements to the Allwinner sunxi
    drivers especially for their latest A23 and A31 SoCs, and some
    ground work for the new sun8i platform family

    - a large set of Rockchip driver improvements adding support for the
    RK3288 SoC

    - advances in migration of older Freescale platforms to pin control,
    especially i.MX1

    - Samsung and Exynos improvements

    - support for the Qualcomm MSM8960 SoC

    - use the gpiolib irqchip helpers for the ST SPEAr and Intel Baytrail
    drivers

    - a bunch of nice janitorial work done with cppcheck"

    * tag 'pinctrl-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (61 commits)
    pinctrl: baytrail: Convert to use gpiolib irqchip
    pinctrl: sunxi: number gpio ranges starting from 0
    pinctrl: sunxi: use gpiolib API to mark a GPIO used as an IRQ
    pinctrl: rockchip: add drive-strength control for rk3288
    pinctrl: rockchip: add separate type for rk3288
    pinctrl: rockchip: set is_generic in pinconf_ops
    pinctrl: msm: drop negativity check on unsigned value
    pinctrl: remove all usage of gpio_remove ret val in driver/pinctl
    pinctrl: qcom: Make muxing of gpio function explicit
    pinctrl: nomadik: move all Nomadik drivers to subdir
    pinctrl: samsung: Group all drivers in a sub-dir
    sh-pfc: sh73a0: Introduce the use of devm_regulator_register
    sh-pfc: Add renesas,pfc-r8a7791 to binding documentation
    pinctrl: msm: move all qualcomm drivers to subdir
    pinctrl: msm: Add msm8960 definitions
    pinctrl: samsung: Allow pin value to be initialized using pinfunc
    pinctrl: samsung: Allow grouping multiple pinmux/pinconf nodes
    pinctrl: exynos: Consolidate irq_chips of GPIO and WKUP EINTs
    pinctrl: samsung: Handle GPIO request and free using pinctrl helpers
    pinctrl: samsung: Decouple direction setting from pinctrl
    ...

    Linus Torvalds
     

28 Jul, 2014

3 commits

  • Instead of open-coding irqchip handling in the driver we can take advantage
    of the new irqchip helpers provided by the gpiolib core.

    While doing this we also make sure that we call gpiochip_irqchip_add()
    after the gpiochip itself is registered as required.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Mika Westerberg
     
  • The pinctrl-sunxi driver originally used the pin number as the gpio
    range offset. This resulted in large, bogus gpio numbers for the
    new sun6i-a31-r pinctrl devices.

    This patch makes the driver number the gpios ranges starting from an
    offset of 0, by subtracting the pin_base number from the pin number.
    This also makes the system-wide gpio number match the pin number.

    Tested on sun8i with sysfs exported gpios.

    This patch also changes the GPIO bindings for R_PIO:

    gpios = ;

    Where B originally was the pinbank label (L or M) counted from A,
    with this patch it becomes (L or M) counted from its pinbank base (L).

    Thus

    gpios = ; /* PL11 */

    becomes

    gpios = ; /* PL11 */

    IMO this is correct, as the binding shows the bank offset and pin offset
    within the bank for the GPIO controller. But I'm worried it might be a
    bit confusing.

    Signed-off-by: Chen-Yu Tsai
    Acked-by: Maxime Ripard
    Signed-off-by: Linus Walleij

    Chen-Yu Tsai
     
  • When an IRQ is started on a GPIO line, mark this GPIO as IRQ in
    the gpiolib so we can keep track of the usage centrally.

    Signed-off-by: Chen-Yu Tsai
    Acked-by: Maxime Ripard
    Signed-off-by: Linus Walleij

    Chen-Yu Tsai
     

23 Jul, 2014

4 commits


22 Jul, 2014

2 commits


20 Jul, 2014

1 commit

  • …nel/git/tegra/linux into next/dt

    Merge "ARM: tegra: Add XUSB pad controller support" from Thierry Reding:

    Adds device tree bindings and a driver for the XUSB pad controller found
    on Tegra114 and later. This is a prerequisites for PCIe, SATA and XUSB
    drivers which are all currently being reviewed or pending for merge.

    This is a separate branch in case it needs to be pulled into the pinctrl
    tree to resolve conflicts.

    * tag 'tegra-for-3.17-xusb-padctl' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    pinctrl: Add NVIDIA Tegra XUSB pad controller support
    of: Add NVIDIA Tegra XUSB pad controller binding

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

16 Jul, 2014

1 commit

  • st_gpio_irqmux_handler() reads the status register to find out
    which banks inside the controller have pending IRQs.
    For each banks having pending IRQs, it calls the corresponding handler.

    Problem is that current code restricts the number of possible banks inside the
    controller to ST_GPIO_PINS_PER_BANK. This define represents the number of pins
    inside a bank, so it shouldn't be used here.

    On STiH407, PIO_FRONT0 controller has 10 banks, so IRQs pending in the two
    last banks (PIO18 & PIO19) aren't handled.

    This patch replace ST_GPIO_PINS_PER_BANK by the number of banks inside the
    controller.

    Cc: Linus Walleij
    Cc: #v3.15+
    Acked-by: Srinivas Kandagatla
    Signed-off-by: Maxime Coquelin
    Signed-off-by: Linus Walleij

    Maxime COQUELIN
     

11 Jul, 2014

26 commits

  • We have a bunch of Nomadik family pin control drivers, so let's
    move them into their own subdirectory.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • The XUSB pad controller found on NVIDIA Tegra SoCs provides several pads
    that lanes can be assigned to in order to support a variety of interface
    options: USB 2.0, USB 3.0, PCIe and SATA.

    In addition to the pin controller used to assign lanes to pads two PHYs
    are exposed to allow the bricks for PCIe and SATA to be powered up and
    down by PCIe and SATA drivers.

    Tested-by: Mikko Perttunen
    Acked-by: Linus Walleij
    Signed-off-by: Thierry Reding

    Thierry Reding
     
  • Group all pin control drivers of Samsung platform together in
    a sub-directory for easy maintenance.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Linus Walleij

    Sachin Kamat
     
  • This patch moves data allocated using regulator_register to
    devm_regulator_register and does away the calls to regulator_unregister.
    The sh73a0_pinmux_soc_exit function is no longer needed and is removed.

    Signed-off-by: Himangi Saraogi
    Acked-by: Julia Lawall
    Acked-by: Laurent Pinchart
    Signed-off-by: Linus Walleij

    Himangi Saraogi
     
  • We have four Qualcomm-related pin control drivers, and now there
    are drivers coming in for the PMICs on these systems, so let's
    create a qcom subdirectory to hold all the Qualcomm stuff.

    Acked-by: Ivan T. Ivanov
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Signed-off-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Bjorn Andersson
     
  • This patch extends the range of settings configurable via pinfunc API
    to cover pin value as well. This allows configuration of default values
    of pins, which is useful for pins that are not supposed to be used by
    any dedicated driver, but need certain board-specific setting.

    Signed-off-by: Tomasz Figa
    Acked-by: Kyungmin Park
    Signed-off-by: Linus Walleij

    Tomasz Figa
     
  • One of remaining limitations of current pinctrl-samsung driver was
    the inability to parse multiple pinmux/pinconf group nodes grouped
    inside a single device tree node. It made defining groups of pins for
    single purpose, but with different parameters very inconvenient.

    This patch implements Tegra-like support for grouping multiple pinctrl
    groups inside one device tree node, by completely changing the way
    pin groups and functions are parsed from device tree. The code creating
    pinctrl maps from DT nodes has been borrowed from pinctrl-tegra, while
    the initial creation of groups and functions has been completely
    rewritten with following assumptions:
    - each group consists of just one pin and does not depend on data
    from device tree,
    - each function is represented by a device tree child node of the
    pin controller, which in turn can contain multiple child nodes
    for pins that need to have different configuration values.

    Device Tree bindings are fully backwards compatible. New functionality
    can be used by defining a new pinctrl group consisting of several child
    nodes, as on following example:

    sd4_bus8: sd4-bus-width8 {
    part-1 {
    samsung,pins = "gpk0-3", "gpk0-4",
    "gpk0-5", "gpk0-6";
    samsung,pin-function = ;
    samsung,pin-pud = ;
    samsung,pin-drv = ;
    };
    part-2 {
    samsung,pins = "gpk1-3", "gpk1-4",
    "gpk1-5", "gpk1-6";
    samsung,pin-function = ;
    samsung,pin-pud = ;
    samsung,pin-drv = ;
    };
    };

    Tested on Exynos4210-Trats board and a custom Exynos4212-based one.

    Signed-off-by: Tomasz Figa
    Acked-by: Kyungmin Park
    Reviewed-by: Stephen Warren
    Cc: devicetree@vger.kernel.org
    Cc: Rob Herring
    Cc: Mark Rutland
    Signed-off-by: Linus Walleij

    Tomasz Figa
     
  • Handling of irq_chip operations for GPIO and WKUP external interrupts
    is mostly the same, with the difference being offset of registers.
    However currently the driver has all the code duplicated for both EINT
    types, which is undesirable, because changes in irq_chip operations have
    to be done to both instances of the same code.

    This patch fixes this by creating exynos_irq_chip struct that has normal
    irq_chip struct embedded and contain differences between particular EINT
    types, which are three register offsets. One instance of code is removed
    and the new structure is used instead to fetch necessary data instead of
    samsung_pin_ctrl struct used previously.

    While at it, the patch removes Exynos-specific fields from
    aforementioned structure to improve layering of the driver.

    Signed-off-by: Tomasz Figa
    Signed-off-by: Linus Walleij

    Tomasz Figa
     
  • This patch adds .request() and .free() operations to gpio_chip of
    pinctrl-samsung driver, which call pinctrl request and free helpers to
    request and free pinctrl pin along with GPIO pin.

    Signed-off-by: Tomasz Figa
    Signed-off-by: Linus Walleij

    Tomasz Figa
     
  • This patch makes the pinctrl-samsung driver configure GPIO direction on
    its own, without using the pinctrl_gpio_direction_*() "helpers". The
    rationale behind this change is as follows:
    - pinctrl-samsung does not need translation from GPIO namespace to
    pinctrl namespace to handle GPIO operations - GPIO chip and offset
    therein are enough to calculate necessary offsets and bit masks in
    constant time,
    - the pinctrl_gpio_direction_*() functions do not do anything useful
    other than translating the pin into pinctrl namespace and calling the
    .gpio_set_direction() from pinmux_ops of the controller,
    - the undesirable side effect of using those helpers is losing the
    ability to change GPIO direction in atomic context, because they
    explicitly use a mutex for synchronization,

    Results of this patch are:
    - fixed warnings about scheduling while atomic in code that needs to
    set GPIO direction in atomic context (e.g. interrupt handler),
    - reduced overhead of bitbanging drivers that use gpio_direction_*(),
    e.g. i2c-gpio.

    Signed-off-by: Tomasz Figa
    Signed-off-by: Linus Walleij

    Tomasz Figa
     
  • Add CAN0/1 data/clock pin groups to R8A7791 PFC driver.

    Signed-off-by: Sergei Shtylyov
    Acked-by: Laurent Pinchart
    Signed-off-by: Linus Walleij

    Sergei Shtylyov
     
  • For Baytrail, you should never set a GPIO set to direct_irq
    to output mode. When direct_irq_en is set for a GPIO, it is
    tied directly to an APIC internally, and making the pad output
    does not make any sense. Assert a WARN() in the event this happens.

    Signed-off-by: Eric Ernst
    Acked-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Eric Ernst
     
  • Remove variable that are never used

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Acked-by: Patrice Chotard
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • %d in format string used, but the type is unsigned int

    This was found using a static code analysis program called cppcheck

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • %d in format string used, but the type is unsigned int

    This was found using a static code analysis program called cppcheck

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove variable that are never used

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove variable that are never used

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove checking if a unsigned is less than zero

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Acked-by: Srinivas Kandagatla
    Acked-by: Maxime Coquelin
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove checking if a unsigned is less than zero

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove checking if a unsigned is less than zero

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • Remove checking if a unsigned is less than zero

    This was found using a static code analysis program called cppcheck.

    Signed-off-by: Rickard Strandqvist
    Signed-off-by: Linus Walleij

    Rickard Strandqvist
     
  • no .irq_set_wake API is available for pinctrl-st driver.
    Add the IRQCHIP_SKIP_SET_WAKE flag to inform irq handler
    not to call this API.

    Signed-off-by: David Paris
    Signed-off-by: Linus Walleij

    David PARIS
     
  • bcm281xx_pinctrl_probe is local to this file. Make it static.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Linus Walleij

    Sachin Kamat
     
  • This patch adds the BUS_HOLD (Keeper) bias option for pins.

    Signed-off-by: Andy Gross
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Andy Gross
     
  • The A23 has a R_PIO pin controller, similar to the one found on the A31 SoC.
    Add support for the pins controlled by the R_PIO controller.

    Signed-off-by: Chen-Yu Tsai
    Acked-by: Maxime Ripard
    Signed-off-by: Linus Walleij

    Chen-Yu Tsai