Skip to content

Commit c4aed35

Browse files
committed
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Arnd Bergmann: "Small fixes on multiple ARM platforms - A build regression from a previous fix on dove and mv78xx0 - Two fixes for recently (3.5-rc1) changed mmp/pxa code - multiple omap2+ bug fixes - two trivial fixes for i.MX - one v3.5 regression for mxs" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: apx4devkit: fix FEC enabling PHY clock ARM: OMAP2+: hwmod data: Fix wrong McBSP clock alias on OMAP4 ARM: OMAP4: hwmod data: temporarily comment out data for the usb_host_fs and aess IP blocks ARM: Orion: Fix WDT compile for Dove and MV78xx0 ARM: mmp: remove mach/gpio-pxa.h ARM: imx: assert SCC gate stays enabled ARM: OMAP4: TWL6030: ensure sys_nirq1 is mux'd and wakeup enabled ARM: OMAP2: Overo: init I2C before MMC to fix MMC suspend/resume failure ARM: imx27_visstrim_m10: Do not include <asm/system.h> ARM: pxa: hx4700: Fix basic suspend/resume
2 parents 6bc5154 + e15ebe0 commit c4aed35

File tree

12 files changed

+56
-47
lines changed

12 files changed

+56
-47
lines changed

arch/arm/mach-dove/include/mach/bridge-regs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,6 @@
5050
#define POWER_MANAGEMENT (BRIDGE_VIRT_BASE | 0x011c)
5151

5252
#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
53+
#define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE | 0x0300)
5354

5455
#endif

arch/arm/mach-dove/include/mach/dove.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878

7979
/* North-South Bridge */
8080
#define BRIDGE_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x20000)
81+
#define BRIDGE_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x20000)
8182

8283
/* Cryptographic Engine */
8384
#define DOVE_CRYPT_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x30000)

arch/arm/mach-imx/clk-imx35.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ int __init mx35_clocks_init()
201201
pr_err("i.MX35 clk %d: register failed with %ld\n",
202202
i, PTR_ERR(clk[i]));
203203

204-
205204
clk_register_clkdev(clk[pata_gate], NULL, "pata_imx");
206205
clk_register_clkdev(clk[can1_gate], NULL, "flexcan.0");
207206
clk_register_clkdev(clk[can2_gate], NULL, "flexcan.1");
@@ -264,6 +263,14 @@ int __init mx35_clocks_init()
264263
clk_prepare_enable(clk[iim_gate]);
265264
clk_prepare_enable(clk[emi_gate]);
266265

266+
/*
267+
* SCC is needed to boot via mmc after a watchdog reset. The clock code
268+
* before conversion to common clk also enabled UART1 (which isn't
269+
* handled here and not needed for mmc) and IIM (which is enabled
270+
* unconditionally above).
271+
*/
272+
clk_prepare_enable(clk[scc_gate]);
273+
267274
imx_print_silicon_rev("i.MX35", mx35_revision());
268275

269276
#ifdef CONFIG_MXC_USE_EPIT

arch/arm/mach-imx/mach-imx27_visstrim_m10.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include <asm/mach-types.h>
3939
#include <asm/mach/arch.h>
4040
#include <asm/mach/time.h>
41-
#include <asm/system.h>
41+
#include <asm/system_info.h>
4242
#include <mach/common.h>
4343
#include <mach/iomux-mx27.h>
4444

arch/arm/mach-mmp/include/mach/gpio-pxa.h

Lines changed: 0 additions & 29 deletions
This file was deleted.

arch/arm/mach-mv78xx0/include/mach/bridge-regs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,6 @@
3131
#define IRQ_MASK_HIGH_OFF 0x0014
3232

3333
#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
34+
#define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE | 0x0300)
3435

3536
#endif

arch/arm/mach-mv78xx0/include/mach/mv78xx0.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#define MV78XX0_CORE0_REGS_PHYS_BASE 0xf1020000
4343
#define MV78XX0_CORE1_REGS_PHYS_BASE 0xf1024000
4444
#define MV78XX0_CORE_REGS_VIRT_BASE 0xfe400000
45+
#define MV78XX0_CORE_REGS_PHYS_BASE 0xfe400000
4546
#define MV78XX0_CORE_REGS_SIZE SZ_16K
4647

