Skip to content

Commit

Permalink
Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ar…
Browse files Browse the repository at this point in the history
…m/arm-soc

Pull ARM SoC fixes from Olof Johansson:
 "This is a batch of fixes for arm-soc platforms, most of it is for OMAP
  but there are others too (i.MX, Tegra, ep93xx).  Fixes warnings, some
  broken platforms and drivers, etc.  A bit all over the map really."

There was some concern about commit 68136b1 ("RM: sunxi: Change device
tree naming scheme for sunxi"), but Tony says:
 "Looks like that's trivial to fix as needed, no need to rebuild the
  branch to fix that AFAIK.

  The fix can be done once Olof is available online again.

  Linus, I suggest that you go ahead and pull this if there are no other
  issues with this branch."

* tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
  ARM: sunxi: Change device tree naming scheme for sunxi
  ARM: ux500: fix missing include
  ARM: u300: delete custom pin hog code
  ARM: davinci: fix build break due to missing include
  ARM: exynos: Fix warning due to missing 'inline' in stub
  ARM: imx: Move platform-mx2-emma to arch/arm/mach-imx/devices
  ARM i.MX51 clock: Fix regression since enabling MIPI/HSP clocks
  ARM: dts: mx27: Fix the AIPI bus for FEC
  ARM: OMAP2+: common: remove use of vram
  ARM: OMAP3/4: cpuidle: fix sparse and checkpatch warnings
  ARM: OMAP4: clock data: DPLLs are missing bypass clocks in their parent lists
  ARM: OMAP4: clock data: div_iva_hs_clk is a power-of-two divider
  ARM: OMAP4: Fix EMU clock domain always on
  ARM: OMAP4460: Workaround ABE DPLL failing to turn-on
  ARM: OMAP4: Enhance support for DPLLs with 4X multiplier
  ARM: OMAP4: Add function table for non-M4X dplls
  ARM: OMAP4: Update timer clock aliases
  ARM: OMAP: Move plat/omap-serial.h to include/linux/platform_data/serial-omap.h
  ARM: dts: Add build target for omap4-panda-a4
  ARM: dts: OMAP2420: Correct H4 board memory size
  ...
  • Loading branch information
torvalds committed Dec 20, 2012
2 parents ddedec2 + 4d18391 commit 1ffab3d
Show file tree
Hide file tree
Showing 47 changed files with 308 additions and 304 deletions.
5 changes: 3 additions & 2 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
omap3-evm.dtb \
omap3-tobi.dtb \
omap4-panda.dtb \
omap4-panda-a4.dtb \
omap4-panda-es.dtb \
omap4-var-som.dtb \
omap4-sdp.dtb \
Expand All @@ -131,8 +132,8 @@ dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
spear320-evb.dtb \
spear320-hmi.dtb
dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun4i-cubieboard.dtb \
sun5i-olinuxino.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun4i-a10-cubieboard.dtb \
sun5i-a13-olinuxino.dtb
dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-medcom-wide.dtb \
tegra20-paz00.dtb \
Expand Down
8 changes: 4 additions & 4 deletions arch/arm/boot/dts/imx27-3ds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@
};

soc {
aipi@10000000 { /* aipi */

aipi@10000000 { /* aipi1 */
uart1: serial@1000a000 {
fsl,uart-has-rtscts;
status = "okay";
};
};

fec@1002b000 {
aipi@10020000 { /* aipi2 */
ethernet@1002b000 {
status = "okay";
};
};
};

};
13 changes: 7 additions & 6 deletions arch/arm/boot/dts/imx27-phytec-phycore.dts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
};

soc {
aipi@10000000 { /* aipi */

aipi@10000000 { /* aipi1 */
serial@1000a000 {
fsl,uart-has-rtscts;
status = "okay";
Expand All @@ -38,10 +37,6 @@
status = "okay";
};

ethernet@1002b000 {
status = "okay";
};

i2c@1001d000 {
clock-frequency = <400000>;
status = "okay";
Expand All @@ -60,6 +55,12 @@
};
};
};

aipi@10020000 { /* aipi2 */
ethernet@1002b000 {
status = "okay";
};
};
};

nor_flash@c0000000 {
Expand Down
11 changes: 10 additions & 1 deletion arch/arm/boot/dts/imx27.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
compatible = "fsl,aipi-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x10000000 0x10000000>;
reg = <0x10000000 0x20000>;
ranges;

wdog: wdog@10002000 {
Expand Down Expand Up @@ -211,6 +211,15 @@
status = "disabled";
};

};

