Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 21:33:21 +0000 (14:33 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 21:33:21 +0000 (14:33 -0700)
Pull ARM SoC driver specific changes from Arnd Bergmann:
 "These changes are all driver specific and cross over between arm-soc
  contents and some other subsystem, in these cases cpufreq, crypto,
  dma, pinctrl, mailbox and usb, and the subsystem owners agreed to have
  these changes merged through arm-soc.

  As we proceed to untangle the dependencies between platform code and
  driver code, the amount of changes in this category is fortunately
  shrinking, for 3.11 we have 16 branches here and 101 non-merge
  changesets, the majority of which are for the stedma40 dma engine
  driver used in the ux500 platform.  Cleaning up that code touches
  multiple subsystems, but gets rid of the dependency in the end.

  The mailbox code moved out from mach-omap2 to drivers/mailbox is an
  intermediate step and is still omap specific at the moment.  Patches
  exist to generalize the subsystem and add other drivers with the same
  API, but those did not make it for 3.11."

* tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (101 commits)
  crypto: ux500: use dmaengine_submit API
  crypto: ux500: use dmaengine_prep_slave_sg API
  crypto: ux500: use dmaengine_device_control API
  crypto: ux500/crypt: add missing __iomem qualifiers
  crypto: ux500/hash: add missing static qualifiers
  crypto: ux500/hash: use readl on iomem addresses
  dmaengine: ste_dma40: Declare memcpy config as static
  ARM: ux500: Remove mop500_snowball_ethernet_clock_enable()
  ARM: ux500: Correct the EN_3v3 regulator's on/off GPIO
  ARM: ux500: Provide a AB8500 GPIO Device Tree node
  gpio: rcar: fix gpio_rcar_of_table
  gpio-rcar: Remove #ifdef CONFIG_OF around OF-specific sections
  gpio-rcar: Reference core gpio documentation in the DT bindings
  clk: exynos5250: Add enum entries for divider clock of i2s1 and i2s2
  ARM: dts: Update Samsung I2S documentation
  ARM: dts: add clock provider information for i2s controllers in Exynos5250
  ARM: dts: add Exynos audio subsystem clock controller node
  clk: samsung: register audio subsystem clocks using common clock framework
  ARM: dts: use #include for all device trees for Samsung
  pinctrl: s3c24xx: use correct header for chained_irq functions
  ...

21 files changed:
1  2 
arch/arm/Kconfig
arch/arm/boot/dts/dbx5x0.dtsi
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5440-ssdk5440.dts
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/omap3430-sdp.dts
arch/arm/boot/dts/snowball.dts
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-ux500/board-mop500-sdi.c
arch/arm/mach-ux500/cpu-db8500.c
arch/arm/mach-ux500/devices-db8500.c
drivers/clk/samsung/clk-exynos5250.c
drivers/crypto/ux500/cryp/cryp_core.c
drivers/crypto/ux500/hash/hash_core.c
drivers/pinctrl/Kconfig
drivers/usb/gadget/Kconfig
drivers/usb/musb/ux500.c
drivers/usb/musb/ux500_dma.c

Simple merge
index a082f0ba1ddb2b8642fd8622b2535d7d912f86b2,544824b512e1922da257b595049d3536751421ff..a1529455f0813b0bec139ae9d3266e5e50531119
                                interrupt-controller;
                                #interrupt-cells = <2>;
  
+                               ab8500_gpio: ab8500-gpio {
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                               };
                                ab8500-rtc {
                                        compatible = "stericsson,ab8500-rtc";
 -                                      interrupts = <17 0x4
 -                                                    18 0x4>;
 +                                      interrupts = <17 IRQ_TYPE_LEVEL_HIGH
 +                                                    18 IRQ_TYPE_LEVEL_HIGH>;
                                        interrupt-names = "60S", "ALARM";
                                };
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 403c211e35d0438fe4635a32c593885faeae1a30,73762accd128bf63f35f3d51535d02ff50ab373d..aef96e45cb2049c2cebba2ad50e1e8a0a8036225
@@@ -20,7 -19,9 +20,8 @@@
  #include <linux/of.h>
  #include <linux/pinctrl/machine.h>
  #include <linux/platform_data/omap4-keypad.h>
 -#include <linux/platform_data/omap_ocp2scp.h>
 +#include <linux/wl12xx.h>
+ #include <linux/platform_data/mailbox-omap.h>
 -#include <linux/usb/omap_control_usb.h>
  
  #include <asm/mach-types.h>
  #include <asm/mach/map.h>
index 0adb2b85f830ff5d17b8285802b9feeef4fc9038,7ef71198fc1121f049a5f1fd6362b18cb1c60b2f..6d9252e081ce39af2b2e94452b36a6402c429197
@@@ -28,10 -28,9 +28,10 @@@ config CPU_S3C241
        select CPU_ARM920T
        select CPU_LLSERIAL_S3C2410
        select S3C2410_CLOCK
-       select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX
+       select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ
        select S3C2410_PM if PM
        select SAMSUNG_HRT
 +      select SAMSUNG_WDT_RESET
        help
          Support for S3C2410 and S3C2410A family from the S3C24XX line
          of Samsung Mobile CPUs.
index 7669a49fb6fbadc5c084def099100315dec192e4,cd4b0a08bbf2a1487859268f71f5aa14ed873852..12eee8167525dfd3f6e8cf6bec401408516b9dd1
@@@ -330,16 -284,8 +299,13 @@@ static void __init u8500_init_machine(v
        else if (of_machine_is_compatible("st-ericsson,ccu9540")) {}
                /* TODO: Add pinmaps for ccu9540 board. */
  
-       /* TODO: Export SoC, USB, cpu-freq and DMA40 */
-       parent = u8500_of_init_devices();
 -      /* automatically probe child nodes of db8500 device */
 -      of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
 +      /* automatically probe child nodes of dbx5x0 devices */
 +      if (of_machine_is_compatible("st-ericsson,u8540"))
 +              of_platform_populate(NULL, u8500_local_bus_nodes,
 +                                   u8540_auxdata_lookup, parent);
 +      else
 +              of_platform_populate(NULL, u8500_local_bus_nodes,
 +                                   u8500_auxdata_lookup, parent);
  }
  
  static const char * stericsson_dt_platform_compat[] = {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 028ff4d07dc74a3346df56c6a677e4e8d95bbf9e,f0beee7b868e817a7c6d4ca325f8f42917992782..fce71b605936ed228bc104efd2d5d60c0959af2f
@@@ -187,10 -195,39 +195,40 @@@ static const struct musb_platform_ops u
        .set_vbus       = ux500_musb_set_vbus,
  };
  
+ static struct musb_hdrc_platform_data *
+ ux500_of_probe(struct platform_device *pdev, struct device_node *np)
+ {
+       struct musb_hdrc_platform_data *pdata;
+       const char *mode;
+       int strlen;
+       pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
+       if (!pdata)
+               return NULL;
+       mode = of_get_property(np, "dr_mode", &strlen);
+       if (!mode) {
+               dev_err(&pdev->dev, "No 'dr_mode' property found\n");
+               return NULL;
+       }
+       if (strlen > 0) {
+               if (!strcmp(mode, "host"))
+                       pdata->mode = MUSB_HOST;
+               if (!strcmp(mode, "otg"))
+                       pdata->mode = MUSB_OTG;
+               if (!strcmp(mode, "peripheral"))
+                       pdata->mode = MUSB_PERIPHERAL;
+       }
+       return pdata;
+ }
  static int ux500_probe(struct platform_device *pdev)
  {
 +      struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
+       struct device_node              *np = pdev->dev.of_node;
        struct platform_device          *musb;
        struct ux500_glue               *glue;
        struct clk                      *clk;
Simple merge