4748
#define MV78XX0_PCIE_IO_PHYS_BASE(i) (0xf0800000 + ((i) << 20))
@@ -59,6 +60,7 @@
5960
* Core-specific peripheral registers.
6061
*/
6162
#define BRIDGE_VIRT_BASE (MV78XX0_CORE_REGS_VIRT_BASE)
63+
#define BRIDGE_PHYS_BASE (MV78XX0_CORE_REGS_PHYS_BASE)
6264

6365
/*
6466
* Register Map

arch/arm/mach-mxs/mach-apx4devkit.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,16 @@ static int apx4devkit_phy_fixup(struct phy_device *phy)
205205
return 0;
206206
}
207207

208+
static void __init apx4devkit_fec_phy_clk_enable(void)
209+
{
210+
struct clk *clk;
211+
212+
/* Enable fec phy clock */
213+
clk = clk_get_sys("enet_out", NULL);
214+
if (!IS_ERR(clk))
215+
clk_prepare_enable(clk);
216+
}
217+
208218
static void __init apx4devkit_init(void)
209219
{
210220
mx28_soc_init();
@@ -225,6 +235,7 @@ static void __init apx4devkit_init(void)
225235
phy_register_fixup_for_uid(PHY_ID_KS8051, MICREL_PHY_ID_MASK,
226236
apx4devkit_phy_fixup);
227237

238+
apx4devkit_fec_phy_clk_enable();
228239
mx28_add_fec(0, &mx28_fec_pdata);
229240

230241
mx28_add_mxs_mmc(0, &apx4devkit_mmc_pdata);

arch/arm/mach-omap2/board-overo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,8 +494,8 @@ static void __init overo_init(void)
494494

495495
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
496496
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
497-
omap_hsmmc_init(mmc);
498497
overo_i2c_init();
498+
omap_hsmmc_init(mmc);
499499
omap_display_init(&overo_dss_data);
500500
omap_serial_init();
501501
omap_sdrc_init(mt46h32m32lf6_sdrc_params,

arch/arm/mach-omap2/omap_hwmod_44xx_data.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1928,7 +1928,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp1_sdma_reqs[] = {
19281928

19291929
static struct omap_hwmod_opt_clk mcbsp1_opt_clks[] = {
19301930
{ .role = "pad_fck", .clk = "pad_clks_ck" },
1931-
{ .role = "prcm_clk", .clk = "mcbsp1_sync_mux_ck" },
1931+
{ .role = "prcm_fck", .clk = "mcbsp1_sync_mux_ck" },
19321932
};
19331933

19341934
static struct omap_hwmod omap44xx_mcbsp1_hwmod = {
@@ -1963,7 +1963,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp2_sdma_reqs[] = {
19631963

19641964
static struct omap_hwmod_opt_clk mcbsp2_opt_clks[] = {
19651965
{ .role = "pad_fck", .clk = "pad_clks_ck" },
1966-
{ .role = "prcm_clk", .clk = "mcbsp2_sync_mux_ck" },
1966+
{ .role = "prcm_fck", .clk = "mcbsp2_sync_mux_ck" },
19671967
};
19681968

19691969
static struct omap_hwmod omap44xx_mcbsp2_hwmod = {
@@ -1998,7 +1998,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp3_sdma_reqs[] = {
19981998

19991999
static struct omap_hwmod_opt_clk mcbsp3_opt_clks[] = {
20002000
{ .role = "pad_fck", .clk = "pad_clks_ck" },
2001-
{ .role = "prcm_clk", .clk = "mcbsp3_sync_mux_ck" },
2001+
{ .role = "prcm_fck", .clk = "mcbsp3_sync_mux_ck" },
20022002
};
20032003

20042004
static struct omap_hwmod omap44xx_mcbsp3_hwmod = {
@@ -2033,7 +2033,7 @@ static struct omap_hwmod_dma_info omap44xx_mcbsp4_sdma_reqs[] = {
20332033

20342034
static struct omap_hwmod_opt_clk mcbsp4_opt_clks[] = {
20352035
{ .role = "pad_fck", .clk = "pad_clks_ck" },
2036-
{ .role = "prcm_clk", .clk = "mcbsp4_sync_mux_ck" },
2036+
{ .role = "prcm_fck", .clk = "mcbsp4_sync_mux_ck" },
20372037
};
20382038

20392039
static struct omap_hwmod omap44xx_mcbsp4_hwmod = {
@@ -3864,7 +3864,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_2 = {
38643864
};
38653865

38663866
/* usb_host_fs -> l3_main_2 */
3867-
static struct omap_hwmod_ocp_if omap44xx_usb_host_fs__l3_main_2 = {
3867+
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_usb_host_fs__l3_main_2 = {
38683868
.master = &omap44xx_usb_host_fs_hwmod,
38693869
.slave = &omap44xx_l3_main_2_hwmod,
38703870
.clk = "l3_div_ck",
@@ -3922,7 +3922,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_3 = {
39223922
};
39233923

39243924
/* aess -> l4_abe */
3925-
static struct omap_hwmod_ocp_if omap44xx_aess__l4_abe = {
3925+
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_aess__l4_abe = {
39263926
.master = &omap44xx_aess_hwmod,
39273927
.slave = &omap44xx_l4_abe_hwmod,
39283928
.clk = "ocp_abe_iclk",
@@ -4013,7 +4013,7 @@ static struct omap_hwmod_addr_space omap44xx_aess_addrs[] = {
40134013
};
40144014

40154015
/* l4_abe -> aess */
4016-
static struct omap_hwmod_ocp_if omap44xx_l4_abe__aess = {
4016+
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_abe__aess = {
40174017
.master = &omap44xx_l4_abe_hwmod,
40184018
.slave = &omap44xx_aess_hwmod,
40194019
.clk = "ocp_abe_iclk",
@@ -4031,7 +4031,7 @@ static struct omap_hwmod_addr_space omap44xx_aess_dma_addrs[] = {
40314031
};
40324032

40334033
/* l4_abe -> aess (dma) */
4034-
static struct omap_hwmod_ocp_if omap44xx_l4_abe__aess_dma = {
4034+
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_abe__aess_dma = {
40354035
.master = &omap44xx_l4_abe_hwmod,
40364036
.slave = &omap44xx_aess_hwmod,
40374037
.clk = "ocp_abe_iclk",
@@ -5857,7 +5857,7 @@ static struct omap_hwmod_addr_space omap44xx_usb_host_fs_addrs[] = {
58575857
};
58585858

58595859
/* l4_cfg -> usb_host_fs */
5860-
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usb_host_fs = {
5860+
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_cfg__usb_host_fs = {
58615861
.master = &omap44xx_l4_cfg_hwmod,
58625862
.slave = &omap44xx_usb_host_fs_hwmod,
58635863
.clk = "l4_div_ck",
@@ -6014,13 +6014,13 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
60146014
&omap44xx_iva__l3_main_2,
60156015
&omap44xx_l3_main_1__l3_main_2,
60166016
&omap44xx_l4_cfg__l3_main_2,
6017-
&omap44xx_usb_host_fs__l3_main_2,
6017+
/* &omap44xx_usb_host_fs__l3_main_2, */
60186018
&omap44xx_usb_host_hs__l3_main_2,
60196019
&omap44xx_usb_otg_hs__l3_main_2,
60206020
&omap44xx_l3_main_1__l3_main_3,
60216021
&omap44xx_l3_main_2__l3_main_3,
60226022
&omap44xx_l4_cfg__l3_main_3,
6023-
&omap44xx_aess__l4_abe,
6023+
/* &omap44xx_aess__l4_abe, */
60246024
&omap44xx_dsp__l4_abe,
60256025
&omap44xx_l3_main_1__l4_abe,
60266026
&omap44xx_mpu__l4_abe,
@@ -6029,8 +6029,8 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
60296029
&omap44xx_l4_cfg__l4_wkup,
60306030
&omap44xx_mpu__mpu_private,
60316031
&omap44xx_l4_cfg__ocp_wp_noc,
6032-
&omap44xx_l4_abe__aess,
6033-
&omap44xx_l4_abe__aess_dma,
6032+
/* &omap44xx_l4_abe__aess, */
6033+
/* &omap44xx_l4_abe__aess_dma, */
60346034
&omap44xx_l3_main_2__c2c,
60356035
&omap44xx_l4_wkup__counter_32k,
60366036
&omap44xx_l4_cfg__ctrl_module_core,
@@ -6136,7 +6136,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
61366136
&omap44xx_l4_per__uart2,
61376137
&omap44xx_l4_per__uart3,
61386138
&omap44xx_l4_per__uart4,
6139-
&omap44xx_l4_cfg__usb_host_fs,
6139+
/* &omap44xx_l4_cfg__usb_host_fs, */
61406140
&omap44xx_l4_cfg__usb_host_hs,
61416141
&omap44xx_l4_cfg__usb_otg_hs,
61426142
&omap44xx_l4_cfg__usb_tll_hs,

arch/arm/mach-omap2/twl-common.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "twl-common.h"
3333
#include "pm.h"
3434
#include "voltage.h"
35+
#include "mux.h"
3536

3637
static struct i2c_board_info __initdata pmic_i2c_board_info = {
3738
.addr = 0x48,
@@ -77,6 +78,7 @@ void __init omap4_pmic_init(const char *pmic_type,
7778
struct twl6040_platform_data *twl6040_data, int twl6040_irq)
7879
{
7980
/* PMIC part*/
81+
omap_mux_init_signal("sys_nirq1", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
8082
strncpy(omap4_i2c1_board_info[0].type, pmic_type,
8183
sizeof(omap4_i2c1_board_info[0].type));
8284
omap4_i2c1_board_info[0].irq = OMAP44XX_IRQ_SYS_1N;

arch/arm/mach-pxa/hx4700.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,22 @@ static unsigned long hx4700_pin_config[] __initdata = {
127127
GPIO19_SSP2_SCLK,
128128
GPIO86_SSP2_RXD,
129129
GPIO87_SSP2_TXD,
130-
GPIO88_GPIO,
130+
GPIO88_GPIO | MFP_LPM_DRIVE_HIGH, /* TSC2046_CS */
131+
132+
/* BQ24022 Regulator */
133+
GPIO72_GPIO | MFP_LPM_KEEP_OUTPUT, /* BQ24022_nCHARGE_EN */
134+
GPIO96_GPIO | MFP_LPM_KEEP_OUTPUT, /* BQ24022_ISET2 */
131135

132136
/* HX4700 specific input GPIOs */
133137
GPIO12_GPIO | WAKEUP_ON_EDGE_RISE, /* ASIC3_IRQ */
134138
GPIO13_GPIO, /* W3220_IRQ */
135139
GPIO14_GPIO, /* nWLAN_IRQ */
136140

137141
/* HX4700 specific output GPIOs */
142+
GPIO61_GPIO | MFP_LPM_DRIVE_HIGH, /* W3220_nRESET */
143+
GPIO71_GPIO | MFP_LPM_DRIVE_HIGH, /* ASIC3_nRESET */
144+
GPIO81_GPIO | MFP_LPM_DRIVE_HIGH, /* CPU_GP_nRESET */
145+
GPIO116_GPIO | MFP_LPM_DRIVE_HIGH, /* CPU_HW_nRESET */
138146
GPIO102_GPIO | MFP_LPM_DRIVE_LOW, /* SYNAPTICS_POWER_ON */
139147

140148
GPIO10_GPIO, /* GSM_IRQ */
@@ -872,14 +880,19 @@ static struct gpio global_gpios[] = {
872880
{ GPIO110_HX4700_LCD_LVDD_3V3_ON, GPIOF_OUT_INIT_HIGH, "LCD_LVDD" },
873881
{ GPIO111_HX4700_LCD_AVDD_3V3_ON, GPIOF_OUT_INIT_HIGH, "LCD_AVDD" },
874882
{ GPIO32_HX4700_RS232_ON, GPIOF_OUT_INIT_HIGH, "RS232_ON" },
883+
{ GPIO61_HX4700_W3220_nRESET, GPIOF_OUT_INIT_HIGH, "W3220_nRESET" },
875884
{ GPIO71_HX4700_ASIC3_nRESET, GPIOF_OUT_INIT_HIGH, "ASIC3_nRESET" },
885+
{ GPIO81_HX4700_CPU_GP_nRESET, GPIOF_OUT_INIT_HIGH, "CPU_GP_nRESET" },
876886
{ GPIO82_HX4700_EUART_RESET, GPIOF_OUT_INIT_HIGH, "EUART_RESET" },
887+
{ GPIO116_HX4700_CPU_HW_nRESET, GPIOF_OUT_INIT_HIGH, "CPU_HW_nRESET" },
877888
};
878889

879890
static void __init hx4700_init(void)
880891
{
881892
int ret;
882893

894+
PCFR = PCFR_GPR_EN | PCFR_OPDE;
895+
883896
pxa2xx_mfp_config(ARRAY_AND_SIZE(hx4700_pin_config));
884897
gpio_set_wake(GPIO12_HX4700_ASIC3_IRQ, 1);
885898
ret = gpio_request_array(ARRAY_AND_SIZE(global_gpios));

0 commit comments

Comments
 (0)