Commit cba26c5a authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'ux500-fixes-for-v3.9' of...

Merge tag 'ux500-fixes-for-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into fixes

From Linus Walleij <linus.walleij@stericsson.com>:

Fixes boot regressions on Device Tree:
- Get TCPM and TCDM locations from the device tree
- Skip passing the ios_handler for the MMCI
- Enable the ethernet clock for Snowball

* tag 'ux500-fixes-for-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ARM: ux500: Enable the clock controlling Ethernet on Snowball
  ARM: ux500: Stop passing ios_handler() as an MMCI power controlling call-back
  ARM: ux500: Apply the TCPM and TCDM locations and sizes to dbx5x0 DT
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 68843129 265c3c0a
...@@ -191,8 +191,8 @@ dma-controller@801C0000 { ...@@ -191,8 +191,8 @@ dma-controller@801C0000 {
prcmu: prcmu@80157000 { prcmu: prcmu@80157000 {
compatible = "stericsson,db8500-prcmu"; compatible = "stericsson,db8500-prcmu";
reg = <0x80157000 0x1000>; reg = <0x80157000 0x1000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
reg-names = "prcmu"; reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
interrupts = <0 47 0x4>; interrupts = <0 47 0x4>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
......
...@@ -81,7 +81,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = { ...@@ -81,7 +81,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = {
#endif #endif
struct mmci_platform_data mop500_sdi0_data = { struct mmci_platform_data mop500_sdi0_data = {
.ios_handler = mop500_sdi0_ios_handler,
.ocr_mask = MMC_VDD_29_30, .ocr_mask = MMC_VDD_29_30,
.f_max = 50000000, .f_max = 50000000,
.capabilities = MMC_CAP_4_BIT_DATA | .capabilities = MMC_CAP_4_BIT_DATA |
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/platform_data/i2c-nomadik.h> #include <linux/platform_data/i2c-nomadik.h>
...@@ -439,6 +440,15 @@ static void mop500_prox_deactivate(struct device *dev) ...@@ -439,6 +440,15 @@ static void mop500_prox_deactivate(struct device *dev)
regulator_put(prox_regulator); regulator_put(prox_regulator);
} }
void mop500_snowball_ethernet_clock_enable(void)
{
struct clk *clk;
clk = clk_get_sys("fsmc", NULL);
if (!IS_ERR(clk))
clk_prepare_enable(clk);
}
static struct cryp_platform_data u8500_cryp1_platform_data = { static struct cryp_platform_data u8500_cryp1_platform_data = {
.mem_to_engine = { .mem_to_engine = {
.dir = STEDMA40_MEM_TO_PERIPH, .dir = STEDMA40_MEM_TO_PERIPH,
...@@ -683,6 +693,8 @@ static void __init snowball_init_machine(void) ...@@ -683,6 +693,8 @@ static void __init snowball_init_machine(void)
mop500_audio_init(parent); mop500_audio_init(parent);
mop500_uart_init(parent); mop500_uart_init(parent);
mop500_snowball_ethernet_clock_enable();
/* This board has full regulator constraints */ /* This board has full regulator constraints */
regulator_has_full_constraints(); regulator_has_full_constraints();
} }
......
...@@ -104,6 +104,7 @@ void __init mop500_pinmaps_init(void); ...@@ -104,6 +104,7 @@ void __init mop500_pinmaps_init(void);
void __init snowball_pinmaps_init(void); void __init snowball_pinmaps_init(void);
void __init hrefv60_pinmaps_init(void); void __init hrefv60_pinmaps_init(void);
void mop500_audio_init(struct device *parent); void mop500_audio_init(struct device *parent);
void mop500_snowball_ethernet_clock_enable(void);
int __init mop500_uib_init(void); int __init mop500_uib_init(void);
void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
......
...@@ -312,9 +312,10 @@ static void __init u8500_init_machine(void) ...@@ -312,9 +312,10 @@ static void __init u8500_init_machine(void)
/* Pinmaps must be in place before devices register */ /* Pinmaps must be in place before devices register */
if (of_machine_is_compatible("st-ericsson,mop500")) if (of_machine_is_compatible("st-ericsson,mop500"))
mop500_pinmaps_init(); mop500_pinmaps_init();
else if (of_machine_is_compatible("calaosystems,snowball-a9500")) else if (of_machine_is_compatible("calaosystems,snowball-a9500")) {
snowball_pinmaps_init(); snowball_pinmaps_init();
else if (of_machine_is_compatible("st-ericsson,hrefv60+")) mop500_snowball_ethernet_clock_enable();
} else if (of_machine_is_compatible("st-ericsson,hrefv60+"))
hrefv60_pinmaps_init(); hrefv60_pinmaps_init();
else if (of_machine_is_compatible("st-ericsson,ccu9540")) {} else if (of_machine_is_compatible("st-ericsson,ccu9540")) {}
/* TODO: Add pinmaps for ccu9540 board. */ /* TODO: Add pinmaps for ccu9540 board. */
......
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