aipi@10020000 { /* AIPI2 */
compatible = "fsl,aipi-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x10020000 0x20000>;
ranges;

fec: ethernet@1002b000 {
compatible = "fsl,imx27-fec";
reg = <0x1002b000 0x4000>;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap2420-h4.dts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@

memory {
device_type = "memory";
reg = <0x80000000 0x84000000>; /* 64 MB */
reg = <0x80000000 0x4000000>; /* 64 MB */
};
};
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/sun4i-cubieboard.dts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
*/

/dts-v1/;
/include/ "sun4i.dtsi"
/include/ "sun4i-a10.dtsi"

/ {
model = "Cubietech Cubieboard";
compatible = "cubietech,cubieboard", "allwinner,sun4i";
compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10";

aliases {
serial0 = &uart0;
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/sun5i-olinuxino.dts
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
*/

/dts-v1/;
/include/ "sun5i.dtsi"
/include/ "sun5i-a13.dtsi"

/ {
model = "Olimex A13-Olinuxino";
compatible = "olimex,a13-olinuxino", "allwinner,sun5i";
compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13";

chosen {
bootargs = "earlyprintk console=ttyS0,115200";
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-davinci/board-da850-evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
#include <mach/cp_intc.h>
#include <mach/da8xx.h>
#include <mach/mux.h>
#include <mach/sram.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
Expand Down
10 changes: 3 additions & 7 deletions arch/arm/mach-ep93xx/include/mach/uncompress.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,9 @@ static void __raw_writel(unsigned int value, unsigned int ptr)

static inline void putc(int c)
{
int i;

for (i = 0; i < 1000; i++) {
/* Transmit fifo not full? */
if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF))
break;
}
/* Transmit fifo not full? */
while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)
;

__raw_writeb(c, PHYS_UART_DATA);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-exynos/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ void exynos_init_late(void);
#ifdef CONFIG_PM_GENERIC_DOMAINS
int exynos_pm_late_initcall(void);
#else
static int exynos_pm_late_initcall(void) { return 0; }
static inline int exynos_pm_late_initcall(void) { return 0; }
#endif

#ifdef CONFIG_ARCH_EXYNOS4
Expand Down
16 changes: 16 additions & 0 deletions arch/arm/mach-imx/clk-imx51-imx53.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
unsigned long rate_ckih1, unsigned long rate_ckih2)
{
int i;
u32 val;
struct device_node *np;

clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX51_DPLL1_BASE);
Expand Down Expand Up @@ -390,6 +391,21 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
imx_print_silicon_rev("i.MX51", mx51_revision());
clk_disable_unprepare(clk[iim_gate]);

/*
* Reference Manual says: Functionality of CCDR[18] and CLPCR[23] is no
* longer supported. Set to one for better power saving.
*
* The effect of not setting these bits is that MIPI clocks can't be
* enabled without the IPU clock being enabled aswell.
*/
val = readl(MXC_CCM_CCDR);
val |= 1 << 18;
writel(val, MXC_CCM_CCDR);

val = readl(MXC_CCM_CLPCR);
val |= 1 << 23;
writel(val, MXC_CCM_CLPCR);

return 0;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
* the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation.
*/
#include <mach/hardware.h>
#include <mach/devices-common.h>
#include "../hardware.h"
#include "devices-common.h"

#define imx_mx2_emmaprp_data_entry_single(soc) \
{ \
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-omap2/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ config SOC_HAS_OMAP2_SDRC

config SOC_HAS_REALTIME_COUNTER
bool "Real time free running counter"
depends on SOC_OMAP5
default y

config ARCH_OMAP2
bool "TI OMAP2"
Expand Down Expand Up @@ -79,7 +81,6 @@ config SOC_OMAP5
select ARM_GIC
select CPU_V7
select HAVE_SMP
select SOC_HAS_REALTIME_COUNTER
select COMMON_CLK

comment "OMAP Core Type"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/board-3430sdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ static struct omap_dss_device sdp3430_lcd_device = {

static struct tfp410_platform_data dvi_panel = {
.power_down_gpio = -1,
.i2c_bus_num = -1,
};

static struct omap_dss_device sdp3430_dvi_device = {
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/board-am3517evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ static struct omap_dss_device am3517_evm_tv_device = {

static struct tfp410_platform_data dvi_panel = {
.power_down_gpio = -1,
.i2c_bus_num = -1,
};

static struct omap_dss_device am3517_evm_dvi_device = {
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/board-cm-t35.c
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ static struct omap_dss_device cm_t35_lcd_device = {

static struct tfp410_platform_data dvi_panel = {
.power_down_gpio = CM_T35_DVI_EN_GPIO,
.i2c_bus_num = -1,
};

static struct omap_dss_device cm_t35_dvi_device = {
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/board-devkit8000.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ static struct omap_dss_device devkit8000_lcd_device = {

static struct tfp410_platform_data dvi_panel = {
.power_down_gpio = -1,
.i2c_bus_num = 1,
};

static struct omap_dss_device devkit8000_dvi_device = {
Expand Down
83 changes: 20 additions & 63 deletions arch/arm/mach-omap2/board-h4.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,22 @@
#include <linux/io.h>
#include <linux/input/matrix_keypad.h>
#include <linux/mfd/menelaus.h>
#include <linux/omap-dma.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>

#include <linux/omap-dma.h>
#include <plat/debug-devices.h>

#include <video/omapdss.h>
#include <video/omap-panel-generic-dpi.h>

#include "common.h"
#include "mux.h"
#include "control.h"
#include "gpmc.h"
#include "gpmc-smc91x.h"

#define H4_FLASH_CS 0
#define H4_SMC91X_CS 1

#define H4_ETHR_GPIO_IRQ 92

#if defined(CONFIG_KEYBOARD_MATRIX) || defined(CONFIG_KEYBOARD_MATRIX_MODULE)
static const uint32_t board_matrix_keys[] = {
Expand Down Expand Up @@ -250,71 +246,31 @@ static u32 is_gpmc_muxed(void)
return 0;
}

static inline void __init h4_init_debug(void)
{
int eth_cs;
unsigned long cs_mem_base;
unsigned int muxed, rate;
struct clk *gpmc_fck;

eth_cs = H4_SMC91X_CS;
#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91x_MODULE)

gpmc_fck = clk_get(NULL, "gpmc_fck"); /* Always on ENABLE_ON_INIT */
if (IS_ERR(gpmc_fck)) {
WARN_ON(1);
return;
}

clk_prepare_enable(gpmc_fck);
rate = clk_get_rate(gpmc_fck);
clk_disable_unprepare(gpmc_fck);
clk_put(gpmc_fck);
static struct omap_smc91x_platform_data board_smc91x_data = {
.cs = 1,
.gpio_irq = 92,
.flags = GPMC_TIMINGS_SMC91C96 | IORESOURCE_IRQ_LOWLEVEL,
};

static void __init board_smc91x_init(void)
{
if (is_gpmc_muxed())
muxed = 0x200;
else
muxed = 0;

/* Make sure CS1 timings are correct */
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG1,
0x00011000 | muxed);

if (rate >= 160000000) {
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f01);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080803);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1c0b1c0a);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
} else if (rate >= 130000000) {
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
} else {/* rate = 100000000 */
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x031A1F1F);
gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000003C2);
}

if (gpmc_cs_request(eth_cs, SZ_16M, &cs_mem_base) < 0) {
printk(KERN_ERR "Failed to request GPMC mem for smc91x\n");
goto out;
}
board_smc91x_data.flags |= GPMC_MUX_ADD_DATA;

udelay(100);
omap_mux_init_gpio(board_smc91x_data.gpio_irq, OMAP_PIN_INPUT);
gpmc_smc91x_init(&board_smc91x_data);
}

omap_mux_init_gpio(92, 0);
if (debug_card_init(cs_mem_base, H4_ETHR_GPIO_IRQ) < 0)
gpmc_cs_free(eth_cs);
#else

out:
clk_disable_unprepare(gpmc_fck);
clk_put(gpmc_fck);
static inline void board_smc91x_init(void)
{
}

#endif

static void __init h4_init_flash(void)
{
unsigned long base;
Expand Down Expand Up @@ -371,6 +327,7 @@ static void __init omap_h4_init(void)
omap_serial_init();
omap_sdrc_init(NULL, NULL);
h4_init_flash();
board_smc91x_init();

omap_display_init(&h4_dss_data);
}
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/board-omap3evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ static struct omap_dss_device omap3_evm_tv_device = {

static struct tfp410_platform_data dvi_panel = {
.power_down_gpio = OMAP3EVM_DVI_PANEL_EN_GPIO,
.i2c_bus_num = -1,
};

static struct omap_dss_device omap3_evm_dvi_device = {
Expand Down
Loading

0 comments on commit 1ffab3d

Please sign in to comment.