Commit 43a0a98a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC driver updates from Olof Johansson:
 "Driver updates for ARM SoCs.

  A slew of changes this release cycle.  The reset driver tree, that we
  merge through arm-soc for historical reasons, is also sizable this
  time around.

  Among the changes:

   - clps711x: Treewide changes to compatible strings, merged here for simplicity.
   - Qualcomm: SCM firmware driver cleanups, move to platform driver
   - ux500: Major cleanups, removal of old mach-specific infrastructure.
   - Atmel external bus memory driver
   - Move of brcmstb platform to the rest of bcm
   - PMC driver updates for tegra, various fixes and improvements
   - Samsung platform driver updates to support 64-bit Exynos platforms
   - Reset controller cleanups moving to devm_reset_controller_register() APIs
   - Reset controller driver for Amlogic Meson
   - Reset controller driver for Hisilicon hi6220
   - ARM SCPI power domain support"

* tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
  ARM: ux500: consolidate base platform files
  ARM: ux500: move soc_id driver to drivers/soc
  ARM: ux500: call ux500_setup_id later
  ARM: ux500: consolidate soc_device code in id.c
  ARM: ux500: remove cpu_is_u* helpers
  ARM: ux500: use CLK_OF_DECLARE()
  ARM: ux500: move l2x0 init to .init_irq
  mfd: db8500 stop passing around platform data
  ASoC: ab8500-codec: remove platform data based probe
  ARM: ux500: move ab8500_regulator_plat_data into driver
  ARM: ux500: remove unused regulator data
  soc: raspberrypi-power: add CONFIG_OF dependency
  firmware: scpi: add CONFIG_OF dependency
  video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
  input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
  pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
  serial: clps711x: Changing the compatibility string to match with the smallest supported chip
  irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
  clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
  clk: clps711x: Changing the compatibility string to match with the smallest supported chip
  ...
