diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-02-16 20:44:12 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-02-16 20:44:12 -0500 |
| commit | 64c0133eb88a3b0c11c42580a520fe78b71b3932 (patch) | |
| tree | bb7909bb8f2551177a6c77008d6f03e8ffb067bc | |
| parent | 88fe73cb804abc3d209a06f6221a7108d89ff04f (diff) | |
| parent | 410d7360541c0e21b58e56b64e5bcdbec9c1d285 (diff) | |
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC fixes from Arnd Bergmann:
"This week is a much smaller update, containing fixes only for TI OMAP,
NXP i.MX and Rockchips platforms:
omap:
- omap4 had problems with lost timer interrupts
- another IRQ handling issue with OMAP5
- A workaround for a regression in the pwm-omap-dmtimer driver
NXP i.MX:
- eMMC was broken on the new imx8mq-evk board
Rockchip:
- a fix for new dtc graph warnings and a regulator fix for rock64
- USB support broke on rk3328-rock64"
* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
arm64: dts: imx8mq: Fix boot from eMMC
ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
ARM: dts: Configure clock parent for pwm vibra
bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
arm64: dts: rockchip: enable usb-host regulators at boot on rk3328-rock64
arm64: dts: rockchip: fix graph_port warning on rk3399 bob kevin and excavator
ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type
clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
ARM: dts: rockchip: remove qos_cif1 from rk3188 power-domain
| -rw-r--r-- | arch/arm/boot/dts/omap4-droid4-xt894.dts | 11 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap5-board-common.dtsi | 9 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap5-cm-t54.dts | 12 | ||||
| -rw-r--r-- | arch/arm/boot/dts/rk3188.dtsi | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/cpuidle44xx.c | 16 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/display.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap-wakeupgen.c | 36 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 44 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 2 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts | 2 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 2 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts | 2 | ||||
| -rw-r--r-- | drivers/bus/ti-sysc.c | 6 | ||||
| -rw-r--r-- | drivers/clocksource/timer-ti-dm.c | 5 |
15 files changed, 109 insertions, 48 deletions
diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts index 04758a2a87f0..67d77eee9433 100644 --- a/arch/arm/boot/dts/omap4-droid4-xt894.dts +++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts | |||
| @@ -644,6 +644,17 @@ | |||
| 644 | }; | 644 | }; |
| 645 | }; | 645 | }; |
| 646 | 646 | ||
| 647 | /* Configure pwm clock source for timers 8 & 9 */ | ||
| 648 | &timer8 { | ||
| 649 | assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>; | ||
| 650 | assigned-clock-parents = <&sys_clkin_ck>; | ||
| 651 | }; | ||
| 652 | |||
| 653 | &timer9 { | ||
| 654 | assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>; | ||
| 655 | assigned-clock-parents = <&sys_clkin_ck>; | ||
| 656 | }; | ||
| 657 | |||
| 647 | /* | 658 | /* |
| 648 | * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for | 659 | * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for |
| 649 | * uart1 wakeirq. | 660 | * uart1 wakeirq. |
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi index bc853ebeda22..61a06f6add3c 100644 --- a/arch/arm/boot/dts/omap5-board-common.dtsi +++ b/arch/arm/boot/dts/omap5-board-common.dtsi | |||
| @@ -317,7 +317,8 @@ | |||
| 317 | 317 | ||
| 318 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { | 318 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { |
| 319 | pinctrl-single,pins = < | 319 | pinctrl-single,pins = < |
| 320 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1 */ | 320 | /* sys_nirq1 is pulled down as the SoC is inverting it for GIC */ |
| 321 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 321 | >; | 322 | >; |
| 322 | }; | 323 | }; |
| 323 | 324 | ||
| @@ -385,7 +386,8 @@ | |||
| 385 | 386 | ||
| 386 | palmas: palmas@48 { | 387 | palmas: palmas@48 { |
| 387 | compatible = "ti,palmas"; | 388 | compatible = "ti,palmas"; |
| 388 | interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ | 389 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ |
| 390 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>; | ||
| 389 | reg = <0x48>; | 391 | reg = <0x48>; |
| 390 | interrupt-controller; | 392 | interrupt-controller; |
| 391 | #interrupt-cells = <2>; | 393 | #interrupt-cells = <2>; |
| @@ -651,7 +653,8 @@ | |||
| 651 | pinctrl-names = "default"; | 653 | pinctrl-names = "default"; |
| 652 | pinctrl-0 = <&twl6040_pins>; | 654 | pinctrl-0 = <&twl6040_pins>; |
| 653 | 655 | ||
| 654 | interrupts = <GIC_SPI 119 IRQ_TYPE_NONE>; /* IRQ_SYS_2N cascaded to gic */ | 656 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ |
| 657 | interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_LOW>; | ||
| 655 | 658 | ||
| 656 | /* audpwron gpio defined in the board specific dts */ | 659 | /* audpwron gpio defined in the board specific dts */ |
| 657 | 660 | ||
diff --git a/arch/arm/boot/dts/omap5-cm-t54.dts b/arch/arm/boot/dts/omap5-cm-t54.dts index 5e21fb430a65..e78d3718f145 100644 --- a/arch/arm/boot/dts/omap5-cm-t54.dts +++ b/arch/arm/boot/dts/omap5-cm-t54.dts | |||
| @@ -181,6 +181,13 @@ | |||
| 181 | OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */ | 181 | OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */ |
| 182 | >; | 182 | >; |
| 183 | }; | 183 | }; |
| 184 | |||
| 185 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { | ||
| 186 | pinctrl-single,pins = < | ||
| 187 | /* sys_nirq1 is pulled down as the SoC is inverting it for GIC */ | ||
| 188 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 189 | >; | ||
| 190 | }; | ||
| 184 | }; | 191 | }; |
| 185 | 192 | ||
| 186 | &omap5_pmx_core { | 193 | &omap5_pmx_core { |
| @@ -414,8 +421,11 @@ | |||
| 414 | 421 | ||
| 415 | palmas: palmas@48 { | 422 | palmas: palmas@48 { |
| 416 | compatible = "ti,palmas"; | 423 | compatible = "ti,palmas"; |
| 417 | interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ | ||
| 418 | reg = <0x48>; | 424 | reg = <0x48>; |
| 425 | pinctrl-0 = <&palmas_sys_nirq_pins>; | ||
| 426 | pinctrl-names = "default"; | ||
| 427 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ | ||
| 428 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>; | ||
| 419 | interrupt-controller; | 429 | interrupt-controller; |
| 420 | #interrupt-cells = <2>; | 430 | #interrupt-cells = <2>; |
| 421 | ti,system-power-controller; | 431 | ti,system-power-controller; |
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi index 4acb501dd3f8..3ed49898f4b2 100644 --- a/arch/arm/boot/dts/rk3188.dtsi +++ b/arch/arm/boot/dts/rk3188.dtsi | |||
| @@ -719,7 +719,6 @@ | |||
| 719 | pm_qos = <&qos_lcdc0>, | 719 | pm_qos = <&qos_lcdc0>, |
| 720 | <&qos_lcdc1>, | 720 | <&qos_lcdc1>, |
| 721 | <&qos_cif0>, | 721 | <&qos_cif0>, |
| 722 | <&qos_cif1>, | ||
| 723 | <&qos_ipp>, | 722 | <&qos_ipp>, |
| 724 | <&qos_rga>; | 723 | <&qos_rga>; |
| 725 | }; | 724 | }; |
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index a8b291f00109..dae514c8276a 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
| @@ -152,6 +152,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
| 152 | mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && | 152 | mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && |
| 153 | (cx->mpu_logic_state == PWRDM_POWER_OFF); | 153 | (cx->mpu_logic_state == PWRDM_POWER_OFF); |
| 154 | 154 | ||
| 155 | /* Enter broadcast mode for periodic timers */ | ||
| 156 | tick_broadcast_enable(); | ||
| 157 | |||
| 158 | /* Enter broadcast mode for one-shot timers */ | ||
| 155 | tick_broadcast_enter(); | 159 | tick_broadcast_enter(); |
| 156 | 160 | ||
| 157 | /* | 161 | /* |
| @@ -218,15 +222,6 @@ fail: | |||
| 218 | return index; | 222 | return index; |
| 219 | } | 223 | } |
| 220 | 224 | ||
| 221 | /* | ||
| 222 | * For each cpu, setup the broadcast timer because local timers | ||
| 223 | * stops for the states above C1. | ||
| 224 | */ | ||
| 225 | static void omap_setup_broadcast_timer(void *arg) | ||
| 226 | { | ||
| 227 | tick_broadcast_enable(); | ||
| 228 | } | ||
| 229 | |||
| 230 | static struct cpuidle_driver omap4_idle_driver = { | 225 | static struct cpuidle_driver omap4_idle_driver = { |
| 231 | .name = "omap4_idle", | 226 | .name = "omap4_idle", |
| 232 | .owner = THIS_MODULE, | 227 | .owner = THIS_MODULE, |
| @@ -319,8 +314,5 @@ int __init omap4_idle_init(void) | |||
| 319 | if (!cpu_clkdm[0] || !cpu_clkdm[1]) | 314 | if (!cpu_clkdm[0] || !cpu_clkdm[1]) |
| 320 | return -ENODEV; | 315 | return -ENODEV; |
| 321 | 316 | ||
| 322 | /* Configure the broadcast timer on each cpu */ | ||
| 323 | on_each_cpu(omap_setup_broadcast_timer, NULL, 1); | ||
| 324 | |||
| 325 | return cpuidle_register(idle_driver, cpu_online_mask); | 317 | return cpuidle_register(idle_driver, cpu_online_mask); |
| 326 | } | 318 | } |
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index f86b72d1d59e..1444b4b4bd9f 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
| @@ -83,6 +83,7 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
| 83 | u32 enable_mask, enable_shift; | 83 | u32 enable_mask, enable_shift; |
| 84 | u32 pipd_mask, pipd_shift; | 84 | u32 pipd_mask, pipd_shift; |
| 85 | u32 reg; | 85 | u32 reg; |
| 86 | int ret; | ||
| 86 | 87 | ||
| 87 | if (dsi_id == 0) { | 88 | if (dsi_id == 0) { |
| 88 | enable_mask = OMAP4_DSI1_LANEENABLE_MASK; | 89 | enable_mask = OMAP4_DSI1_LANEENABLE_MASK; |
| @@ -98,7 +99,11 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
| 98 | return -ENODEV; | 99 | return -ENODEV; |
| 99 | } | 100 | } |
| 100 | 101 | ||
| 101 | regmap_read(omap4_dsi_mux_syscon, OMAP4_DSIPHY_SYSCON_OFFSET, ®); | 102 | ret = regmap_read(omap4_dsi_mux_syscon, |
| 103 | OMAP4_DSIPHY_SYSCON_OFFSET, | ||
| 104 | ®); | ||
| 105 | if (ret) | ||
| 106 | return ret; | ||
| 102 | 107 | ||
| 103 | reg &= ~enable_mask; | 108 | reg &= ~enable_mask; |
| 104 | reg &= ~pipd_mask; | 109 | reg &= ~pipd_mask; |
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c index fc5fb776a710..17558be4bf0a 100644 --- a/arch/arm/mach-omap2/omap-wakeupgen.c +++ b/arch/arm/mach-omap2/omap-wakeupgen.c | |||
| @@ -50,6 +50,9 @@ | |||
| 50 | #define OMAP4_NR_BANKS 4 | 50 | #define OMAP4_NR_BANKS 4 |
| 51 | #define OMAP4_NR_IRQS 128 | 51 | #define OMAP4_NR_IRQS 128 |
| 52 | 52 | ||
| 53 | #define SYS_NIRQ1_EXT_SYS_IRQ_1 7 | ||
| 54 | #define SYS_NIRQ2_EXT_SYS_IRQ_2 119 | ||
| 55 | |||
| 53 | static void __iomem *wakeupgen_base; | 56 | static void __iomem *wakeupgen_base; |
| 54 | static void __iomem *sar_base; | 57 | static void __iomem *sar_base; |
| 55 | static DEFINE_RAW_SPINLOCK(wakeupgen_lock); | 58 | static DEFINE_RAW_SPINLOCK(wakeupgen_lock); |
| @@ -153,6 +156,37 @@ static void wakeupgen_unmask(struct irq_data *d) | |||
| 153 | irq_chip_unmask_parent(d); | 156 | irq_chip_unmask_parent(d); |
| 154 | } | 157 | } |
| 155 | 158 | ||
| 159 | /* | ||
| 160 | * The sys_nirq pins bypass peripheral modules and are wired directly | ||
| 161 | * to MPUSS wakeupgen. They get automatically inverted for GIC. | ||
| 162 | */ | ||
| 163 | static int wakeupgen_irq_set_type(struct irq_data *d, unsigned int type) | ||
| 164 | { | ||
| 165 | bool inverted = false; | ||
| 166 | |||
| 167 | switch (type) { | ||
| 168 | case IRQ_TYPE_LEVEL_LOW: | ||
| 169 | type &= ~IRQ_TYPE_LEVEL_MASK; | ||
| 170 | type |= IRQ_TYPE_LEVEL_HIGH; | ||
| 171 | inverted = true; | ||
| 172 | break; | ||
| 173 | case IRQ_TYPE_EDGE_FALLING: | ||
| 174 | type &= ~IRQ_TYPE_EDGE_BOTH; | ||
| 175 | type |= IRQ_TYPE_EDGE_RISING; | ||
| 176 | inverted = true; | ||
| 177 | break; | ||
| 178 | default: | ||
| 179 | break; | ||
| 180 | } | ||
| 181 | |||
| 182 | if (inverted && d->hwirq != SYS_NIRQ1_EXT_SYS_IRQ_1 && | ||
| 183 | d->hwirq != SYS_NIRQ2_EXT_SYS_IRQ_2) | ||
| 184 | pr_warn("wakeupgen: irq%li polarity inverted in dts\n", | ||
| 185 | d->hwirq); | ||
| 186 | |||
| 187 | return irq_chip_set_type_parent(d, type); | ||
| 188 | } | ||
| 189 | |||
| 156 | #ifdef CONFIG_HOTPLUG_CPU | 190 | #ifdef CONFIG_HOTPLUG_CPU |
| 157 | static DEFINE_PER_CPU(u32 [MAX_NR_REG_BANKS], irqmasks); | 191 | static DEFINE_PER_CPU(u32 [MAX_NR_REG_BANKS], irqmasks); |
| 158 | 192 | ||
| @@ -446,7 +480,7 @@ static struct irq_chip wakeupgen_chip = { | |||
| 446 | .irq_mask = wakeupgen_mask, | 480 | .irq_mask = wakeupgen_mask, |
| 447 | .irq_unmask = wakeupgen_unmask, | 481 | .irq_unmask = wakeupgen_unmask, |
| 448 | .irq_retrigger = irq_chip_retrigger_hierarchy, | 482 | .irq_retrigger = irq_chip_retrigger_hierarchy, |
| 449 | .irq_set_type = irq_chip_set_type_parent, | 483 | .irq_set_type = wakeupgen_irq_set_type, |
| 450 | .flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND, | 484 | .flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND, |
| 451 | #ifdef CONFIG_SMP | 485 | #ifdef CONFIG_SMP |
| 452 | .irq_set_affinity = irq_chip_set_affinity_parent, | 486 | .irq_set_affinity = irq_chip_set_affinity_parent, |
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts index 64acccc4bfcb..f74b13aa5aa5 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts | |||
| @@ -227,34 +227,34 @@ | |||
| 227 | 227 | ||
| 228 | pinctrl_usdhc1_100mhz: usdhc1-100grp { | 228 | pinctrl_usdhc1_100mhz: usdhc1-100grp { |
| 229 | fsl,pins = < | 229 | fsl,pins = < |
| 230 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x85 | 230 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d |
| 231 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc5 | 231 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd |
| 232 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc5 | 232 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd |
| 233 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc5 | 233 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd |
| 234 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc5 | 234 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd |
| 235 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc5 | 235 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd |
| 236 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc5 | 236 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd |
| 237 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc5 | 237 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd |
| 238 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc5 | 238 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd |
| 239 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc5 | 239 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd |
| 240 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x85 | 240 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d |
| 241 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 | 241 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 |
| 242 | >; | 242 | >; |
| 243 | }; | 243 | }; |
| 244 | 244 | ||
| 245 | pinctrl_usdhc1_200mhz: usdhc1-200grp { | 245 | pinctrl_usdhc1_200mhz: usdhc1-200grp { |
| 246 | fsl,pins = < | 246 | fsl,pins = < |
| 247 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x87 | 247 | MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f |
| 248 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc7 | 248 | MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf |
| 249 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc7 | 249 | MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf |
| 250 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc7 | 250 | MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf |
| 251 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc7 | 251 | MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf |
| 252 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc7 | 252 | MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf |
| 253 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc7 | 253 | MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf |
| 254 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc7 | 254 | MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf |
| 255 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc7 | 255 | MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf |
| 256 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc7 | 256 | MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf |
| 257 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x87 | 257 | MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f |
| 258 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 | 258 | MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 |
| 259 | >; | 259 | >; |
| 260 | }; | 260 | }; |
diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi index 8e9d6d5ed7b2..b6d31499fb43 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi | |||
| @@ -360,6 +360,8 @@ | |||
| 360 | <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, | 360 | <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, |
| 361 | <&clk IMX8MQ_CLK_USDHC1_ROOT>; | 361 | <&clk IMX8MQ_CLK_USDHC1_ROOT>; |
| 362 | clock-names = "ipg", "ahb", "per"; | 362 | clock-names = "ipg", "ahb", "per"; |
| 363 | assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>; | ||
| 364 | assigned-clock-rates = <400000000>; | ||
| 363 | fsl,tuning-start-tap = <20>; | 365 | fsl,tuning-start-tap = <20>; |
| 364 | fsl,tuning-step = <2>; | 366 | fsl,tuning-step = <2>; |
| 365 | bus-width = <4>; | 367 | bus-width = <4>; |
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts index bd937d68ca3b..040b36ef0dd2 100644 --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | pinctrl-0 = <&usb30_host_drv>; | 40 | pinctrl-0 = <&usb30_host_drv>; |
| 41 | regulator-name = "vcc_host_5v"; | 41 | regulator-name = "vcc_host_5v"; |
| 42 | regulator-always-on; | 42 | regulator-always-on; |
| 43 | regulator-boot-on; | ||
| 43 | vin-supply = <&vcc_sys>; | 44 | vin-supply = <&vcc_sys>; |
| 44 | }; | 45 | }; |
| 45 | 46 | ||
| @@ -51,6 +52,7 @@ | |||
| 51 | pinctrl-0 = <&usb20_host_drv>; | 52 | pinctrl-0 = <&usb20_host_drv>; |
| 52 | regulator-name = "vcc_host1_5v"; | 53 | regulator-name = "vcc_host1_5v"; |
| 53 | regulator-always-on; | 54 | regulator-always-on; |
| 55 | regulator-boot-on; | ||
| 54 | vin-supply = <&vcc_sys>; | 56 | vin-supply = <&vcc_sys>; |
| 55 | }; | 57 | }; |
| 56 | 58 | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts b/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts index 1ee0dc0d9f10..d1cf404b8708 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | backlight = <&backlight>; | 22 | backlight = <&backlight>; |
| 23 | power-supply = <&pp3300_disp>; | 23 | power-supply = <&pp3300_disp>; |
| 24 | 24 | ||
| 25 | ports { | 25 | port { |
| 26 | panel_in_edp: endpoint { | 26 | panel_in_edp: endpoint { |
| 27 | remote-endpoint = <&edp_out_panel>; | 27 | remote-endpoint = <&edp_out_panel>; |
| 28 | }; | 28 | }; |
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts index 81e73103fa78..15e254a77391 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | |||
| @@ -43,7 +43,7 @@ | |||
| 43 | backlight = <&backlight>; | 43 | backlight = <&backlight>; |
| 44 | power-supply = <&pp3300_disp>; | 44 | power-supply = <&pp3300_disp>; |
| 45 | 45 | ||
| 46 | ports { | 46 | port { |
| 47 | panel_in_edp: endpoint { | 47 | panel_in_edp: endpoint { |
| 48 | remote-endpoint = <&edp_out_panel>; | 48 | remote-endpoint = <&edp_out_panel>; |
| 49 | }; | 49 | }; |
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts index 0b8f1edbd746..b48a63c3efc3 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts | |||
| @@ -91,7 +91,7 @@ | |||
| 91 | pinctrl-0 = <&lcd_panel_reset>; | 91 | pinctrl-0 = <&lcd_panel_reset>; |
| 92 | power-supply = <&vcc3v3_s0>; | 92 | power-supply = <&vcc3v3_s0>; |
| 93 | 93 | ||
| 94 | ports { | 94 | port { |
| 95 | panel_in_edp: endpoint { | 95 | panel_in_edp: endpoint { |
| 96 | remote-endpoint = <&edp_out_panel>; | 96 | remote-endpoint = <&edp_out_panel>; |
| 97 | }; | 97 | }; |
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c index f94d33525771..d299ec79e4c3 100644 --- a/drivers/bus/ti-sysc.c +++ b/drivers/bus/ti-sysc.c | |||
| @@ -781,12 +781,12 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { | |||
| 781 | SYSC_QUIRK("smartreflex", 0, -1, 0x38, -1, 0x00000000, 0xffffffff, | 781 | SYSC_QUIRK("smartreflex", 0, -1, 0x38, -1, 0x00000000, 0xffffffff, |
| 782 | SYSC_QUIRK_LEGACY_IDLE), | 782 | SYSC_QUIRK_LEGACY_IDLE), |
| 783 | SYSC_QUIRK("timer", 0, 0, 0x10, 0x14, 0x00000015, 0xffffffff, | 783 | SYSC_QUIRK("timer", 0, 0, 0x10, 0x14, 0x00000015, 0xffffffff, |
| 784 | SYSC_QUIRK_LEGACY_IDLE), | 784 | 0), |
| 785 | /* Some timers on omap4 and later */ | 785 | /* Some timers on omap4 and later */ |
| 786 | SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x50002100, 0xffffffff, | 786 | SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x50002100, 0xffffffff, |
| 787 | SYSC_QUIRK_LEGACY_IDLE), | 787 | 0), |
| 788 | SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x4fff1301, 0xffff00ff, | 788 | SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x4fff1301, 0xffff00ff, |
| 789 | SYSC_QUIRK_LEGACY_IDLE), | 789 | 0), |
| 790 | SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff, | 790 | SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff, |
| 791 | SYSC_QUIRK_LEGACY_IDLE), | 791 | SYSC_QUIRK_LEGACY_IDLE), |
| 792 | /* Uarts on omap4 and later */ | 792 | /* Uarts on omap4 and later */ |
diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c index 595124074821..c364027638e1 100644 --- a/drivers/clocksource/timer-ti-dm.c +++ b/drivers/clocksource/timer-ti-dm.c | |||
| @@ -154,6 +154,10 @@ static int omap_dm_timer_of_set_source(struct omap_dm_timer *timer) | |||
| 154 | if (IS_ERR(parent)) | 154 | if (IS_ERR(parent)) |
| 155 | return -ENODEV; | 155 | return -ENODEV; |
| 156 | 156 | ||
| 157 | /* Bail out if both clocks point to fck */ | ||
| 158 | if (clk_is_match(parent, timer->fclk)) | ||
| 159 | return 0; | ||
| 160 | |||
| 157 | ret = clk_set_parent(timer->fclk, parent); | 161 | ret = clk_set_parent(timer->fclk, parent); |
| 158 | if (ret < 0) | 162 | if (ret < 0) |
| 159 | pr_err("%s: failed to set parent\n", __func__); | 163 | pr_err("%s: failed to set parent\n", __func__); |
| @@ -864,7 +868,6 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
| 864 | timer->pdev = pdev; | 868 | timer->pdev = pdev; |
| 865 | 869 | ||
| 866 | pm_runtime_enable(dev); | 870 | pm_runtime_enable(dev); |
| 867 | pm_runtime_irq_safe(dev); | ||
| 868 | 871 | ||
| 869 | if (!timer->reserved) { | 872 | if (!timer->reserved) { |
| 870 | ret = pm_runtime_get_sync(dev); | 873 | ret = pm_runtime_get_sync(dev); |
