diff options
author | Andrey Konovalov <andrey.konovalov@linaro.org> | 2013-03-25 23:45:50 +0400 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2013-03-25 23:45:50 +0400 |
commit | b0c8b358e0066a38bb2094269cfd4f2bb898a2c4 (patch) | |
tree | 1547780021c54b7f3b173c044784cdd2ba92fa29 | |
parent | 55967f00d2a49ae737488cd8cee334aaa41d100b (diff) | |
parent | 37a640f2efbcc34e17684f0485d75cfcc70c12ff (diff) |
Merge branch 'tracking-snowball-fixes-13.03' into merge-linux-linarosamsung-linux-3.9-rc3-2013.03ll-20130325.0
-rw-r--r-- | arch/arm/boot/dts/snowball.dts | 8 | ||||
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 49 | ||||
-rw-r--r-- | linaro/configs/u8500.conf | 41 |
3 files changed, 46 insertions, 52 deletions
diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts index d3ec32f6b790..6195ffa8ee02 100644 --- a/arch/arm/boot/dts/snowball.dts +++ b/arch/arm/boot/dts/snowball.dts @@ -126,6 +126,14 @@ }; }; + prcmu-tcpm-per4@801b0000 { + reg = <0x801b0000 0x1000>; + }; + + prcmu-tcdm-per4@801b8000 { + reg = <0x801b8000 0x1000>; + }; + external-bus@50000000 { status = "okay"; diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index 21f261bf9e95..a998edc73c99 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c @@ -17,6 +17,8 @@ #include <linux/err.h> #include <linux/spinlock.h> #include <linux/io.h> +#include <linux/of.h> +#include <linux/of_address.h> #include <linux/slab.h> #include <linux/mutex.h> #include <linux/completion.h> @@ -2790,19 +2792,29 @@ static int db8500_irq_init(struct device_node *np) } static void dbx500_fw_version_init(struct platform_device *pdev, - u32 version_offset) + u32 version_offset, + struct device_node *np) { + struct device_node *tcpm_np; struct resource *res; - void __iomem *tcpm_base; + void __iomem *tcpm_base = NULL; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "prcmu-tcpm"); if (!res) { - dev_err(&pdev->dev, - "Error: no prcmu tcpm memory region provided\n"); - return; - } - tcpm_base = ioremap(res->start, resource_size(res)); + if (np) { + tcpm_np = of_find_node_by_name(np->parent, + "prcmu-tcpm-per4"); + if (!tcpm_np) { + dev_err(&pdev->dev, + "no prcmu tcpm mem region provided\n"); + return; + } + tcpm_base = of_iomap(tcpm_np, 0); + } + } else + tcpm_base = ioremap(res->start, resource_size(res)); + if (tcpm_base != NULL) { u32 version; @@ -3147,21 +3159,30 @@ static void db8500_prcmu_update_cpufreq(void) */ static int db8500_prcmu_probe(struct platform_device *pdev) { - struct device_node *np = pdev->dev.of_node; struct prcmu_pdata *pdata = dev_get_platdata(&pdev->dev); + struct device_node *np = pdev->dev.of_node; + struct device_node *tcdm_np; int irq = 0, err = 0, i; struct resource *res; init_prcm_registers(); - dbx500_fw_version_init(pdev, pdata->version_offset); + dbx500_fw_version_init(pdev, pdata->version_offset, np); res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "prcmu-tcdm"); if (!res) { - dev_err(&pdev->dev, "no prcmu tcdm region provided\n"); - return -ENOENT; - } - tcdm_base = devm_ioremap(&pdev->dev, res->start, - resource_size(res)); + if (np) { + tcdm_np = of_find_node_by_name(np->parent, + "prcmu-tcdm-per4"); + if (!tcdm_np) { + dev_err(&pdev->dev, + "no prcmu tcdm region provided\n"); + return -ENOENT; + } + tcdm_base = of_iomap(tcdm_np, 0); + } + } else + tcdm_base = devm_ioremap(&pdev->dev, res->start, + resource_size(res)); /* Clean up the mailbox interrupts after pre-kernel code. */ writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR); diff --git a/linaro/configs/u8500.conf b/linaro/configs/u8500.conf index 61c1f232de80..86e294faa2f6 100644 --- a/linaro/configs/u8500.conf +++ b/linaro/configs/u8500.conf @@ -1,47 +1,24 @@ -CONFIG_EXPERIMENTAL=y # CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_BLK_DEV_INITRD=y CONFIG_KALLSYMS_ALL=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_U8500=y CONFIG_MACH_HREFV60=y CONFIG_MACH_SNOWBALL=y CONFIG_MACH_UX500_DT=y -CONFIG_SMP=y CONFIG_NR_CPUS=2 CONFIG_PREEMPT=y -CONFIG_AEABI=y CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8" -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y CONFIG_VFP=y CONFIG_NEON=y CONFIG_PM_RUNTIME=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IPV6=y CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_IPV6_SIT=m -CONFIG_NETFILTER=y CONFIG_PHONET=y # CONFIG_WIRELESS is not set CONFIG_CAIF=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_SENSORS_BH1780=y -CONFIG_NETDEVICES=y CONFIG_SMSC911X=y CONFIG_SMSC_PHY=y # CONFIG_WLAN is not set @@ -55,7 +32,6 @@ CONFIG_KEYBOARD_TC3589X=y # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_BU21013=y -CONFIG_INPUT_MISC=y CONFIG_INPUT_AB8500_PONKEY=y # CONFIG_SERIO is not set CONFIG_VT_HW_CONSOLE_BINDING=y @@ -63,17 +39,16 @@ CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_NOMADIK=y CONFIG_SPI=y CONFIG_SPI_PL022=y CONFIG_GPIO_STMPE=y CONFIG_GPIO_TC3589X=y -CONFIG_POWER_SUPPLY=y -CONFIG_AB8500_BM=y -CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y CONFIG_MFD_STMPE=y CONFIG_MFD_TC3589X=y CONFIG_AB8500_CORE=y +CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_AB8500=y CONFIG_USB_GADGET=y CONFIG_AB8500_USB=y @@ -93,23 +68,13 @@ CONFIG_STE_DMA40=y CONFIG_STAGING=y CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y CONFIG_HSEM_U8500=y -CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS=y -CONFIG_EXT4_FS=y -CONFIG_VFAT_FS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y CONFIG_CONFIGFS_FS=m # CONFIG_MISC_FILESYSTEMS is not set CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ISO8859_1=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_FS=y CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set |