parents 6911a528 f8c6d88b
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "exynos4210.dtsi" #include "exynos4210.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Insignal Origen evaluation board based on Exynos4210"; model = "Insignal Origen evaluation board based on Exynos4210";
...@@ -288,8 +289,7 @@ ...@@ -288,8 +289,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
status = "okay"; status = "okay";
}; };
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
/dts-v1/; /dts-v1/;
#include "exynos4210.dtsi" #include "exynos4210.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Samsung smdkv310 evaluation board based on Exynos4210"; model = "Samsung smdkv310 evaluation board based on Exynos4210";
...@@ -133,8 +134,7 @@ ...@@ -133,8 +134,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
status = "okay"; status = "okay";
}; };
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "exynos4412.dtsi" #include "exynos4412.dtsi"
#include "exynos4412-ppmu-common.dtsi" #include "exynos4412-ppmu-common.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
chosen { chosen {
...@@ -499,6 +500,11 @@ ...@@ -499,6 +500,11 @@
clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
}; };
&mfc {
memory-region = <&mfc_left>, <&mfc_right>;
status = "okay";
};
&mixer { &mixer {
status = "okay"; status = "okay";
}; };
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "exynos4412.dtsi" #include "exynos4412.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Insignal Origen evaluation board based on Exynos4412"; model = "Insignal Origen evaluation board based on Exynos4412";
...@@ -466,8 +467,7 @@ ...@@ -466,8 +467,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
status = "okay"; status = "okay";
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
/dts-v1/; /dts-v1/;
#include "exynos4412.dtsi" #include "exynos4412.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Samsung SMDK evaluation board based on Exynos4412"; model = "Samsung SMDK evaluation board based on Exynos4412";
...@@ -112,8 +113,7 @@ ...@@ -112,8 +113,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
status = "okay"; status = "okay";
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include "exynos5250.dtsi" #include "exynos5250.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Insignal Arndale evaluation board based on EXYNOS5250"; model = "Insignal Arndale evaluation board based on EXYNOS5250";
...@@ -516,8 +517,7 @@ ...@@ -516,8 +517,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include "exynos5250.dtsi" #include "exynos5250.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "SAMSUNG SMDK5250 board based on EXYNOS5250"; model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
...@@ -344,8 +345,7 @@ ...@@ -344,8 +345,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include "exynos5250.dtsi" #include "exynos5250.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Google Spring"; model = "Google Spring";
...@@ -425,8 +426,7 @@ ...@@ -425,8 +426,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/clock/samsung,s2mps11.h> #include <dt-bindings/clock/samsung,s2mps11.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Insignal Arndale Octa evaluation board based on EXYNOS5420"; model = "Insignal Arndale Octa evaluation board based on EXYNOS5420";
...@@ -347,8 +348,7 @@ ...@@ -347,8 +348,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <dt-bindings/regulator/maxim,max77802.h> #include <dt-bindings/regulator/maxim,max77802.h>
#include "exynos5420.dtsi" #include "exynos5420.dtsi"
#include "exynos5420-cpus.dtsi" #include "exynos5420-cpus.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Google Peach Pit Rev 6+"; model = "Google Peach Pit Rev 6+";
...@@ -702,8 +703,7 @@ ...@@ -702,8 +703,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "exynos5420.dtsi" #include "exynos5420.dtsi"
#include "exynos5420-cpus.dtsi" #include "exynos5420-cpus.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Samsung SMDK5420 board based on EXYNOS5420"; model = "Samsung SMDK5420 board based on EXYNOS5420";
...@@ -355,8 +356,7 @@ ...@@ -355,8 +356,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "exynos5800.dtsi" #include "exynos5800.dtsi"
#include "exynos5422-cpus.dtsi" #include "exynos5422-cpus.dtsi"
#include "exynos5422-cpu-thermal.dtsi" #include "exynos5422-cpu-thermal.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
memory { memory {
...@@ -406,8 +407,7 @@ ...@@ -406,8 +407,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <dt-bindings/regulator/maxim,max77802.h> #include <dt-bindings/regulator/maxim,max77802.h>
#include "exynos5800.dtsi" #include "exynos5800.dtsi"
#include "exynos5420-cpus.dtsi" #include "exynos5420-cpus.dtsi"
#include "exynos-mfc-reserved-memory.dtsi"
/ { / {
model = "Google Peach Pi Rev 10+"; model = "Google Peach Pi Rev 10+";
...@@ -670,8 +671,7 @@ ...@@ -670,8 +671,7 @@
}; };
&mfc { &mfc {
samsung,mfc-r = <0x43000000 0x800000>; memory-region = <&mfc_left>, <&mfc_right>;
samsung,mfc-l = <0x51000000 0x800000>;
}; };
&mmc_0 { &mmc_0 {
......
...@@ -18,6 +18,7 @@ menuconfig ARCH_EXYNOS ...@@ -18,6 +18,7 @@ menuconfig ARCH_EXYNOS
select EXYNOS_THERMAL select EXYNOS_THERMAL
select EXYNOS_PMU select EXYNOS_PMU
select EXYNOS_SROM select EXYNOS_SROM
select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
select GPIOLIB select GPIOLIB
select HAVE_ARM_SCU if SMP select HAVE_ARM_SCU if SMP
select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_I2C if I2C
......
...@@ -13,7 +13,6 @@ obj-$(CONFIG_ARCH_EXYNOS) += exynos.o exynos-smc.o firmware.o ...@@ -13,7 +13,6 @@ obj-$(CONFIG_ARCH_EXYNOS) += exynos.o exynos-smc.o firmware.o
obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o
obj-$(CONFIG_PM_SLEEP) += suspend.o obj-$(CONFIG_PM_SLEEP) += suspend.o
obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
obj-$(CONFIG_SMP) += platsmp.o headsmp.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o
...@@ -23,5 +22,3 @@ AFLAGS_sleep.o :=-Wa,-march=armv7-a$(plus_sec) ...@@ -23,5 +22,3 @@ AFLAGS_sleep.o :=-Wa,-march=armv7-a$(plus_sec)
obj-$(CONFIG_EXYNOS5420_MCPM) += mcpm-exynos.o obj-$(CONFIG_EXYNOS5420_MCPM) += mcpm-exynos.o
CFLAGS_mcpm-exynos.o += -march=armv7-a CFLAGS_mcpm-exynos.o += -march=armv7-a
obj-$(CONFIG_S5P_DEV_MFC) += s5p-dev-mfc.o
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include "common.h" #include "common.h"
#include "mfc.h"
static struct map_desc exynos4_iodesc[] __initdata = { static struct map_desc exynos4_iodesc[] __initdata = {
{ {
...@@ -235,23 +234,6 @@ static char const *const exynos_dt_compat[] __initconst = { ...@@ -235,23 +234,6 @@ static char const *const exynos_dt_compat[] __initconst = {
NULL NULL
}; };
static void __init exynos_reserve(void)
{
#ifdef CONFIG_S5P_DEV_MFC
int i;
char *mfc_mem[] = {
"samsung,mfc-v5",
"samsung,mfc-v6",
"samsung,mfc-v7",
"samsung,mfc-v8",
};
for (i = 0; i < ARRAY_SIZE(mfc_mem); i++)
if (of_scan_flat_dt(s5p_fdt_alloc_mfc_mem, mfc_mem[i]))
break;
#endif
}
static void __init exynos_dt_fixup(void) static void __init exynos_dt_fixup(void)
{ {
/* /*
...@@ -273,6 +255,5 @@ DT_MACHINE_START(EXYNOS_DT, "SAMSUNG EXYNOS (Flattened Device Tree)") ...@@ -273,6 +255,5 @@ DT_MACHINE_START(EXYNOS_DT, "SAMSUNG EXYNOS (Flattened Device Tree)")
.init_machine = exynos_dt_machine_init, .init_machine = exynos_dt_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.dt_compat = exynos_dt_compat, .dt_compat = exynos_dt_compat,
.reserve = exynos_reserve,
.dt_fixup = exynos_dt_fixup, .dt_fixup = exynos_dt_fixup,
MACHINE_END MACHINE_END
/*
* Copyright (C) 2013 Samsung Electronics Co.Ltd
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#ifndef __MACH_EXYNOS_MFC_H
#define __MACH_EXYNOS_MFC_H __FILE__
int __init s5p_fdt_alloc_mfc_mem(unsigned long node, const char *uname,
int depth, void *data);
#endif /* __MACH_EXYNOS_MFC_H */
/*
* Copyright (C) 2010-2011 Samsung Electronics Co.Ltd
*
* Base S5P MFC resource and device definitions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/memblock.h>
#include <linux/ioport.h>
#include <linux/of_fdt.h>
#include <linux/of.h>
static struct platform_device s5p_device_mfc_l;
static struct platform_device s5p_device_mfc_r;
struct s5p_mfc_dt_meminfo {
unsigned long loff;
unsigned long lsize;
unsigned long roff;
unsigned long rsize;
char *compatible;
};
struct s5p_mfc_reserved_mem {
phys_addr_t base;
unsigned long size;
struct device *dev;
};
static struct s5p_mfc_reserved_mem s5p_mfc_mem[2] __initdata;
static void __init s5p_mfc_reserve_mem(phys_addr_t rbase, unsigned int rsize,
phys_addr_t lbase, unsigned int lsize)
{
int i;
s5p_mfc_mem[0].dev = &s5p_device_mfc_r.dev;
s5p_mfc_mem[0].base = rbase;
s5p_mfc_mem[0].size = rsize;
s5p_mfc_mem[1].dev = &s5p_device_mfc_l.dev;
s5p_mfc_mem[1].base = lbase;
s5p_mfc_mem[1].size = lsize;
for (i = 0; i < ARRAY_SIZE(s5p_mfc_mem); i++) {
struct s5p_mfc_reserved_mem *area = &s5p_mfc_mem[i];
if (memblock_remove(area->base, area->size)) {
printk(KERN_ERR "Failed to reserve memory for MFC device (%ld bytes at 0x%08lx)\n",
area->size, (unsigned long) area->base);
area->base = 0;
}
}
}
int __init s5p_fdt_alloc_mfc_mem(unsigned long node, const char *uname,
int depth, void *data)
{
const __be32 *prop;
int len;
struct s5p_mfc_dt_meminfo mfc_mem;
if (!data)
return 0;
if (!of_flat_dt_is_compatible(node, data))
return 0;
prop = of_get_flat_dt_prop(node, "samsung,mfc-l", &len);
if (!prop || (len != 2 * sizeof(unsigned long)))
return 0;
mfc_mem.loff = be32_to_cpu(prop[0]);
mfc_mem.lsize = be32_to_cpu(prop[1]);
prop = of_get_flat_dt_prop(node, "samsung,mfc-r", &len);
if (!prop || (len != 2 * sizeof(unsigned long)))
return 0;
mfc_mem.roff = be32_to_cpu(prop[0]);
mfc_mem.rsize = be32_to_cpu(prop[1]);
s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize,
mfc_mem.loff, mfc_mem.lsize);
return 1;
}
...@@ -1242,11 +1242,6 @@ static struct pwm_omap_dmtimer_pdata __maybe_unused pwm_dmtimer_pdata = { ...@@ -1242,11 +1242,6 @@ static struct pwm_omap_dmtimer_pdata __maybe_unused pwm_dmtimer_pdata = {
#if defined(CONFIG_IR_RX51) || defined(CONFIG_IR_RX51_MODULE) #if defined(CONFIG_IR_RX51) || defined(CONFIG_IR_RX51_MODULE)
static struct lirc_rx51_platform_data rx51_lirc_data = { static struct lirc_rx51_platform_data rx51_lirc_data = {
.set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat, .set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat,
.pwm_timer = 9, /* Use GPT 9 for CIR */
#if IS_ENABLED(CONFIG_OMAP_DM_TIMER)
.dmtimer = &pwm_dmtimer_pdata,
#endif
}; };
static struct platform_device rx51_lirc_device = { static struct platform_device rx51_lirc_device = {
......
...@@ -274,8 +274,6 @@ static struct platform_device omap3_rom_rng_device = { ...@@ -274,8 +274,6 @@ static struct platform_device omap3_rom_rng_device = {
}, },
}; };
static struct platform_device rx51_lirc_device;
static void __init nokia_n900_legacy_init(void) static void __init nokia_n900_legacy_init(void)
{ {
hsmmc2_internal_input_clk(); hsmmc2_internal_input_clk();
...@@ -294,10 +292,7 @@ static void __init nokia_n900_legacy_init(void) ...@@ -294,10 +292,7 @@ static void __init nokia_n900_legacy_init(void)
pr_info("RX-51: Registering OMAP3 HWRNG device\n"); pr_info("RX-51: Registering OMAP3 HWRNG device\n");
platform_device_register(&omap3_rom_rng_device); platform_device_register(&omap3_rom_rng_device);
} }
platform_device_register(&rx51_lirc_device);
} }
static void __init omap3_tao3530_legacy_init(void) static void __init omap3_tao3530_legacy_init(void)
...@@ -492,10 +487,6 @@ static struct pwm_omap_dmtimer_pdata pwm_dmtimer_pdata = { ...@@ -492,10 +487,6 @@ static struct pwm_omap_dmtimer_pdata pwm_dmtimer_pdata = {
static struct lirc_rx51_platform_data __maybe_unused rx51_lirc_data = { static struct lirc_rx51_platform_data __maybe_unused rx51_lirc_data = {
.set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat, .set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat,
.pwm_timer = 9, /* Use GPT 9 for CIR */
#if IS_ENABLED(CONFIG_OMAP_DM_TIMER)
.dmtimer = &pwm_dmtimer_pdata,
#endif
}; };
static struct platform_device __maybe_unused rx51_lirc_device = { static struct platform_device __maybe_unused rx51_lirc_device = {
...@@ -543,6 +534,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { ...@@ -543,6 +534,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
&omap3_iommu_pdata), &omap3_iommu_pdata),
OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x4809c000, "4809c000.mmc", &mmc_pdata[0]), OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x4809c000, "4809c000.mmc", &mmc_pdata[0]),
OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x480b4000, "480b4000.mmc", &mmc_pdata[1]), OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x480b4000, "480b4000.mmc", &mmc_pdata[1]),
OF_DEV_AUXDATA("nokia,n900-ir", 0, "n900-ir", &rx51_lirc_data),
/* Only on am3517 */ /* Only on am3517 */
OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment