Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Olof Johansson:
"This week's arm-soc fixes:

- Another set of OMAP fixes
* Clock fixes
* Restart handling
* PHY regulators
* SATA hwmod data for DRA7
+ Some trivial fixes and removal of a bit of dead code
- Exynos fixes
* A bunch of clock fixes
* Some SMP fixes
* Exynos multi-core timer: register as clocksource and fix ftrace.
+ a few other minor fixes

There's also a couple more patches, and at91 fix for USB caused by
common clock conversion, and more MAINTAINERS entries for shmobile.

We're definitely switching to only regression fixes from here on out,
we've been a little less strict than usual up until now"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
ARM: at91: at91sam9x5: add clocks for usb device
ARM: EXYNOS: Register cpuidle device only on exynos4210 and 5250
ARM: dts: Add clock property for mfc_pd in exynos5420
clk: exynos5420: Add IDs for clocks used in PD mfc
ARM: EXYNOS: Add support for clock handling in power domain
ARM: OMAP2+: Remove non working OMAP HDMI audio initialization
ARM: imx: fix shared gate clock
ARM: dts: Update the parent for Audss clocks in Exynos5420
ARM: EXYNOS: Update secondary boot addr for secure mode
ARM: dts: Fix TI CPSW Phy mode selection on IGEP COM AQUILA.
ARM: dts: am335x-evmsk: Enable the McASP FIFO for audio
ARM: dts: am335x-evm: Enable the McASP FIFO for audio
ARM: OMAP2+: Make GPMC skip disabled devices
ARM: OMAP2+: create dsp device only on OMAP3 SoCs
ARM: dts: dra7-evm: Make VDDA_1V8_PHY supply always on
ARM: DRA7/AM43XX: fix header definition for omap44xx_restart
ARM: OMAP2+: clock/dpll: fix _dpll_test_fint arithmetics overflow
ARM: DRA7: hwmod: Add SYSCONFIG for usb_otg_ss
ARM: DRA7: hwmod: Fixup SATA hwmod
ARM: OMAP3: PRM/CM: Add back macros used by TI DSP/Bridge driver
...

