Skip to content

Commit b1dae3d

Browse files
committed
Merge tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Fixes for omaps for the -rc cycle: - Fix a device tree based booting vs legacy booting regression for omap3 crypto hardware by adding the missing DMA channels. - Fix /sys/bus/soc/devices/soc0/family for am33xx devices. - Fix two timer issues that can cause hangs if the timer related hwmod data is missing like it often initially is for new SoCs. - Remove pcie hwmods entry from dts as that causes runtime PM to fail for the PHYs. - A paper bag type dts configuration fix for dm816x GPIO interrupts that I just noticed. This is most of the changes diffstat wise, but as it's a basic feature for connecting devices and things work otherwise, it should be fixed. * tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: Fix gpio interrupts for dm816x ARM: dts: dra7: remove ti,hwmod property from pcie phy ARM: OMAP: dmtimer: disable pm runtime on remove ARM: OMAP: dmtimer: check for pm_runtime_get_sync() failure ARM: OMAP2+: Fix socbus family info for AM33xx devices ARM: dts: omap3: Add missing dmas for crypto Signed-off-by: Olof Johansson <olof@lixom.net>
2 parents ebc0aa8 + 599c376 commit b1dae3d

File tree

6 files changed

+53
-7
lines changed

6 files changed

+53
-7
lines changed

arch/arm/boot/dts/dm8168-evm.dts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,20 @@
3636
>;
3737
};
3838

39+
mmc_pins: pinmux_mmc_pins {
40+
pinctrl-single,pins = <
41+
DM816X_IOPAD(0x0a70, MUX_MODE0) /* SD_POW */
42+
DM816X_IOPAD(0x0a74, MUX_MODE0) /* SD_CLK */
43+
DM816X_IOPAD(0x0a78, MUX_MODE0) /* SD_CMD */
44+
DM816X_IOPAD(0x0a7C, MUX_MODE0) /* SD_DAT0 */
45+
DM816X_IOPAD(0x0a80, MUX_MODE0) /* SD_DAT1 */
46+
DM816X_IOPAD(0x0a84, MUX_MODE0) /* SD_DAT2 */
47+
DM816X_IOPAD(0x0a88, MUX_MODE0) /* SD_DAT2 */
48+
DM816X_IOPAD(0x0a8c, MUX_MODE2) /* GP1[7] */
49+
DM816X_IOPAD(0x0a90, MUX_MODE2) /* GP1[8] */
50+
>;
51+
};
52+
3953
usb0_pins: pinmux_usb0_pins {
4054
pinctrl-single,pins = <
4155
DM816X_IOPAD(0x0d00, MUX_MODE0) /* USB0_DRVVBUS */
@@ -137,7 +151,12 @@
137151
};
138152

139153
&mmc1 {
154+
pinctrl-names = "default";
155+
pinctrl-0 = <&mmc_pins>;
140156
vmmc-supply = <&vmmcsd_fixed>;
157+
bus-width = <4>;
158+
cd-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
159+
wp-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
141160
};
142161

143162
/* At least dm8168-evm rev c won't support multipoint, later may */

arch/arm/boot/dts/dm816x.dtsi

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,17 +150,27 @@
150150
};
151151

152152
gpio1: gpio@48032000 {
153-
compatible = "ti,omap3-gpio";
153+
compatible = "ti,omap4-gpio";
154154
ti,hwmods = "gpio1";
155+
ti,gpio-always-on;
155156
reg = <0x48032000 0x1000>;
156-
interrupts = <97>;
157+
interrupts = <96>;
158+
gpio-controller;
159+
#gpio-cells = <2>;
160+
interrupt-controller;
161+
#interrupt-cells = <2>;
157162
};
158163

159164
gpio2: gpio@4804c000 {
160-
compatible = "ti,omap3-gpio";
165+
compatible = "ti,omap4-gpio";
161166
ti,hwmods = "gpio2";
167+
ti,gpio-always-on;
162168
reg = <0x4804c000 0x1000>;
163-
interrupts = <99>;
169+
interrupts = <98>;
170+
gpio-controller;
171+
#gpio-cells = <2>;
172+
interrupt-controller;
173+
#interrupt-cells = <2>;
164174
};
165175

166176
gpmc: gpmc@50000000 {

arch/arm/boot/dts/dra7.dtsi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,6 @@
11111111
"wkupclk", "refclk",
11121112
"div-clk", "phy-div";
11131113
#phy-cells = <0>;
1114-
ti,hwmods = "pcie1-phy";
11151114
};
11161115

11171116
pcie2_phy: pciephy@4a095000 {
@@ -1130,7 +1129,6 @@
11301129
"wkupclk", "refclk",
11311130
"div-clk", "phy-div";
11321131
#phy-cells = <0>;
1133-
ti,hwmods = "pcie2-phy";
11341132
status = "disabled";
11351133
};
11361134
};

arch/arm/boot/dts/omap3.dtsi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@
9292
ti,hwmods = "aes";
9393
reg = <0x480c5000 0x50>;
9494
interrupts = <0>;
95+
dmas = <&sdma 65 &sdma 66>;
96+
dma-names = "tx", "rx";
9597
};
9698

9799
prm: prm@48306000 {
@@ -550,6 +552,8 @@
550552
ti,hwmods = "sham";
551553
reg = <0x480c3000 0x64>;
552554
interrupts = <49>;
555+
dmas = <&sdma 69>;
556+
dma-names = "rx";
553557
};
554558

555559
smartreflex_core: smartreflex@480cb000 {

arch/arm/mach-omap2/id.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,8 @@ static const char * __init omap_get_family(void)
720720
return kasprintf(GFP_KERNEL, "OMAP4");
721721
else if (soc_is_omap54xx())
722722
return kasprintf(GFP_KERNEL, "OMAP5");
723+
else if (soc_is_am33xx() || soc_is_am335x())
724+
return kasprintf(GFP_KERNEL, "AM33xx");
723725
else if (soc_is_am43xx())
724726
return kasprintf(GFP_KERNEL, "AM43xx");
725727
else if (soc_is_dra7xx())

arch/arm/plat-omap/dmtimer.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,7 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
799799
struct device *dev = &pdev->dev;
800800
const struct of_device_id *match;
801801
const struct dmtimer_platform_data *pdata;
802+
int ret;
802803

803804
match = of_match_device(of_match_ptr(omap_timer_match), dev);
804805
pdata = match ? match->data : dev->platform_data;
@@ -860,7 +861,12 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
860861
}
861862

862863
if (!timer->reserved) {
863-
pm_runtime_get_sync(dev);
864+
ret = pm_runtime_get_sync(dev);
865+
if (ret < 0) {
866+
dev_err(dev, "%s: pm_runtime_get_sync failed!\n",
867+
__func__);
868+
goto err_get_sync;
869+
}
864870
__omap_dm_timer_init_regs(timer);
865871
pm_runtime_put(dev);
866872
}
@@ -873,6 +879,11 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
873879
dev_dbg(dev, "Device Probed.\n");
874880

875881
return 0;
882+
883+
err_get_sync:
884+
pm_runtime_put_noidle(dev);
885+
pm_runtime_disable(dev);
886+
return ret;
876887
}
877888

878889
/**
@@ -899,6 +910,8 @@ static int omap_dm_timer_remove(struct platform_device *pdev)
899910
}
900911
spin_unlock_irqrestore(&dm_timer_lock, flags);
901912

913+
pm_runtime_disable(&pdev->dev);
914+
902915
return ret;
903916
}
904917

0 commit comments

Comments
 (0)