diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-20 20:44:16 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-20 20:44:16 -0500 |
commit | 0c582826a158d9cab69b9cc66d637aee73fed0dc (patch) | |
tree | c1e2fe9d97850bd49c878ab86f5beee171f58d78 | |
parent | e3de671dd6784e30821e64f67f854b90b4496a68 (diff) | |
parent | 08ceca8ea629828e4cb922c121b5c87681c97fb7 (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-- | MAINTAINERS | 3 | ||||
-rw-r--r-- | arch/arm/boot/dts/dm814x-clocks.dtsi | 109 | ||||
-rw-r--r-- | arch/arm/boot/dts/dm814x.dtsi | 33 | ||||
-rw-r--r-- | arch/arm/common/scoop.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-davinci/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm355-evm.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm355-leopard.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/io.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm_common.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/simpad.c | 4 | ||||
-rw-r--r-- | drivers/clk/ti/clk-814x.c | 4 | ||||
-rw-r--r-- | include/linux/clk/ti.h | 1 |
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> | |||
2377 | M: Gregory Fong <gregory.0xf0@gmail.com> | 2377 | M: Gregory Fong <gregory.0xf0@gmail.com> |
2378 | M: Florian Fainelli <f.fainelli@gmail.com> | 2378 | M: Florian Fainelli <f.fainelli@gmail.com> |
2379 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 2379 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
2380 | L: bcm-kernel-feedback-list@broadcom.com | ||
2380 | T: git git://github.com/broadcom/stblinux.git | 2381 | T: git git://github.com/broadcom/stblinux.git |
2381 | S: Maintained | 2382 | S: Maintained |
2382 | F: arch/arm/mach-bcm/*brcmstb* | 2383 | F: arch/arm/mach-bcm/*brcmstb* |
@@ -2450,7 +2451,7 @@ N: bcm88312 | |||
2450 | 2451 | ||
2451 | BROADCOM BRCMSTB GPIO DRIVER | 2452 | BROADCOM BRCMSTB GPIO DRIVER |
2452 | M: Gregory Fong <gregory.0xf0@gmail.com> | 2453 | M: Gregory Fong <gregory.0xf0@gmail.com> |
2453 | L: bcm-kernel-feedback-list@broadcom.com> | 2454 | L: bcm-kernel-feedback-list@broadcom.com |
2454 | S: Supported | 2455 | S: Supported |
2455 | F: drivers/gpio/gpio-brcmstb.c | 2456 | F: drivers/gpio/gpio-brcmstb.c |
2456 | F: Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt | 2457 | F: 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 | ||
90 | static int scoop_gpio_direction_input(struct gpio_chip *chip, | 90 | static 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 | ||
40 | config ARCH_DAVINCI_DA850 | 41 | config 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 | ||
619 | void __init ti816x_init_early(void) | 618 | void __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 = { | |||
599 | static struct omap_hwmod dm814x_timer1_hwmod = { | 599 | static 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 = { | |||
608 | static struct omap_hwmod_ocp_if dm814x_l4_ls__timer1 = { | 608 | static 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 = { | |||
636 | static struct omap_hwmod dm814x_timer2_hwmod = { | 636 | static 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 = { | |||
645 | static struct omap_hwmod_ocp_if dm814x_l4_ls__timer2 = { | 645 | static 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 | ||
668 | static 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 |
668 | static struct omap_prcm_init_data omap4_prm_data __initdata = { | 675 | static 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) | |||
98 | static int cs3_gpio_get(struct gpio_chip *chip, unsigned offset) | 98 | static 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 | ||
105 | static int cs3_gpio_direction_input(struct gpio_chip *chip, unsigned offset) | 105 | static 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 | ||