aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge branch 'for-3.5/gpio-pinmux' of ↵Olof Johansson2012-05-10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/pinctrl By Stephen Warren via Stephen Warren * 'for-3.5/gpio-pinmux' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: pinctrl: tegra: error reporting cleanup pinctrl: tegra: debugfs enhancements pinctrl: tegra: refactor probe handling ARM: dt: tegra20: add pinmux to device tree ARM: dt: tegra cardhu: add pinmux to device tree ARM: tegra: Remove pre-pinctrl pinmux driver ARM: tegra: Switch to new pinctrl driver gpio: tegra: Hide tegra_gpio_enable/disable() ARM: tegra: seaboard: Don't gpio_request() ISL29018_IRQ gpio: tegra: configure pins during irq_set_type ARM: tegra: Remove VBUS_GPIO handling from board files usb: ehci-tegra: Add vbus_gpio to platform data
| * pinctrl: tegra: error reporting cleanupStephen Warren2012-04-25
| | | | | | | | | | | | | | | | | | | | Print an explicit error message in various failure cases to allow easier diagnosis. WARN_ON() some internal failures that users/clients shouldn't be able to trigger. Signed-off-by: Stephen Warren <swarren@nvidia.com>
| * pinctrl: tegra: debugfs enhancementsStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | * Only provide debugfs-relates ops when CONFIG_DEBUG_FS is enabled. * Implement pin_config_group_dbg_show op. * Implement pin_config_config_dbg_show op. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: tegra: refactor probe handlingStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than having a single tegra-pinctrl driver that determines whether it's running on Tegra20 or Tegra30, instead have separate drivers for each that call into utility functions to implement the majority of the driver. This change is based on review feedback of the SPEAr pinctrl driver, which had originally copied to Tegra driver structure. This requires that the two drivers have unique names. Update a couple spots in arch/arm/mach-tegra for the name change. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: dt: tegra20: add pinmux to device treeStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | This adds a complete pinmux configuration to all Tegra20 device tree files. This allows removal of board-dt-tegra20.c's use of the pinmux board files, and the special device tree handling in board-pinmux.c. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Olof Johansson <olof@lixom.net>
| * ARM: dt: tegra cardhu: add pinmux to device treeStephen Warren2012-04-18
| | | | | | | | | | | | | | | | This adds a minimal pinmux configuration to the Tegra Cardhu device tree. Initially, just the built-in eMMC and SD card slot are configured. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net
| * ARM: tegra: Remove pre-pinctrl pinmux driverStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | The pinctrl driver is now active and used by all boards. Remove the old pinmux driver. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Olof Johansson <olof@lixom.net>
| * ARM: tegra: Switch to new pinctrl driverStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rename old pinmux and new pinctrl platform driver and DT match table entries, so the new driver gets instantiated. * Re-write board-pinmux.c, so that it uses pinctrl APIs to configura the pinmux. * Re-write board-*-pinmux.c so that the pinmux configuration tables are in pinctrl format. Ventana's pin mux table needed some edits on top of the basic format conversion, since some mux options that were previously marked as reserved are now valid in the new pinctrl driver. Attempting to use the old reserved names will result in a failure. Specifically, groups lpw0, lpw2, lsc1, lsck, and lsda were changed from function rsvd4 to displaya, and group pta was changed from function rsvd2 to hdmi. All boards' pin mux tables needed some edits on top of the based format conversion, since function i2c was split into i2c1 (first general I2C controller) and i2cp (power I2C controller) to better align function definitions with HW blocks. Due to the split of mux tables into pure mux and pull/tristate tables, many entries in the separate Seaboard/Ventana tables could be merged into the common table, since the entries differed only in the portion in one of the tables, not both. Most pin groups allow configuration of mux, tri-state, and pull. However, some don't allow pull configuration, which is instead configured by new groups that only allow pull configuration. This is a reflection of the true HW capabilities, which weren't fully represented by the old pinmux driver. This required adding new pull table entries for those new groups, and setting many other entries' pull configuration to TEGRA_PINCONFIG_DONT_SET. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Olof Johansson <olof@lixom.net>
| * gpio: tegra: Hide tegra_gpio_enable/disable()Stephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent pinctrl discussions concluded that gpiolib APIs should in fact do whatever is required to mux a GPIO onto pins, by calling pinctrl APIs if required. This change implements this for the Tegra GPIO driver, and removes calls to the Tegra-specific APIs from drivers and board files. Cc: Chris Ball <cjb@laptop.org> Cc: linux-mmc@vger.kernel.org Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Chris Ball <cjb@laptop.org> # for sdhci-tegra.c Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Olof Johansson <olof@lixom.net>
| * ARM: tegra: seaboard: Don't gpio_request() ISL29018_IRQStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | Don't call gpio_request() or gpio_direction_input() for ISL29018_IRQ. This pin is only used as an IRQ, and hence no GPIO configuration should be necessary; the GPIO/IRQ driver should (and does) perform any required setup when the IRQ is requested. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net>
| * gpio: tegra: configure pins during irq_set_typeStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | When a Tegra GPIO is used as an IRQ, it should be enabled as a GPIO (so the pinmux module isn't driving it as an output) and configured as a GPIO input (so the GPIO module isn't driving it as an output). Set this up automatically whenever an IRQ is requested, so that users of IRQs don't need to do this. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net>
| * ARM: tegra: Remove VBUS_GPIO handling from board filesStephen Warren2012-04-18
| | | | | | | | | | | | | | | | Instead of having board files manually request and initialize USB VBUS GPIOs, fill in the USB driver's platform data and have it do it. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net>
| * usb: ehci-tegra: Add vbus_gpio to platform dataStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a vbus_gpio field to platform data. This mirrors the device tree property nvidia,vbus-gpio. This makes the VBUS GPIO handling identical between booting with board files and device tree; the driver always does it. This removes the need for board files to request and initialize the GPIO early during their boot process, perhaps even before the GPIO driver is ready to process the request. Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: linux-usb@vger.kernel.org Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net>
* | Merge tag 'pinctrl-mergebase-20120418' of ↵Olof Johansson2012-05-10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into next/pinctrl By Stephen Warren (12) and others via Linus Walleij * tag 'pinctrl-mergebase-20120418' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (24 commits) pinctrl: show pin name for pingroups in sysfs pinctrl: show pin name when request pins pinctrl: implement devm_pinctrl_get()/put() pinctrl: a minor fix of pin config debug information pinctrl: pinconf: fix compilation error if PINCONF is not selected pinctrl: allow pctldevs to decode pin config in debugfs pinctrl: ifdef CONFIG_DEBUG_FS cleanup pinctrl: mark non-EXPERIMENTAL pinctrl: tegra: Add complete device tree support dt: Document Tegra20/30 pinctrl binding dt: Move Tegra20 pin mux binding into new pinctrl directory dt: pinctrl: Document device tree binding dt: add property iteration helpers pinctrl: implement pinctrl deferred probing pinctrl: add some error checking for user interfaces pinctrl: fix pinmux_check_ops error checking pinctrl: replace list_*() with get_*_count() pinctrl: mark const init data with __initconst instead of __initdata Documentation: pinctrl: add missing spi0_0 grp in example pinctrl: fix build when CONFIG_OF && !CONFIG_PINCTRL ... Resolved conflicts in drivers/pinctrl/core.c due to same patch being applied in two branches. Signed-off-by: Olof Johansson <olof@lixom.net>
| * pinctrl: show pin name for pingroups in sysfsDong Aisheng2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pin name is more useful to users. After change, when cat pingroups in sysfs, it becomes: root@freescale /sys/kernel/debug/pinctrl/20e0000.iomuxc$ cat pingroups registered pin groups: group: uart4grp-1 pin 219 (MX6Q_PAD_KEY_ROW0) pin 218 (MX6Q_PAD_KEY_COL0) group: usdhc4grp-1 pin 305 (MX6Q_PAD_SD4_CMD) pin 306 (MX6Q_PAD_SD4_CLK) pin 315 (MX6Q_PAD_SD4_DAT0) pin 316 (MX6Q_PAD_SD4_DAT1) pin 317 (MX6Q_PAD_SD4_DAT2) pin 318 (MX6Q_PAD_SD4_DAT3) pin 319 (MX6Q_PAD_SD4_DAT4) pin 320 (MX6Q_PAD_SD4_DAT5) pin 321 (MX6Q_PAD_SD4_DAT6) pin 322 (MX6Q_PAD_SD4_DAT7) Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: show pin name when request pinsDong Aisheng2012-04-18
| | | | | | | | | | | | | | | | Pin name is more useful to users. Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: implement devm_pinctrl_get()/put()Stephen Warren2012-04-18
| | | | | | | | | | | | | | | | These functions allow the driver core to automatically clean up any allocations made by drivers, thus leading to simplified drivers. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: a minor fix of pin config debug informationDong Aisheng2012-04-18
| | | | | | | | | | Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: pinconf: fix compilation error if PINCONF is not selectedViresh Kumar2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we compile pinctrl layer for platforms without CONFIG_PINCONF, we get following compilation errors: drivers/built-in.o: In function `pinctrl_show': linux-2.6/drivers/pinctrl/core.c:1116: undefined reference to `pinconf_show_setting' drivers/built-in.o: In function `pinctrl_maps_show': linux-2.6/drivers/pinctrl/core.c:1071: undefined reference to `pinconf_show_map' drivers/built-in.o: In function `pinctrl_init_device_debugfs': linux-2.6/drivers/pinctrl/core.c:1224: undefined reference to `pinconf_init_device_debugfs' make[1]: *** [.tmp_vmlinux1] Error 1 This patch fixes this. Signed-off-by: Viresh Kumar <viresh.kumar@st.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: allow pctldevs to decode pin config in debugfsStephen Warren2012-04-18
| | | | | | | | | | | | | | | | Add a pinconf op so that pin controller drivers can decode their pin config settings for debugfs. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: ifdef CONFIG_DEBUG_FS cleanupStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | Only provide prototypes for pin{mux,conf}.c debugfs-related functions when both CONFIG_PIN* /and/ CONFIG_DEBUG_FS are enabled, otherwise provide static inlines. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: mark non-EXPERIMENTALLinus Walleij2012-04-18
| | | | | | | | | | | | | | | | | | With the finalization of the external driver API and the device tree support, this subsystem is now mature and can be promoted to non-experimental status. Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: tegra: Add complete device tree supportStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | Implement pinctrl_ops dt_node_to_map() and dt_free_map(). These allow complete specification of the desired pinmux configuration using device tree. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * dt: Document Tegra20/30 pinctrl bindingStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a new binding for the Tegra pin controller, which is capable of defining all aspects of desired pin multiplexing and pin configuration. This is all based on the new common pinctrl bindings. Add Tegra30 binding based on Tegra20 binding. Add some basic stuff that was missing before: * How many and what reg property entries must be provided. * An example. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * dt: Move Tegra20 pin mux binding into new pinctrl directoryStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | This places the file in the new location for all pin controller bindings. Also, rename the file using the full compatible value for easier avoidance of conflicts between multiple bindings. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * dt: pinctrl: Document device tree bindingStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The core pin controller bindings define: * The fact that pin controllers expose pin configurations as nodes in device tree. * That the bindings for those pin configuration nodes is defined by the individual pin controller drivers. * A standardized set of properties for client devices to define numbered or named pin configuration states, each referring to some number of the afore-mentioned pin configuration nodes. * That the bindings for the client devices determines the set of numbered or named states that must exist. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * dt: add property iteration helpersStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds macros of_property_for_each_u32() and of_property_for_each_string(), which iterate over an array of values within a device-tree property. Usage is for example: struct property *prop; const __be32 *p; u32 u; of_property_for_each_u32(np, "propname", prop, p, u) printk("U32 value: %x\n", u); struct property *prop; const char *s; of_property_for_each_string(np, "propname", prop, s) printk("String value: %s\n", s); Based on work by Rob Herring <robherring2@gmail.com> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: implement pinctrl deferred probingLinus Walleij2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If drivers try to obtain pinctrl handles for a pin controller that has not yet registered to the subsystem, we need to be able to back out and retry with deferred probing. So let's return -EPROBE_DEFER whenever this location fails. Also downgrade the errors to info, maybe we will even set them to debug once the deferred probing is commonplace. Cc: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: add some error checking for user interfacesDong Aisheng2012-04-18
| | | | | | | | | | | | | | | | | | This patch can avoid kernel oops in case the mux or config function is not supported by driver. Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: fix pinmux_check_ops error checkingDong Aisheng2012-04-18
| | | | | | | | | | | | | | | | Do not use get_functions_count before checking. Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: replace list_*() with get_*_count()Viresh Kumar2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the SoC drivers implement list_groups() and list_functions() routines for pinctrl and pinmux. These routines continue returning zero until the selector argument is greater than total count of available groups or functions. This patch replaces these list_*() routines with get_*_count() routines, which returns the number of available selection for SoC driver. pinctrl layer will use this value to check the range it can choose. This patch fixes all user drivers for this change. There are other routines in user drivers, which have checks to check validity of selector passed to them. It is also no more required and hence removed. Documentation updated as well. Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Viresh Kumar <viresh.kumar@st.com> [Folded in fix and fixed a minor merge artifact manually] Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: mark const init data with __initconst instead of __initdataUwe Kleine-König2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As long as there is no other non-const variable marked __initdata in the same compilation unit it doesn't hurt. If there were one however compilation would fail with error: $variablename causes a section type conflict because a section containing const variables is marked read only and so cannot contain non-const variables. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * Documentation: pinctrl: add missing spi0_0 grp in exampleViresh Kumar2012-04-18
| | | | | | | | | | | | | | Missed one group from the documentation when proofreading. Signed-off-by: Viresh Kumar <viresh.kumar@st.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: fix build when CONFIG_OF && !CONFIG_PINCTRLStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | pinctrl/devicetree.c won't compile when !CONFIG_PINCTRL, since the pinctrl headers don't declare some types when !PINCTRL. Make sure pinctrl/Makefile only attempts to compile devicetree.c when OF && PINCTRL. Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: core device tree mapping table parsing supportStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | During pinctrl_get(), if the client device has a device tree node, look for the common pinctrl properties there. If found, parse the referenced device tree nodes, with the help of the pinctrl drivers, and generate mapping table entries from them. During pinctrl_put(), free any results of device tree parsing. Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: implement pinctrl_check_opsStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | Most code assumes that the pinctrl ops are present. Validate this when registering a pinctrl driver. Remove the one place in the code that was checking whether one of these non-optional ops was present. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: include <linux/bug.h> to prevent compile errorsStephen Warren2012-04-18
| | | | | | | | | | | | | | | | | | | | Macros in <linux/pinctrl/machine.h> call ARRAY_SIZE(), the definition of which eventually calls BUILD_BUG_ON_ZERO(), which is defined in <linux/bug.h>. Include that so that every .c file using the pinctrl macros doesn't have to do that itself. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * pinctrl: fix compile error if not select PINMUX supportDong Aisheng2012-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pinctrl_register_mappings is defined in core.c, so change the dependent macro from CONFIG_MUX to CONFIG_PINCTRL. The compile error message is: drivers/pinctrl/core.c:886: error: redefinition of 'pinctrl_register_mappings' include/linux/pinctrl/machine.h:160: note: previous definition of 'pinctrl_register_mappings' was here make[2]: *** [drivers/pinctrl/core.o] Error 1 make[1]: *** [drivers/pinctrl] Error 2 make: *** [drivers] Error 2 Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* | Merge branch 'ux500-gpio-pins-for-arm-soc' of ↵Arnd Bergmann2012-04-30
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/gpio Linus Walleij <linus.walleij@linaro.org> writes: This is a pull request for the GPIO and pin control stuff accumulated in the ST-Ericsson tree. Here we have: - Improvements and fixes and a custom pin config API from Rabin Vincent - Device Tree bindings from Lee Jones - Some accumulated patches by yours truly. - A MSP platform data init patch from Ola Lilja that is merged here due to dependency on pin config work. It is to be used with work being worked on in parallel in the ALSA SoC subsystem. If you wonder about the custom pin config implementation this is to be used as a transition base as I am rewriting the driver to use pinctrl. Expect a final pull request on top of this one that will move the ux500 over to pinctrl. * 'ux500-gpio-pins-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: Add support for MSP I2S-devices drivers/gpio: gpio-nomadik: Add support for irqdomains drivers/gpio: gpio-nomadik: Apply Device Tree bindings ARM: ux500: update pin handling ARM: ux500: implement pin API ARM: ux500: remove a bunch of internal pull-ups plat-nomadik: new sleep mode pincfg macros gpio/nomadik: use ioremap() instead of static mappings gpio/nomadik: support low EMI mode gpio/nomadik: fix spurious interrupts with SKE gpio/nomadik: cache [rf]w?imsc gpio/nomadik: don't set SLPM to 1 for non-wakeup pins Also includes an update to v3.4-rc4. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
| * | ARM: ux500: Add support for MSP I2S-devicesOla Lilja2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | Create devices for the MSP-blocks (MSP0, MSP1, MSP2 and MSP3) and associate it with the correct clocks in the clock-framework. Signed-off-by: Ola Lilja <ola.o.lilja@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | drivers/gpio: gpio-nomadik: Add support for irqdomainsLee Jones2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add irq domain support to the gpio-nomadik GPIO driver. This enables its users to support dynamic IRQ assignment, which is requried by Device Tree. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | drivers/gpio: gpio-nomadik: Apply Device Tree bindingsLee Jones2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | This creates Device Tree bindings for the Nomadik GPIO driver. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | ARM: ux500: update pin handlingLinus Walleij2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the Ux500 pin handling to take much more care when applying pin settings for different platforms and peripherals. This is an accumulation of a longer history of updates to the MOP500 family pin file. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | ARM: ux500: implement pin APIRabin Vincent2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement an API to allow a list of pincfgs to be remuxed to active and sleep modes, for power saving. This is not exported on purpose, because it is not to be called by drivers directly. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | ARM: ux500: remove a bunch of internal pull-upsLinus Walleij2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default configuration for a number of I2C and keypad pins was to pull-up. However on most reference designs the electronics already contain external pull-ups which means the internal pull-ups will lower the common resistance and increase power consumption on these lines, and in some reference designs the keypad inputs are not used so this will just cause problems. So remove these pull-ups and add them on demand instead if needed. Signed-off-by: Magnus Templing <magnus.templing@stericsson.com> Signed-off-by: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | plat-nomadik: new sleep mode pincfg macrosLinus Walleij2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a few sleep mode pin config macros for sleep mode for the Nomadik GPIO/pin controller. Signed-off-by: Rickard Andersson <rickard.andersson@stericsson.com> Signed-off-by: Rikard Olsson <rikard.p.olsson@stericsson.com> Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | gpio/nomadik: use ioremap() instead of static mappingsLinus Walleij2012-04-24
| | | | | | | | | | | | | | | | | | | | | | | | We were using a custom io_p2v() (physical-to-virtual) translation macro, but it's fully possible to just ioremap() this memory now, so skip use of static addresses altogether. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | gpio/nomadik: support low EMI modeRabin Vincent2012-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Low EMI (Electro-Magnetic Interference) mode means lower slew rate on the signals. The Nomadik GPIO controller supports this so create an interface to enable it. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | gpio/nomadik: fix spurious interrupts with SKERabin Vincent2012-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the pin is switching to altfunc, and there was an interrupt installed on it which has been lazy disabled, actually mask the interrupt to prevent spurious interrupts that would occur while the pin is under control of the peripheral. Only SKE does this. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | gpio/nomadik: cache [rf]w?imscRabin Vincent2012-04-23
| | | | | | | | | | | | | | | | | | | | | | | | Cache two more registers in the GPIO controller. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>