+20
Documentation/devicetree/bindings/arm/exynos/power_domain.txt
··· 9 9 - reg: physical base address of the controller and length of memory mapped 10 10 region. 11 11 12 + Optional Properties: 13 + - clocks: List of clock handles. The parent clocks of the input clocks to the 14 + devices in this power domain are set to oscclk before power gating 15 + and restored back after powering on a domain. This is required for 16 + all domains which are powered on and off and not required for unused 17 + domains. 18 + - clock-names: The following clocks can be specified: 19 + - oscclk: Oscillator clock. 20 + - pclkN, clkN: Pairs of parent of input clock and input clock to the 21 + devices in this power domain. Maximum of 4 pairs (N = 0 to 3) 22 + are supported currently. 23 + 12 24 Node of a device using power domains must have a samsung,power-domain property 13 25 defined with a phandle to respective power domain. 14 26 ··· 29 17 lcd0: power-domain-lcd0 { 30 18 compatible = "samsung,exynos4210-pd"; 31 19 reg = <0x10023C00 0x10>; 20 + }; 21 + 22 + mfc_pd: power-domain@10044060 { 23 + compatible = "samsung,exynos4210-pd"; 24 + reg = <0x10044060 0x20>; 25 + clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, 26 + <&clock CLK_MOUT_USER_ACLK333>; 27 + clock-names = "oscclk", "pclk0", "clk0"; 32 28 }; 33 29 34 30 Example of the node using power domain:
+14
MAINTAINERS
··· 1314 1314 Q: http://patchwork.kernel.org/project/linux-sh/list/ 1315 1315 T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next 1316 1316 S: Supported 1317 + F: arch/arm/boot/dts/emev2* 1318 + F: arch/arm/boot/dts/r7s* 1319 + F: arch/arm/boot/dts/r8a* 1320 + F: arch/arm/boot/dts/sh* 1321 + F: arch/arm/configs/ape6evm_defconfig 1322 + F: arch/arm/configs/armadillo800eva_defconfig 1323 + F: arch/arm/configs/bockw_defconfig 1324 + F: arch/arm/configs/genmai_defconfig 1325 + F: arch/arm/configs/koelsch_defconfig 1326 + F: arch/arm/configs/kzm9g_defconfig 1327 + F: arch/arm/configs/lager_defconfig 1328 + F: arch/arm/configs/mackerel_defconfig 1329 + F: arch/arm/configs/marzen_defconfig 1330 + F: arch/arm/configs/shmobile_defconfig 1317 1331 F: arch/arm/mach-shmobile/ 1318 1332 F: drivers/sh/ 1319 1333
+2 -2
arch/arm/boot/dts/am335x-evm.dts
··· 529 529 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 530 530 0 0 1 2 531 531 >; 532 - tx-num-evt = <1>; 533 - rx-num-evt = <1>; 532 + tx-num-evt = <32>; 533 + rx-num-evt = <32>; 534 534 }; 535 535 536 536 &tps {
+2 -2
arch/arm/boot/dts/am335x-evmsk.dts
··· 560 560 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 561 561 0 0 1 2 562 562 >; 563 - tx-num-evt = <1>; 564 - rx-num-evt = <1>; 563 + tx-num-evt = <32>; 564 + rx-num-evt = <32>; 565 565 }; 566 566 567 567 &tscadc {
+6
arch/arm/boot/dts/am335x-igep0033.dtsi
··· 105 105 106 106 &cpsw_emac0 { 107 107 phy_id = <&davinci_mdio>, <0>; 108 + phy-mode = "rmii"; 108 109 }; 109 110 110 111 &cpsw_emac1 { 111 112 phy_id = <&davinci_mdio>, <1>; 113 + phy-mode = "rmii"; 114 + }; 115 + 116 + &phy_sel { 117 + rmii-clock-ext; 112 118 }; 113 119 114 120 &elm {
+2
arch/arm/boot/dts/at91sam9x5.dtsi
··· 1045 1045 reg = <0x00500000 0x80000 1046 1046 0xf803c000 0x400>; 1047 1047 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>; 1048 + clocks = <&usb>, <&udphs_clk>; 1049 + clock-names = "hclk", "pclk"; 1048 1050 status = "disabled"; 1049 1051 1050 1052 ep0 {
+1
arch/arm/boot/dts/dra7-evm.dts
··· 240 240 regulator-name = "ldo3"; 241 241 regulator-min-microvolt = <1800000>; 242 242 regulator-max-microvolt = <1800000>; 243 + regulator-always-on; 243 244 regulator-boot-on; 244 245 }; 245 246
+6 -4
arch/arm/boot/dts/dra7xx-clocks.dtsi
··· 673 673 674 674 l3_iclk_div: l3_iclk_div { 675 675 #clock-cells = <0>; 676 - compatible = "fixed-factor-clock"; 676 + compatible = "ti,divider-clock"; 677 + ti,max-div = <2>; 678 + ti,bit-shift = <4>; 679 + reg = <0x0100>; 677 680 clocks = <&dpll_core_h12x2_ck>; 678 - clock-mult = <1>; 679 - clock-div = <1>; 681 + ti,index-power-of-two; 680 682 }; 681 683 682 684 l4_root_clk_div: l4_root_clk_div { ··· 686 684 compatible = "fixed-factor-clock"; 687 685 clocks = <&l3_iclk_div>; 688 686 clock-mult = <1>; 689 - clock-div = <1>; 687 + clock-div = <2>; 690 688 }; 691 689 692 690 video1_clk2_div: video1_clk2_div {
+1 -1
arch/arm/boot/dts/exynos4.dtsi
··· 554 554 interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>; 555 555 clocks = <&clock CLK_PWM>; 556 556 clock-names = "timers"; 557 - #pwm-cells = <2>; 557 + #pwm-cells = <3>; 558 558 status = "disabled"; 559 559 }; 560 560
+4 -1
arch/arm/boot/dts/exynos5420.dtsi
··· 167 167 compatible = "samsung,exynos5420-audss-clock"; 168 168 reg = <0x03810000 0x0C>; 169 169 #clock-cells = <1>; 170 - clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>, 170 + clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>, 171 171 <&clock CLK_SCLK_MAUDIO0>, <&clock CLK_SCLK_MAUPCM0>; 172 172 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in"; 173 173 }; ··· 260 260 mfc_pd: power-domain@10044060 { 261 261 compatible = "samsung,exynos4210-pd"; 262 262 reg = <0x10044060 0x20>; 263 + clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, 264 + <&clock CLK_MOUT_USER_ACLK333>; 265 + clock-names = "oscclk", "pclk0", "clk0"; 263 266 }; 264 267 265 268 disp_pd: power-domain@100440C0 {
+3 -5
arch/arm/mach-exynos/exynos.c
··· 173 173 174 174 void __init exynos_cpuidle_init(void) 175 175 { 176 - if (soc_is_exynos5440()) 177 - return; 178 - 179 - platform_device_register(&exynos_cpuidle); 176 + if (soc_is_exynos4210() || soc_is_exynos5250()) 177 + platform_device_register(&exynos_cpuidle); 180 178 } 181 179 182 180 void __init exynos_cpufreq_init(void) ··· 295 297 * This is called from smp_prepare_cpus if we've built for SMP, but 296 298 * we still need to set it up for PM and firmware ops if not. 297 299 */ 298 - if (!IS_ENABLED(SMP)) 300 + if (!IS_ENABLED(CONFIG_SMP)) 299 301 exynos_sysram_init(); 300 302 301 303 exynos_cpuidle_init();
+7 -2
arch/arm/mach-exynos/firmware.c
··· 57 57 58 58 boot_reg = sysram_ns_base_addr + 0x1c; 59 59 60 - if (!soc_is_exynos4212() && !soc_is_exynos3250()) 61 - boot_reg += 4*cpu; 60 + /* 61 + * Almost all Exynos-series of SoCs that run in secure mode don't need 62 + * additional offset for every CPU, with Exynos4412 being the only 63 + * exception. 64 + */ 65 + if (soc_is_exynos4412()) 66 + boot_reg += 4 * cpu; 62 67 63 68 __raw_writel(boot_addr, boot_reg); 64 69 return 0;
+60 -1
arch/arm/mach-exynos/pm_domains.c
··· 17 17 #include <linux/err.h> 18 18 #include <linux/slab.h> 19 19 #include <linux/pm_domain.h> 20 + #include <linux/clk.h> 20 21 #include <linux/delay.h> 21 22 #include <linux/of_address.h> 22 23 #include <linux/of_platform.h> 23 24 #include <linux/sched.h> 24 25 25 26 #include "regs-pmu.h" 27 + 28 + #define MAX_CLK_PER_DOMAIN 4 26 29 27 30 /* 28 31 * Exynos specific wrapper around the generic power domain ··· 35 32 char const *name; 36 33 bool is_off; 37 34 struct generic_pm_domain pd; 35 + struct clk *oscclk; 36 + struct clk *clk[MAX_CLK_PER_DOMAIN]; 37 + struct clk *pclk[MAX_CLK_PER_DOMAIN]; 38 38 }; 39 39 40 40 static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) ··· 49 43 50 44 pd = container_of(domain, struct exynos_pm_domain, pd); 51 45 base = pd->base; 46 + 47 + /* Set oscclk before powering off a domain*/ 48 + if (!power_on) { 49 + int i; 50 + 51 + for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) { 52 + if (IS_ERR(pd->clk[i])) 53 + break; 54 + if (clk_set_parent(pd->clk[i], pd->oscclk)) 55 + pr_err("%s: error setting oscclk as parent to clock %d\n", 56 + pd->name, i); 57 + } 58 + } 52 59 53 60 pwr = power_on ? S5P_INT_LOCAL_PWR_EN : 0; 54 61 __raw_writel(pwr, base); ··· 79 60 cpu_relax(); 80 61 usleep_range(80, 100); 81 62 } 63 + 64 + /* Restore clocks after powering on a domain*/ 65 + if (power_on) { 66 + int i; 67 + 68 + for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) { 69 + if (IS_ERR(pd->clk[i])) 70 + break; 71 + if (clk_set_parent(pd->clk[i], pd->pclk[i])) 72 + pr_err("%s: error setting parent to clock%d\n", 73 + pd->name, i); 74 + } 75 + } 76 + 82 77 return 0; 83 78 } 84 79 ··· 185 152 186 153 for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { 187 154 struct exynos_pm_domain *pd; 188 - int on; 155 + int on, i; 156 + struct device *dev; 189 157 190 158 pdev = of_find_device_by_node(np); 159 + dev = &pdev->dev; 191 160 192 161 pd = kzalloc(sizeof(*pd), GFP_KERNEL); 193 162 if (!pd) { ··· 205 170 pd->pd.power_on = exynos_pd_power_on; 206 171 pd->pd.of_node = np; 207 172 173 + pd->oscclk = clk_get(dev, "oscclk"); 174 + if (IS_ERR(pd->oscclk)) 175 + goto no_clk; 176 + 177 + for (i = 0; i < MAX_CLK_PER_DOMAIN; i++) { 178 + char clk_name[8]; 179 + 180 + snprintf(clk_name, sizeof(clk_name), "clk%d", i); 181 + pd->clk[i] = clk_get(dev, clk_name); 182 + if (IS_ERR(pd->clk[i])) 183 + break; 184 + snprintf(clk_name, sizeof(clk_name), "pclk%d", i); 185 + pd->pclk[i] = clk_get(dev, clk_name); 186 + if (IS_ERR(pd->pclk[i])) { 187 + clk_put(pd->clk[i]); 188 + pd->clk[i] = ERR_PTR(-EINVAL); 189 + break; 190 + } 191 + } 192 + 193 + if (IS_ERR(pd->clk[0])) 194 + clk_put(pd->oscclk); 195 + 196 + no_clk: 208 197 platform_set_drvdata(pdev, pd); 209 198 210 199 on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN;
+23 -8
arch/arm/mach-imx/clk-gate2.c
··· 67 67 68 68 spin_lock_irqsave(gate->lock, flags); 69 69 70 - if (gate->share_count && --(*gate->share_count) > 0) 71 - goto out; 70 + if (gate->share_count) { 71 + if (WARN_ON(*gate->share_count == 0)) 72 + goto out; 73 + else if (--(*gate->share_count) > 0) 74 + goto out; 75 + } 72 76 73 77 reg = readl(gate->reg); 74 78 reg &= ~(3 << gate->bit_idx); ··· 82 78 spin_unlock_irqrestore(gate->lock, flags); 83 79 } 84 80 85 - static int clk_gate2_is_enabled(struct clk_hw *hw) 81 + static int clk_gate2_reg_is_enabled(void __iomem *reg, u8 bit_idx) 86 82 { 87 - u32 reg; 88 - struct clk_gate2 *gate = to_clk_gate2(hw); 83 + u32 val = readl(reg); 89 84 90 - reg = readl(gate->reg); 91 - 92 - if (((reg >> gate->bit_idx) & 1) == 1) 85 + if (((val >> bit_idx) & 1) == 1) 93 86 return 1; 94 87 95 88 return 0; 89 + } 90 + 91 + static int clk_gate2_is_enabled(struct clk_hw *hw) 92 + { 93 + struct clk_gate2 *gate = to_clk_gate2(hw); 94 + 95 + if (gate->share_count) 96 + return !!(*gate->share_count); 97 + else 98 + return clk_gate2_reg_is_enabled(gate->reg, gate->bit_idx); 96 99 } 97 100 98 101 static struct clk_ops clk_gate2_ops = { ··· 127 116 gate->bit_idx = bit_idx; 128 117 gate->flags = clk_gate2_flags; 129 118 gate->lock = lock; 119 + 120 + /* Initialize share_count per hardware state */ 121 + if (share_count) 122 + *share_count = clk_gate2_reg_is_enabled(reg, bit_idx) ? 1 : 0; 130 123 gate->share_count = share_count; 131 124 132 125 init.name = name;
+1 -1
arch/arm/mach-omap2/clkt_dpll.c
··· 76 76 * (assuming that it is counting N upwards), or -2 if the enclosing loop 77 77 * should skip to the next iteration (again assuming N is increasing). 78 78 */ 79 - static int _dpll_test_fint(struct clk_hw_omap *clk, u8 n) 79 + static int _dpll_test_fint(struct clk_hw_omap *clk, unsigned int n) 80 80 { 81 81 struct dpll_data *dd; 82 82 long fint, fint_min, fint_max;
+3
arch/arm/mach-omap2/cm-regbits-34xx.h
··· 26 26 #define OMAP3430_EN_WDT3_SHIFT 12 27 27 #define OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_MASK (1 << 0) 28 28 #define OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT 0 29 + #define OMAP3430_IVA2_DPLL_FREQSEL_SHIFT 4 29 30 #define OMAP3430_IVA2_DPLL_FREQSEL_MASK (0xf << 4) 30 31 #define OMAP3430_EN_IVA2_DPLL_DRIFTGUARD_SHIFT 3 32 + #define OMAP3430_EN_IVA2_DPLL_SHIFT 0 31 33 #define OMAP3430_EN_IVA2_DPLL_MASK (0x7 << 0) 32 34 #define OMAP3430_ST_IVA2_SHIFT 0 33 35 #define OMAP3430_ST_IVA2_CLK_MASK (1 << 0) 36 + #define OMAP3430_AUTO_IVA2_DPLL_SHIFT 0 34 37 #define OMAP3430_AUTO_IVA2_DPLL_MASK (0x7 << 0) 35 38 #define OMAP3430_IVA2_CLK_SRC_SHIFT 19 36 39 #define OMAP3430_IVA2_CLK_SRC_WIDTH 3
+2 -1
arch/arm/mach-omap2/common.h
··· 162 162 } 163 163 #endif 164 164 165 - #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) 165 + #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ 166 + defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX) 166 167 void omap44xx_restart(enum reboot_mode mode, const char *cmd); 167 168 #else 168 169 static inline void omap44xx_restart(enum reboot_mode mode, const char *cmd)
-28
arch/arm/mach-omap2/devices.c
··· 297 297 static inline void omap_init_audio(void) {} 298 298 #endif 299 299 300 - #if defined(CONFIG_SND_OMAP_SOC_OMAP_HDMI) || \ 301 - defined(CONFIG_SND_OMAP_SOC_OMAP_HDMI_MODULE) 302 - 303 - static struct platform_device omap_hdmi_audio = { 304 - .name = "omap-hdmi-audio", 305 - .id = -1, 306 - }; 307 - 308 - static void __init omap_init_hdmi_audio(void) 309 - { 310 - struct omap_hwmod *oh; 311 - struct platform_device *pdev; 312 - 313 - oh = omap_hwmod_lookup("dss_hdmi"); 314 - if (!oh) 315 - return; 316 - 317 - pdev = omap_device_build("omap-hdmi-audio-dai", -1, oh, NULL, 0); 318 - WARN(IS_ERR(pdev), 319 - "Can't build omap_device for omap-hdmi-audio-dai.\n"); 320 - 321 - platform_device_register(&omap_hdmi_audio); 322 - } 323 - #else 324 - static inline void omap_init_hdmi_audio(void) {} 325 - #endif 326 - 327 300 #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) 328 301 329 302 #include <linux/platform_data/spi-omap2-mcspi.h> ··· 432 459 */ 433 460 omap_init_audio(); 434 461 omap_init_camera(); 435 - omap_init_hdmi_audio(); 436 462 omap_init_mbox(); 437 463 /* If dtb is there, the devices will be created dynamically */ 438 464 if (!of_have_populated_dt()) {
+10
arch/arm/mach-omap2/dsp.c
··· 29 29 #ifdef CONFIG_TIDSPBRIDGE_DVFS 30 30 #include "omap-pm.h" 31 31 #endif 32 + #include "soc.h" 32 33 33 34 #include <linux/platform_data/dsp-omap.h> 34 35 ··· 60 59 phys_addr_t size = CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE; 61 60 phys_addr_t paddr; 62 61 62 + if (!cpu_is_omap34xx()) 63 + return; 64 + 63 65 if (!size) 64 66 return; 65 67 ··· 86 82 struct platform_device *pdev; 87 83 int err = -ENOMEM; 88 84 struct omap_dsp_platform_data *pdata = &omap_dsp_pdata; 85 + 86 + if (!cpu_is_omap34xx()) 87 + return 0; 89 88 90 89 pdata->phys_mempool_base = omap_dsp_get_mempool_base(); 91 90 ··· 122 115 123 116 static void __exit omap_dsp_exit(void) 124 117 { 118 + if (!cpu_is_omap34xx()) 119 + return; 120 + 125 121 platform_device_unregister(omap_dsp_pdev); 126 122 } 127 123 module_exit(omap_dsp_exit);
+1 -1
arch/arm/mach-omap2/gpmc.c
··· 1615 1615 return ret; 1616 1616 } 1617 1617 1618 - for_each_child_of_node(pdev->dev.of_node, child) { 1618 + for_each_available_child_of_node(pdev->dev.of_node, child) { 1619 1619 1620 1620 if (!child->name) 1621 1621 continue;
+13 -5
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
··· 1268 1268 }; 1269 1269 1270 1270 /* sata */ 1271 - static struct omap_hwmod_opt_clk sata_opt_clks[] = { 1272 - { .role = "ref_clk", .clk = "sata_ref_clk" }, 1273 - }; 1274 1271 1275 1272 static struct omap_hwmod dra7xx_sata_hwmod = { 1276 1273 .name = "sata", ··· 1275 1278 .clkdm_name = "l3init_clkdm", 1276 1279 .flags = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY, 1277 1280 .main_clk = "func_48m_fclk", 1281 + .mpu_rt_idx = 1, 1278 1282 .prcm = { 1279 1283 .omap4 = { 1280 1284 .clkctrl_offs = DRA7XX_CM_L3INIT_SATA_CLKCTRL_OFFSET, ··· 1283 1285 .modulemode = MODULEMODE_SWCTRL, 1284 1286 }, 1285 1287 }, 1286 - .opt_clks = sata_opt_clks, 1287 - .opt_clks_cnt = ARRAY_SIZE(sata_opt_clks), 1288 1288 }; 1289 1289 1290 1290 /* ··· 1727 1731 * 1728 1732 */ 1729 1733 1734 + static struct omap_hwmod_class_sysconfig dra7xx_usb_otg_ss_sysc = { 1735 + .rev_offs = 0x0000, 1736 + .sysc_offs = 0x0010, 1737 + .sysc_flags = (SYSC_HAS_DMADISABLE | SYSC_HAS_MIDLEMODE | 1738 + SYSC_HAS_SIDLEMODE), 1739 + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | 1740 + SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO | 1741 + MSTANDBY_SMART | MSTANDBY_SMART_WKUP), 1742 + .sysc_fields = &omap_hwmod_sysc_type2, 1743 + }; 1744 + 1730 1745 static struct omap_hwmod_class dra7xx_usb_otg_ss_hwmod_class = { 1731 1746 .name = "usb_otg_ss", 1747 + .sysc = &dra7xx_usb_otg_ss_sysc, 1732 1748 }; 1733 1749 1734 1750 /* usb_otg_ss1 */
+6
arch/arm/mach-omap2/prm-regbits-34xx.h
··· 35 35 #define OMAP3430_LOGICSTATEST_MASK (1 << 2) 36 36 #define OMAP3430_LASTLOGICSTATEENTERED_MASK (1 << 2) 37 37 #define OMAP3430_LASTPOWERSTATEENTERED_MASK (0x3 << 0) 38 + #define OMAP3430_GRPSEL_MCBSP5_MASK (1 << 10) 39 + #define OMAP3430_GRPSEL_MCBSP1_MASK (1 << 9) 38 40 #define OMAP3630_GRPSEL_UART4_MASK (1 << 18) 39 41 #define OMAP3430_GRPSEL_GPIO6_MASK (1 << 17) 40 42 #define OMAP3430_GRPSEL_GPIO5_MASK (1 << 16) ··· 44 42 #define OMAP3430_GRPSEL_GPIO3_MASK (1 << 14) 45 43 #define OMAP3430_GRPSEL_GPIO2_MASK (1 << 13) 46 44 #define OMAP3430_GRPSEL_UART3_MASK (1 << 11) 45 + #define OMAP3430_GRPSEL_GPT8_MASK (1 << 9) 46 + #define OMAP3430_GRPSEL_GPT7_MASK (1 << 8) 47 + #define OMAP3430_GRPSEL_GPT6_MASK (1 << 7) 48 + #define OMAP3430_GRPSEL_GPT5_MASK (1 << 6) 47 49 #define OMAP3430_GRPSEL_MCBSP4_MASK (1 << 2) 48 50 #define OMAP3430_GRPSEL_MCBSP3_MASK (1 << 1) 49 51 #define OMAP3430_GRPSEL_MCBSP2_MASK (1 << 0)
+4 -2
drivers/clk/samsung/clk-exynos5420.c
··· 631 631 SRC_TOP4, 16, 1), 632 632 MUX(0, "mout_user_aclk266", mout_user_aclk266_p, SRC_TOP4, 20, 1), 633 633 MUX(0, "mout_user_aclk166", mout_user_aclk166_p, SRC_TOP4, 24, 1), 634 - MUX(0, "mout_user_aclk333", mout_user_aclk333_p, SRC_TOP4, 28, 1), 634 + MUX(CLK_MOUT_USER_ACLK333, "mout_user_aclk333", mout_user_aclk333_p, 635 + SRC_TOP4, 28, 1), 635 636 636 637 MUX(0, "mout_user_aclk400_disp1", mout_user_aclk400_disp1_p, 637 638 SRC_TOP5, 0, 1), ··· 685 684 SRC_TOP11, 12, 1), 686 685 MUX(0, "mout_sw_aclk266", mout_sw_aclk266_p, SRC_TOP11, 20, 1), 687 686 MUX(0, "mout_sw_aclk166", mout_sw_aclk166_p, SRC_TOP11, 24, 1), 688 - MUX(0, "mout_sw_aclk333", mout_sw_aclk333_p, SRC_TOP11, 28, 1), 687 + MUX(CLK_MOUT_SW_ACLK333, "mout_sw_aclk333", mout_sw_aclk333_p, 688 + SRC_TOP11, 28, 1), 689 689 690 690 MUX(0, "mout_sw_aclk400_disp1", mout_sw_aclk400_disp1_p, 691 691 SRC_TOP12, 4, 1),
+18 -2
drivers/clocksource/exynos_mct.c
··· 162 162 exynos4_mct_write(reg, EXYNOS4_MCT_G_TCON); 163 163 } 164 164 165 - static cycle_t exynos4_frc_read(struct clocksource *cs) 165 + static cycle_t notrace _exynos4_frc_read(void) 166 166 { 167 167 unsigned int lo, hi; 168 168 u32 hi2 = __raw_readl(reg_base + EXYNOS4_MCT_G_CNT_U); ··· 174 174 } while (hi != hi2); 175 175 176 176 return ((cycle_t)hi << 32) | lo; 177 + } 178 + 179 + static cycle_t exynos4_frc_read(struct clocksource *cs) 180 + { 181 + return _exynos4_frc_read(); 177 182 } 178 183 179 184 static void exynos4_frc_resume(struct clocksource *cs) ··· 197 192 198 193 static u64 notrace exynos4_read_sched_clock(void) 199 194 { 200 - return exynos4_frc_read(&mct_frc); 195 + return _exynos4_frc_read(); 196 + } 197 + 198 + static struct delay_timer exynos4_delay_timer; 199 + 200 + static cycles_t exynos4_read_current_timer(void) 201 + { 202 + return _exynos4_frc_read(); 201 203 } 202 204 203 205 static void __init exynos4_clocksource_init(void) 204 206 { 205 207 exynos4_mct_frc_start(); 208 + 209 + exynos4_delay_timer.read_current_timer = &exynos4_read_current_timer; 210 + exynos4_delay_timer.freq = clk_rate; 211 + register_current_timer_delay(&exynos4_delay_timer); 206 212 207 213 if (clocksource_register_hz(&mct_frc, clk_rate)) 208 214 panic("%s: can't register clocksource\n", mct_frc.name);
+2
include/dt-bindings/clock/exynos5420.h
··· 203 203 #define CLK_MOUT_G3D 641 204 204 #define CLK_MOUT_VPLL 642 205 205 #define CLK_MOUT_MAUDIO0 643 206 + #define CLK_MOUT_USER_ACLK333 644 207 + #define CLK_MOUT_SW_ACLK333 645 206 208 207 209 /* divider clocks */ 208 210 #define CLK_DOUT_PIXEL 768