aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-20 20:44:16 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-20 20:44:16 -0500
commit0c582826a158d9cab69b9cc66d637aee73fed0dc (patch)
treec1e2fe9d97850bd49c878ab86f5beee171f58d78
parente3de671dd6784e30821e64f67f854b90b4496a68 (diff)
parent08ceca8ea629828e4cb922c121b5c87681c97fb7 (diff)
Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull non-urgent ARM SoC fixes from Olof Johansson: "As usual, we queue up a few fixes that don't seem urgent enough to go in through -rc. - MAINTAINERS updates to add a list for brcmstb and fix a typo - A handful of fixes for OMAP 81xx, a recently resurrected platform so these can't be considered real regressions and thus got queued. - A couple of other small fixes for scoop, sa1100 and davinci" * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: OMAP2+: Fix randconfig build warning for dm814_pllss_data ARM: sa1100/simpad: Be sure to clamp return value ARM: scoop: Be sure to clamp return value ARM: davinci: fix a problematic usage of WARN() ARM: davinci: only select WT cache if cache is enabled ARM: OMAP2+: Remove useless check for legacy booting for dm814x ARM: OMAP2+: Enable GPIO for dm814x ARM: dts: Fix dm814x pinctrl address and mask ARM: dts: Fix dm8148 control modules ranges ARM: OMAP2+: Fix timer entries for dm814x ARM: dts: Fix some mux and divider clocks to get dm814x-evm booting ARM: OMAP2+: Add DPPLS clock manager for dm814x clk: ti: Add few dm814x clock aliases ARM: dts: Fix dm814x entries for pllss and prcm MAINTAINERS: gpio-brcmstb: Remove stray '>' MAINTAINERS: brcmstb: Include Broadcom internal mailing-list
-rw-r--r--MAINTAINERS3
-rw-r--r--arch/arm/boot/dts/dm814x-clocks.dtsi109
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi33
-rw-r--r--arch/arm/common/scoop.c2
-rw-r--r--arch/arm/mach-davinci/Kconfig3
-rw-r--r--arch/arm/mach-davinci/board-dm355-evm.c4
-rw-r--r--arch/arm/mach-davinci/board-dm355-leopard.c4
-rw-r--r--arch/arm/mach-omap2/io.c3
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_81xx_data.c12
-rw-r--r--arch/arm/mach-omap2/prm_common.c8
-rw-r--r--arch/arm/mach-sa1100/simpad.c4
-rw-r--r--drivers/clk/ti/clk-814x.c4
-rw-r--r--include/linux/clk/ti.h1
13 files changed, 133 insertions, 57 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 66662b80e711..5affae6e99b8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2377,6 +2377,7 @@ M: Brian Norris <computersforpeace@gmail.com>
2377M: Gregory Fong <gregory.0xf0@gmail.com> 2377M: Gregory Fong <gregory.0xf0@gmail.com>
2378M: Florian Fainelli <f.fainelli@gmail.com> 2378M: Florian Fainelli <f.fainelli@gmail.com>
2379L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 2379L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
2380L: bcm-kernel-feedback-list@broadcom.com
2380T: git git://github.com/broadcom/stblinux.git 2381T: git git://github.com/broadcom/stblinux.git
2381S: Maintained 2382S: Maintained
2382F: arch/arm/mach-bcm/*brcmstb* 2383F: arch/arm/mach-bcm/*brcmstb*
@@ -2450,7 +2451,7 @@ N: bcm88312
2450 2451
2451BROADCOM BRCMSTB GPIO DRIVER 2452BROADCOM BRCMSTB GPIO DRIVER
2452M: Gregory Fong <gregory.0xf0@gmail.com> 2453M: Gregory Fong <gregory.0xf0@gmail.com>
2453L: bcm-kernel-feedback-list@broadcom.com> 2454L: bcm-kernel-feedback-list@broadcom.com
2454S: Supported 2455S: Supported
2455F: drivers/gpio/gpio-brcmstb.c 2456F: drivers/gpio/gpio-brcmstb.c
2456F: Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt 2457F: Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
diff --git a/arch/arm/boot/dts/dm814x-clocks.dtsi b/arch/arm/boot/dts/dm814x-clocks.dtsi
index ef1e8e7a6cc6..26001585673a 100644
--- a/arch/arm/boot/dts/dm814x-clocks.dtsi
+++ b/arch/arm/boot/dts/dm814x-clocks.dtsi
@@ -4,25 +4,74 @@
4 * published by the Free Software Foundation. 4 * published by the Free Software Foundation.
5 */ 5 */
6 6
7&pllss_clocks {
8 timer1_fck: timer1_fck {
9 #clock-cells = <0>;
10 compatible = "ti,mux-clock";
11 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
12 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
13 ti,bit-shift = <3>;
14 reg = <0x2e0>;
15 };
16
17 timer2_fck: timer2_fck {
18 #clock-cells = <0>;
19 compatible = "ti,mux-clock";
20 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
21 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
22 ti,bit-shift = <6>;
23 reg = <0x2e0>;
24 };
25
26 sysclk18_ck: sysclk18_ck {
27 #clock-cells = <0>;
28 compatible = "ti,mux-clock";
29 clocks = <&rtcosc_ck>, <&rtcdivider_ck>;
30 ti,bit-shift = <0>;
31 reg = <0x02f0>;
32 };
33};
34
7&scm_clocks { 35&scm_clocks {
36 devosc_ck: devosc_ck {
37 #clock-cells = <0>;
38 compatible = "ti,mux-clock";
39 clocks = <&virt_20000000_ck>, <&virt_19200000_ck>;
40 ti,bit-shift = <21>;
41 reg = <0x0040>;
42 };
8 43
9 tclkin_ck: tclkin_ck { 44 /* Optional auxosc, 20 - 30 MHz range, assume 27 MHz by default */
45 auxosc_ck: auxosc_ck {
46 #clock-cells = <0>;
47 compatible = "fixed-clock";
48 clock-frequency = <27000000>;
49 };
50
51 /* Optional 32768Hz crystal or clock on RTCOSC pins */
52 rtcosc_ck: rtcosc_ck {
10 #clock-cells = <0>; 53 #clock-cells = <0>;
11 compatible = "fixed-clock"; 54 compatible = "fixed-clock";
12 clock-frequency = <32768>; 55 clock-frequency = <32768>;
13 }; 56 };
14 57
15 devosc_ck: devosc_ck { 58 /* Optional external clock on TCLKIN pin, set rate in baord dts file */
59 tclkin_ck: tclkin_ck {
60 #clock-cells = <0>;
61 compatible = "fixed-clock";
62 clock-frequency = <0>;
63 };
64
65 virt_20000000_ck: virt_20000000_ck {
16 #clock-cells = <0>; 66 #clock-cells = <0>;
17 compatible = "fixed-clock"; 67 compatible = "fixed-clock";
18 clock-frequency = <20000000>; 68 clock-frequency = <20000000>;
19 }; 69 };
20 70
21 /* Optional auxosc, 20 - 30 MHz range, assume 27 MHz by default */ 71 virt_19200000_ck: virt_19200000_ck {
22 auxosc_ck: auxosc_ck {
23 #clock-cells = <0>; 72 #clock-cells = <0>;
24 compatible = "fixed-clock"; 73 compatible = "fixed-clock";
25 clock-frequency = <27000000>; 74 clock-frequency = <19200000>;
26 }; 75 };
27 76
28 mpu_ck: mpu_ck { 77 mpu_ck: mpu_ck {
@@ -49,12 +98,6 @@
49 clock-frequency = <48000000>; 98 clock-frequency = <48000000>;
50 }; 99 };
51 100
52 sysclk18_ck: sysclk18_ck {
53 #clock-cells = <0>;
54 compatible = "fixed-clock";
55 clock-frequency = <32768>;
56 };
57
58 cpsw_125mhz_gclk: cpsw_125mhz_gclk { 101 cpsw_125mhz_gclk: cpsw_125mhz_gclk {
59 #clock-cells = <0>; 102 #clock-cells = <0>;
60 compatible = "fixed-clock"; 103 compatible = "fixed-clock";
@@ -69,7 +112,31 @@
69 112
70}; 113};
71 114
72&pllss_clocks { 115&prcm_clocks {
116 osc_src_ck: osc_src_ck {
117 #clock-cells = <0>;
118 compatible = "fixed-factor-clock";
119 clocks = <&devosc_ck>;
120 clock-mult = <1>;
121 clock-div = <1>;
122 };
123
124 mpu_clksrc_ck: mpu_clksrc_ck {
125 #clock-cells = <0>;
126 compatible = "ti,mux-clock";
127 clocks = <&devosc_ck>, <&rtcdivider_ck>;
128 ti,bit-shift = <0>;
129 reg = <0x0040>;
130 };
131
132 /* Fixed divider clock 0.0016384 * devosc */
133 rtcdivider_ck: rtcdivider_ck {
134 #clock-cells = <0>;
135 compatible = "fixed-factor-clock";
136 clocks = <&devosc_ck>;
137 clock-mult = <128>;
138 clock-div = <78125>;
139 };
73 140
74 aud_clkin0_ck: aud_clkin0_ck { 141 aud_clkin0_ck: aud_clkin0_ck {
75 #clock-cells = <0>; 142 #clock-cells = <0>;
@@ -88,22 +155,4 @@
88 compatible = "fixed-clock"; 155 compatible = "fixed-clock";
89 clock-frequency = <20000000>; 156 clock-frequency = <20000000>;
90 }; 157 };
91
92 timer1_mux_ck: timer1_mux_ck {
93 #clock-cells = <0>;
94 compatible = "ti,mux-clock";
95 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
96 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
97 ti,bit-shift = <3>;
98 reg = <0x2e0>;
99 };
100
101 timer2_mux_ck: timer2_mux_ck {
102 #clock-cells = <0>;
103 compatible = "ti,mux-clock";
104 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
105 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
106 ti,bit-shift = <6>;
107 reg = <0x2e0>;
108 };
109}; 158};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
index 7988b42e5764..09a8d88bde23 100644
--- a/arch/arm/boot/dts/dm814x.dtsi
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -58,8 +58,10 @@
58 ti,hwmods = "l3_main"; 58 ti,hwmods = "l3_main";
59 59
60 /* 60 /*
61 * See TRM "Table 1-317. L4LS Instance Summary", just deduct 61 * See TRM "Table 1-317. L4LS Instance Summary" for hints.
62 * 0x1000 from the 1-317 addresses to get the device address 62 * It shows the module target agent registers though, so the
63 * actual device is typically 0x1000 before the target agent
64 * except in cases where the module is larger than 0x1000.
63 */ 65 */
64 l4ls: l4ls@48000000 { 66 l4ls: l4ls@48000000 {
65 compatible = "ti,dm814-l4ls", "simple-bus"; 67 compatible = "ti,dm814-l4ls", "simple-bus";
@@ -183,10 +185,10 @@
183 185
184 control: control@140000 { 186 control: control@140000 {
185 compatible = "ti,dm814-scm", "simple-bus"; 187 compatible = "ti,dm814-scm", "simple-bus";
186 reg = <0x140000 0x16d000>; 188 reg = <0x140000 0x20000>;
187 #address-cells = <1>; 189 #address-cells = <1>;
188 #size-cells = <1>; 190 #size-cells = <1>;
189 ranges = <0 0x160000 0x16d000>; 191 ranges = <0 0x140000 0x20000>;
190 192
191 scm_conf: scm_conf@0 { 193 scm_conf: scm_conf@0 {
192 compatible = "syscon"; 194 compatible = "syscon";
@@ -203,19 +205,30 @@
203 }; 205 };
204 }; 206 };
205 207
208 /*
209 * Note that silicon revision 2.1 and older
210 * require input enabled (bit 18 set) for all
211 * 3.3V I/Os to avoid cumulative hardware damage.
212 * For more info, see errata advisory 2.1.87.
213 * We leave bit 18 out of function-mask and rely
214 * on the bootloader for it.
215 */
206 pincntl: pinmux@800 { 216 pincntl: pinmux@800 {
207 compatible = "pinctrl-single"; 217 compatible = "pinctrl-single";
208 reg = <0x800 0xc38>; 218 reg = <0x800 0x438>;
209 #address-cells = <1>; 219 #address-cells = <1>;
210 #size-cells = <0>; 220 #size-cells = <0>;
211 pinctrl-single,register-width = <32>; 221 pinctrl-single,register-width = <32>;
212 pinctrl-single,function-mask = <0x300ff>; 222 pinctrl-single,function-mask = <0x307ff>;
213 }; 223 };
214 }; 224 };
215 225
216 prcm: prcm@180000 { 226 prcm: prcm@180000 {
217 compatible = "ti,dm814-prcm", "simple-bus"; 227 compatible = "ti,dm814-prcm", "simple-bus";
218 reg = <0x180000 0x4000>; 228 reg = <0x180000 0x2000>;
229 #address-cells = <1>;
230 #size-cells = <1>;
231 ranges = <0 0x180000 0x2000>;
219 232
220 prcm_clocks: clocks { 233 prcm_clocks: clocks {
221 #address-cells = <1>; 234 #address-cells = <1>;
@@ -226,9 +239,13 @@
226 }; 239 };
227 }; 240 };
228 241
242 /* See TRM PLL_SUBSYS_BASE and "PLLSS Registers" */
229 pllss: pllss@1c5000 { 243 pllss: pllss@1c5000 {
230 compatible = "ti,dm814-pllss", "simple-bus"; 244 compatible = "ti,dm814-pllss", "simple-bus";
231 reg = <0x1c5000 0x2000>; 245 reg = <0x1c5000 0x1000>;
246 #address-cells = <1>;
247 #size-cells = <1>;
248 ranges = <0 0x1c5000 0x1000>;
232 249
233 pllss_clocks: clocks { 250 pllss_clocks: clocks {
234 #address-cells = <1>; 251 #address-cells = <1>;
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index 45f4c21e393c..e0df333202b8 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -84,7 +84,7 @@ static int scoop_gpio_get(struct gpio_chip *chip, unsigned offset)
84 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio); 84 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
85 85
86 /* XXX: I'm unsure, but it seems so */ 86 /* XXX: I'm unsure, but it seems so */
87 return ioread16(sdev->base + SCOOP_GPRR) & (1 << (offset + 1)); 87 return !!(ioread16(sdev->base + SCOOP_GPRR) & (1 << (offset + 1)));
88} 88}
89 89
90static int scoop_gpio_direction_input(struct gpio_chip *chip, 90static int scoop_gpio_direction_input(struct gpio_chip *chip,
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index dd8f5312b2c0..bcaf1d025505 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -34,7 +34,8 @@ config ARCH_DAVINCI_DA830
34 bool "DA830/OMAP-L137/AM17x based system" 34 bool "DA830/OMAP-L137/AM17x based system"
35 depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR 35 depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR
36 select ARCH_DAVINCI_DA8XX 36 select ARCH_DAVINCI_DA8XX
37 select CPU_DCACHE_WRITETHROUGH # needed on silicon revs 1.0, 1.1 37 # needed on silicon revs 1.0, 1.1:
38 select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE
38 select CP_INTC 39 select CP_INTC
39 40
40config ARCH_DAVINCI_DA850 41config ARCH_DAVINCI_DA850
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c
index c71dd9982f03..1844076f6403 100644
--- a/arch/arm/mach-davinci/board-dm355-evm.c
+++ b/arch/arm/mach-davinci/board-dm355-evm.c
@@ -384,9 +384,7 @@ static __init void dm355_evm_init(void)
384 dm355evm_dm9000_rsrc[2].start = gpio_to_irq(1); 384 dm355evm_dm9000_rsrc[2].start = gpio_to_irq(1);
385 385
386 aemif = clk_get(&dm355evm_dm9000.dev, "aemif"); 386 aemif = clk_get(&dm355evm_dm9000.dev, "aemif");
387 if (IS_ERR(aemif)) 387 if (!WARN(IS_ERR(aemif), "unable to get AEMIF clock\n"))
388 WARN("%s: unable to get AEMIF clock\n", __func__);
389 else
390 clk_prepare_enable(aemif); 388 clk_prepare_enable(aemif);
391 389
392 platform_add_devices(davinci_evm_devices, 390 platform_add_devices(davinci_evm_devices,
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c
index 680a7a2d9102..284ff27c1b32 100644
--- a/arch/arm/mach-davinci/board-dm355-leopard.c
+++ b/arch/arm/mach-davinci/board-dm355-leopard.c
@@ -242,9 +242,7 @@ static __init void dm355_leopard_init(void)
242 dm355leopard_dm9000_rsrc[2].start = gpio_to_irq(9); 242 dm355leopard_dm9000_rsrc[2].start = gpio_to_irq(9);
243 243
244 aemif = clk_get(&dm355leopard_dm9000.dev, "aemif"); 244 aemif = clk_get(&dm355leopard_dm9000.dev, "aemif");
245 if (IS_ERR(aemif)) 245 if (!WARN(IS_ERR(aemif), "unable to get AEMIF clock\n"))
246 WARN("%s: unable to get AEMIF clock\n", __func__);
247 else
248 clk_prepare_enable(aemif); 246 clk_prepare_enable(aemif);
249 247
250 platform_add_devices(davinci_leopard_devices, 248 platform_add_devices(davinci_leopard_devices,
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 3eaeaca5da05..3c87e40650cf 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -612,8 +612,7 @@ void __init ti814x_init_early(void)
612 ti814x_clockdomains_init(); 612 ti814x_clockdomains_init();
613 dm814x_hwmod_init(); 613 dm814x_hwmod_init();
614 omap_hwmod_init_postsetup(); 614 omap_hwmod_init_postsetup();
615 if (of_have_populated_dt()) 615 omap_clk_soc_init = dm814x_dt_clk_init;
616 omap_clk_soc_init = dm814x_dt_clk_init;
617} 616}
618 617
619void __init ti816x_init_early(void) 618void __init ti816x_init_early(void)
diff --git a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
index 6256052893ec..1b96cdfd1558 100644
--- a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
@@ -599,7 +599,7 @@ static struct omap_timer_capability_dev_attr capability_alwon_dev_attr = {
599static struct omap_hwmod dm814x_timer1_hwmod = { 599static struct omap_hwmod dm814x_timer1_hwmod = {
600 .name = "timer1", 600 .name = "timer1",
601 .clkdm_name = "alwon_l3s_clkdm", 601 .clkdm_name = "alwon_l3s_clkdm",
602 .main_clk = "timer_sys_ck", 602 .main_clk = "timer1_fck",
603 .dev_attr = &capability_alwon_dev_attr, 603 .dev_attr = &capability_alwon_dev_attr,
604 .class = &dm816x_timer_hwmod_class, 604 .class = &dm816x_timer_hwmod_class,
605 .flags = HWMOD_NO_IDLEST, 605 .flags = HWMOD_NO_IDLEST,
@@ -608,7 +608,7 @@ static struct omap_hwmod dm814x_timer1_hwmod = {
608static struct omap_hwmod_ocp_if dm814x_l4_ls__timer1 = { 608static struct omap_hwmod_ocp_if dm814x_l4_ls__timer1 = {
609 .master = &dm81xx_l4_ls_hwmod, 609 .master = &dm81xx_l4_ls_hwmod,
610 .slave = &dm814x_timer1_hwmod, 610 .slave = &dm814x_timer1_hwmod,
611 .clk = "timer_sys_ck", 611 .clk = "timer1_fck",
612 .user = OCP_USER_MPU, 612 .user = OCP_USER_MPU,
613}; 613};
614 614
@@ -636,7 +636,7 @@ static struct omap_hwmod_ocp_if dm816x_l4_ls__timer1 = {
636static struct omap_hwmod dm814x_timer2_hwmod = { 636static struct omap_hwmod dm814x_timer2_hwmod = {
637 .name = "timer2", 637 .name = "timer2",
638 .clkdm_name = "alwon_l3s_clkdm", 638 .clkdm_name = "alwon_l3s_clkdm",
639 .main_clk = "timer_sys_ck", 639 .main_clk = "timer2_fck",
640 .dev_attr = &capability_alwon_dev_attr, 640 .dev_attr = &capability_alwon_dev_attr,
641 .class = &dm816x_timer_hwmod_class, 641 .class = &dm816x_timer_hwmod_class,
642 .flags = HWMOD_NO_IDLEST, 642 .flags = HWMOD_NO_IDLEST,
@@ -645,7 +645,7 @@ static struct omap_hwmod dm814x_timer2_hwmod = {
645static struct omap_hwmod_ocp_if dm814x_l4_ls__timer2 = { 645static struct omap_hwmod_ocp_if dm814x_l4_ls__timer2 = {
646 .master = &dm81xx_l4_ls_hwmod, 646 .master = &dm81xx_l4_ls_hwmod,
647 .slave = &dm814x_timer2_hwmod, 647 .slave = &dm814x_timer2_hwmod,
648 .clk = "timer_sys_ck", 648 .clk = "timer2_fck",
649 .user = OCP_USER_MPU, 649 .user = OCP_USER_MPU,
650}; 650};
651 651
@@ -1230,8 +1230,6 @@ static struct omap_hwmod_ocp_if dm81xx_tptc3__alwon_l3_fast = {
1230 1230
1231/* 1231/*
1232 * REVISIT: Test and enable the following once clocks work: 1232 * REVISIT: Test and enable the following once clocks work:
1233 * dm81xx_l4_ls__gpio1
1234 * dm81xx_l4_ls__gpio2
1235 * dm81xx_l4_ls__mailbox 1233 * dm81xx_l4_ls__mailbox
1236 * dm81xx_alwon_l3_slow__gpmc 1234 * dm81xx_alwon_l3_slow__gpmc
1237 * dm81xx_default_l3_slow__usbss 1235 * dm81xx_default_l3_slow__usbss
@@ -1250,6 +1248,8 @@ static struct omap_hwmod_ocp_if *dm814x_hwmod_ocp_ifs[] __initdata = {
1250 &dm81xx_l4_ls__wd_timer1, 1248 &dm81xx_l4_ls__wd_timer1,
1251 &dm81xx_l4_ls__i2c1, 1249 &dm81xx_l4_ls__i2c1,
1252 &dm81xx_l4_ls__i2c2, 1250 &dm81xx_l4_ls__i2c2,
1251 &dm81xx_l4_ls__gpio1,
1252 &dm81xx_l4_ls__gpio2,
1253 &dm81xx_l4_ls__elm, 1253 &dm81xx_l4_ls__elm,
1254 &dm81xx_l4_ls__mcspi1, 1254 &dm81xx_l4_ls__mcspi1,
1255 &dm81xx_alwon_l3_fast__tpcc, 1255 &dm81xx_alwon_l3_fast__tpcc,
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 3fc2cbe52113..5b2f5138d938 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -664,6 +664,13 @@ static struct omap_prcm_init_data am3_prm_data __initdata = {
664}; 664};
665#endif 665#endif
666 666
667#ifdef CONFIG_SOC_TI81XX
668static struct omap_prcm_init_data dm814_pllss_data __initdata = {
669 .index = TI_CLKM_PLLSS,
670 .init = am33xx_prm_init,
671};
672#endif
673
667#ifdef CONFIG_ARCH_OMAP4 674#ifdef CONFIG_ARCH_OMAP4
668static struct omap_prcm_init_data omap4_prm_data __initdata = { 675static struct omap_prcm_init_data omap4_prm_data __initdata = {
669 .index = TI_CLKM_PRM, 676 .index = TI_CLKM_PRM,
@@ -715,6 +722,7 @@ static const struct of_device_id const omap_prcm_dt_match_table[] __initconst =
715#endif 722#endif
716#ifdef CONFIG_SOC_TI81XX 723#ifdef CONFIG_SOC_TI81XX
717 { .compatible = "ti,dm814-prcm", .data = &am3_prm_data }, 724 { .compatible = "ti,dm814-prcm", .data = &am3_prm_data },
725 { .compatible = "ti,dm814-pllss", .data = &dm814_pllss_data },
718 { .compatible = "ti,dm816-prcm", .data = &am3_prm_data }, 726 { .compatible = "ti,dm816-prcm", .data = &am3_prm_data },
719#endif 727#endif
720#ifdef CONFIG_ARCH_OMAP2 728#ifdef CONFIG_ARCH_OMAP2
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index 41e476e571d7..d8965c682d2f 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -98,8 +98,8 @@ static void cs3_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
98static int cs3_gpio_get(struct gpio_chip *chip, unsigned offset) 98static int cs3_gpio_get(struct gpio_chip *chip, unsigned offset)
99{ 99{
100 if (offset > 15) 100 if (offset > 15)
101 return simpad_get_cs3_ro() & (1 << (offset - 16)); 101 return !!(simpad_get_cs3_ro() & (1 << (offset - 16)));
102 return simpad_get_cs3_shadow() & (1 << offset); 102 return !!(simpad_get_cs3_shadow() & (1 << offset));
103}; 103};
104 104
105static int cs3_gpio_direction_input(struct gpio_chip *chip, unsigned offset) 105static int cs3_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/clk/ti/clk-814x.c b/drivers/clk/ti/clk-814x.c
index e172920798ea..9e85fcc74cc9 100644
--- a/drivers/clk/ti/clk-814x.c
+++ b/drivers/clk/ti/clk-814x.c
@@ -14,10 +14,14 @@ static struct ti_dt_clk dm814_clks[] = {
14 DT_CLK(NULL, "devosc_ck", "devosc_ck"), 14 DT_CLK(NULL, "devosc_ck", "devosc_ck"),
15 DT_CLK(NULL, "mpu_ck", "mpu_ck"), 15 DT_CLK(NULL, "mpu_ck", "mpu_ck"),
16 DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"), 16 DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"),
17 DT_CLK(NULL, "sysclk5_ck", "sysclk5_ck"),
17 DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"), 18 DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"),
19 DT_CLK(NULL, "sysclk8_ck", "sysclk8_ck"),
18 DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"), 20 DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"),
19 DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"), 21 DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"),
20 DT_CLK(NULL, "timer_sys_ck", "devosc_ck"), 22 DT_CLK(NULL, "timer_sys_ck", "devosc_ck"),
23 DT_CLK(NULL, "timer1_fck", "timer1_fck"),
24 DT_CLK(NULL, "timer2_fck", "timer2_fck"),
21 DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"), 25 DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"),
22 DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"), 26 DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"),
23 { .node_name = NULL }, 27 { .node_name = NULL },
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h
index 75205df29b9c..9a638601cb09 100644
--- a/include/linux/clk/ti.h
+++ b/include/linux/clk/ti.h
@@ -195,6 +195,7 @@ enum {
195 TI_CLKM_PRM, 195 TI_CLKM_PRM,
196 TI_CLKM_SCRM, 196 TI_CLKM_SCRM,
197 TI_CLKM_CTRL, 197 TI_CLKM_CTRL,
198 TI_CLKM_PLLSS,
198 CLK_MAX_MEMMAPS 199 CLK_MAX_MEMMAPS
199}; 200};
200 201