mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
ARM: SoC fixes for 4.4-rc
This is the final small set of ARM SoC bug fixes for linux-4.4, almost all regressions: OMAP: data corruption on the Nokia N900 flash Allwinner: Two defconfig change to get USB working again ARM Versatile: Interrupt numbers gone bad after an older bug fix Nomadik: Crashes from incorrect L2 cache settings VIA vt8500: SD/MMC support on WM8650 never worked -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVpA/vGCrR//JCVInAQK1NQ//fk4EYJj6JMwaB/I2hGtpUpartVtXj9tj 916+NazORGc/UBP9vG/bLWnZrKzZQdeLd2HwDT9eyHtZ+Qq8bm+No312l10EATkS EAZKy4oy0HH5BD8yE5xM+CQn9fxh8GcmGJ/hKacpJnY2e0aaGgp9iHiPWH8kRmO4 kBbUWsbfGjxzfM+a/9XGrzcTWZLSOu6VGtxvdp2rGy+Un8AWVc6FQz48xsFXWivB 5JHp0qTnyUebSNbsxq05BDorybDuNSho5d3r94H85WwfbdybCxuFYedTZ1r3vCh9 rWDI8R2vb3uotzYYjigRwyYqggUz6TewWqwnyeyGsMHOCEU/q/2n2ASLhdxKl2x8 UZ+kKDhRiraaxnsNh/apVy4yvs7KmsUM6DgxzvXW3uyrrLrjJyGHKY5doHt5Z5mJ ErhOW024skA8GNiWObmNiKzUdKEbO4e7ReFgwbLbA8W6ACVVMNdL4udsmkb+nj25 +VFWOg5WVG5WJFaEoSOGze7J0+SSwu7wP0HRPmWFotslExh5HsrvkSw429sDDB0R 4OwT0Ru0vDZvGrHD+Bu6mFJO1nL2kWKVsolyben1sA+OIbm7eoHcennRUFf2sog0 yWD03DT9iz//bmWPHVntcdRTTaXYvaChPWzHxlbBxw2DCfRkzy4Tx/Ic44s2Kjuq PgQjTmNlnQ8= =Z1E0 -----END PGP SIGNATURE----- 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: "This is the final small set of ARM SoC bug fixes for linux-4.4, almost all regressions: OMAP: - data corruption on the Nokia N900 flash Allwinner: - Two defconfig change to get USB working again ARM Versatile: - Interrupt numbers gone bad after an older bug fix Nomadik: - Crashes from incorrect L2 cache settings VIA vt8500: - SD/MMC support on WM8650 never worked" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: dts: vt8500: Add SDHC node to DTS file for WM8650 ARM: Fix broken USB support in multi_v7_defconfig for sunxi devices ARM: versatile: fix MMC/SD interrupt assignment ARM: nomadik: set latencies to 8 cycles ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption ARM: Fix broken USB support in sunxi_defconfig
This commit is contained in:
commit
44d8a7d5c1
@ -25,9 +25,9 @@
|
|||||||
cache-sets = <512>;
|
cache-sets = <512>;
|
||||||
cache-line-size = <32>;
|
cache-line-size = <32>;
|
||||||
/* At full speed latency must be >=2 */
|
/* At full speed latency must be >=2 */
|
||||||
arm,tag-latency = <2>;
|
arm,tag-latency = <8>;
|
||||||
arm,data-latency = <2 2>;
|
arm,data-latency = <8 8>;
|
||||||
arm,dirty-latency = <2>;
|
arm,dirty-latency = <8>;
|
||||||
};
|
};
|
||||||
|
|
||||||
mtu0: mtu@101e2000 {
|
mtu0: mtu@101e2000 {
|
||||||
|
@ -110,7 +110,11 @@
|
|||||||
interrupt-parent = <&vic>;
|
interrupt-parent = <&vic>;
|
||||||
interrupts = <31>; /* Cascaded to vic */
|
interrupts = <31>; /* Cascaded to vic */
|
||||||
clear-mask = <0xffffffff>;
|
clear-mask = <0xffffffff>;
|
||||||
valid-mask = <0xffc203f8>;
|
/*
|
||||||
|
* Valid interrupt lines mask according to
|
||||||
|
* table 4-36 page 4-50 of ARM DUI 0225D
|
||||||
|
*/
|
||||||
|
valid-mask = <0x0760031b>;
|
||||||
};
|
};
|
||||||
|
|
||||||
dma@10130000 {
|
dma@10130000 {
|
||||||
@ -266,8 +270,8 @@
|
|||||||
};
|
};
|
||||||
mmc@5000 {
|
mmc@5000 {
|
||||||
compatible = "arm,pl180", "arm,primecell";
|
compatible = "arm,pl180", "arm,primecell";
|
||||||
reg = < 0x5000 0x1000>;
|
reg = <0x5000 0x1000>;
|
||||||
interrupts-extended = <&vic 22 &sic 2>;
|
interrupts-extended = <&vic 22 &sic 1>;
|
||||||
clocks = <&xtal24mhz>, <&pclk>;
|
clocks = <&xtal24mhz>, <&pclk>;
|
||||||
clock-names = "mclk", "apb_pclk";
|
clock-names = "mclk", "apb_pclk";
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,16 @@
|
|||||||
compatible = "arm,versatile-pb";
|
compatible = "arm,versatile-pb";
|
||||||
|
|
||||||
amba {
|
amba {
|
||||||
|
/* The Versatile PB is using more SIC IRQ lines than the AB */
|
||||||
|
sic: intc@10003000 {
|
||||||
|
clear-mask = <0xffffffff>;
|
||||||
|
/*
|
||||||
|
* Valid interrupt lines mask according to
|
||||||
|
* figure 3-30 page 3-74 of ARM DUI 0224B
|
||||||
|
*/
|
||||||
|
valid-mask = <0x7fe003ff>;
|
||||||
|
};
|
||||||
|
|
||||||
gpio2: gpio@101e6000 {
|
gpio2: gpio@101e6000 {
|
||||||
compatible = "arm,pl061", "arm,primecell";
|
compatible = "arm,pl061", "arm,primecell";
|
||||||
reg = <0x101e6000 0x1000>;
|
reg = <0x101e6000 0x1000>;
|
||||||
@ -67,6 +77,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fpga {
|
fpga {
|
||||||
|
mmc@5000 {
|
||||||
|
/*
|
||||||
|
* Overrides the interrupt assignment from
|
||||||
|
* the Versatile AB board file.
|
||||||
|
*/
|
||||||
|
interrupts-extended = <&sic 22 &sic 23>;
|
||||||
|
};
|
||||||
uart@9000 {
|
uart@9000 {
|
||||||
compatible = "arm,pl011", "arm,primecell";
|
compatible = "arm,pl011", "arm,primecell";
|
||||||
reg = <0x9000 0x1000>;
|
reg = <0x9000 0x1000>;
|
||||||
@ -86,7 +103,8 @@
|
|||||||
mmc@b000 {
|
mmc@b000 {
|
||||||
compatible = "arm,pl180", "arm,primecell";
|
compatible = "arm,pl180", "arm,primecell";
|
||||||
reg = <0xb000 0x1000>;
|
reg = <0xb000 0x1000>;
|
||||||
interrupts-extended = <&vic 23 &sic 2>;
|
interrupt-parent = <&sic>;
|
||||||
|
interrupts = <1>, <2>;
|
||||||
clocks = <&xtal24mhz>, <&pclk>;
|
clocks = <&xtal24mhz>, <&pclk>;
|
||||||
clock-names = "mclk", "apb_pclk";
|
clock-names = "mclk", "apb_pclk";
|
||||||
};
|
};
|
||||||
|
@ -187,6 +187,15 @@
|
|||||||
interrupts = <43>;
|
interrupts = <43>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sdhc@d800a000 {
|
||||||
|
compatible = "wm,wm8505-sdhc";
|
||||||
|
reg = <0xd800a000 0x400>;
|
||||||
|
interrupts = <20>, <21>;
|
||||||
|
clocks = <&clksdhc>;
|
||||||
|
bus-width = <4>;
|
||||||
|
sdon-inverted;
|
||||||
|
};
|
||||||
|
|
||||||
fb: fb@d8050800 {
|
fb: fb@d8050800 {
|
||||||
compatible = "wm,wm8505-fb";
|
compatible = "wm,wm8505-fb";
|
||||||
reg = <0xd8050800 0x200>;
|
reg = <0xd8050800 0x200>;
|
||||||
|
@ -366,6 +366,7 @@ CONFIG_BATTERY_MAX17042=m
|
|||||||
CONFIG_CHARGER_MAX14577=m
|
CONFIG_CHARGER_MAX14577=m
|
||||||
CONFIG_CHARGER_MAX77693=m
|
CONFIG_CHARGER_MAX77693=m
|
||||||
CONFIG_CHARGER_TPS65090=y
|
CONFIG_CHARGER_TPS65090=y
|
||||||
|
CONFIG_AXP20X_POWER=m
|
||||||
CONFIG_POWER_RESET_AS3722=y
|
CONFIG_POWER_RESET_AS3722=y
|
||||||
CONFIG_POWER_RESET_GPIO=y
|
CONFIG_POWER_RESET_GPIO=y
|
||||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||||
|
@ -84,6 +84,7 @@ CONFIG_SPI_SUN4I=y
|
|||||||
CONFIG_SPI_SUN6I=y
|
CONFIG_SPI_SUN6I=y
|
||||||
CONFIG_GPIO_SYSFS=y
|
CONFIG_GPIO_SYSFS=y
|
||||||
CONFIG_POWER_SUPPLY=y
|
CONFIG_POWER_SUPPLY=y
|
||||||
|
CONFIG_AXP20X_POWER=y
|
||||||
CONFIG_THERMAL=y
|
CONFIG_THERMAL=y
|
||||||
CONFIG_CPU_THERMAL=y
|
CONFIG_CPU_THERMAL=y
|
||||||
CONFIG_WATCHDOG=y
|
CONFIG_WATCHDOG=y
|
||||||
|
@ -149,8 +149,8 @@ static int omap2_onenand_get_freq(struct omap_onenand_platform_data *cfg,
|
|||||||
freq = 104;
|
freq = 104;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
freq = 54;
|
pr_err("onenand rate not detected, bad GPMC async timings?\n");
|
||||||
break;
|
freq = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return freq;
|
return freq;
|
||||||
@ -271,6 +271,11 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
|
|||||||
struct gpmc_timings t;
|
struct gpmc_timings t;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note that we need to keep sync_write set for the call to
|
||||||
|
* omap2_onenand_set_async_mode() to work to detect the onenand
|
||||||
|
* supported clock rate for the sync timings.
|
||||||
|
*/
|
||||||
if (gpmc_onenand_data->of_node) {
|
if (gpmc_onenand_data->of_node) {
|
||||||
gpmc_read_settings_dt(gpmc_onenand_data->of_node,
|
gpmc_read_settings_dt(gpmc_onenand_data->of_node,
|
||||||
&onenand_async);
|
&onenand_async);
|
||||||
@ -281,12 +286,9 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
|
|||||||
else
|
else
|
||||||
gpmc_onenand_data->flags |= ONENAND_SYNC_READ;
|
gpmc_onenand_data->flags |= ONENAND_SYNC_READ;
|
||||||
onenand_async.sync_read = false;
|
onenand_async.sync_read = false;
|
||||||
onenand_async.sync_write = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
omap2_onenand_set_async_mode(onenand_base);
|
|
||||||
|
|
||||||
omap2_onenand_calc_async_timings(&t);
|
omap2_onenand_calc_async_timings(&t);
|
||||||
|
|
||||||
ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async);
|
ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async);
|
||||||
@ -310,6 +312,8 @@ static int omap2_onenand_setup_sync(void __iomem *onenand_base, int *freq_ptr)
|
|||||||
if (!freq) {
|
if (!freq) {
|
||||||
/* Very first call freq is not known */
|
/* Very first call freq is not known */
|
||||||
freq = omap2_onenand_get_freq(gpmc_onenand_data, onenand_base);
|
freq = omap2_onenand_get_freq(gpmc_onenand_data, onenand_base);
|
||||||
|
if (!freq)
|
||||||
|
return -ENODEV;
|
||||||
set_onenand_cfg(onenand_base);
|
set_onenand_cfg(onenand_base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user