diff options
author | Andrey Konovalov <andrey.konovalov@linaro.org> | 2013-03-27 21:47:59 +0400 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2013-03-27 21:47:59 +0400 |
commit | ec622f5d4cce06a87b201022971f425313eb5511 (patch) | |
tree | f5a879efa4a5004f2c75bd1f2ada98519353e469 | |
parent | a55ec6d2df5b7be5560ae470d0a0ce92e736c16c (diff) | |
parent | 49df78e8c17c57c7f0f70311efe45f54bde0c936 (diff) |
Merge branch 'tracking-snowball-fixes-13.03' into merge-linux-linaroll-20130327.0
-rw-r--r-- | arch/arm/boot/dts/dbx5x0.dtsi | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/snowball.dts | 8 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-sdi.c | 1 | ||||
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 49 | ||||
-rw-r--r-- | linaro/configs/u8500.conf | 41 |
5 files changed, 48 insertions, 55 deletions
diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi index 9de93096601a..aaa63d0a8096 100644 --- a/arch/arm/boot/dts/dbx5x0.dtsi +++ b/arch/arm/boot/dts/dbx5x0.dtsi @@ -191,8 +191,8 @@ prcmu: prcmu@80157000 { compatible = "stericsson,db8500-prcmu"; - reg = <0x80157000 0x1000>; - reg-names = "prcmu"; + reg = <0x80157000 0x1000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>; + reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm"; interrupts = <0 47 0x4>; #address-cells = <1>; #size-cells = <1>; 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/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index 051b62c27102..7f2cb6c5e2c1 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c @@ -81,7 +81,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = { #endif struct mmci_platform_data mop500_sdi0_data = { - .ios_handler = mop500_sdi0_ios_handler, .ocr_mask = MMC_VDD_29_30, .f_max = 50000000, .capabilities = MMC_CAP_4_BIT_DATA | 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 |