Commit 846e24dc authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'omap-for-v5.18/fixes-take2' of...

Merge tag 'omap-for-v5.18/fixes-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes

Fixes for omaps

Few regression fixes for omap variants. These mostly fix issues related to
warnings added for system suspend, and some devicetree issues:

- Make ti-sysc driver quirks for gpt12 timer omap3 specific to fix
  timer clock disabling for am335x system suspend

- Fix new system suspend warning for dra7 vpe caused by trying to
  use register bits not wired for vpe

- Fix mmc boot order for omap3-gta04 that has no mmc2 or 3 wired

- Add missing touchscreen properties for am3

- Fix pin muxing for logicpd-som-lv and am3517-evm to not depend on
  earlier bootloader versions

- Fix refcount leak for omap_gic_of_init

* tag 'omap-for-v5.18/fixes-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
  ARM: dts: am3517-evm: Fix misc pinmuxing
  ARM: dts: am33xx-l4: Add missing touchscreen clock properties
  ARM: dts: Fix mmc order for omap3-gta04
  ARM: dts: dra7: Fix suspend warning for vpe powerdomain
  bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific
  ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
  iommu/omap: Fix regression in probe for NULL pointer dereference

Link: https://lore.kernel.org/r/pull-1650543308-836725@atomide.comSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 90f21460 46ff3df8
...@@ -263,6 +263,8 @@ tscadc: tscadc@0 { ...@@ -263,6 +263,8 @@ tscadc: tscadc@0 {
compatible = "ti,am3359-tscadc"; compatible = "ti,am3359-tscadc";
reg = <0x0 0x1000>; reg = <0x0 0x1000>;
interrupts = <16>; interrupts = <16>;
clocks = <&adc_tsc_fck>;
clock-names = "fck";
status = "disabled"; status = "disabled";
dmas = <&edma 53 0>, <&edma 57 0>; dmas = <&edma 53 0>, <&edma 57 0>;
dma-names = "fifo0", "fifo1"; dma-names = "fifo0", "fifo1";
......
...@@ -161,6 +161,8 @@ pwm11: dmtimer-pwm@11 { ...@@ -161,6 +161,8 @@ pwm11: dmtimer-pwm@11 {
/* HS USB Host PHY on PORT 1 */ /* HS USB Host PHY on PORT 1 */
hsusb1_phy: hsusb1_phy { hsusb1_phy: hsusb1_phy {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_rst_pins>;
compatible = "usb-nop-xceiv"; compatible = "usb-nop-xceiv";
reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; /* gpio_57 */ reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; /* gpio_57 */
#phy-cells = <0>; #phy-cells = <0>;
...@@ -168,7 +170,9 @@ hsusb1_phy: hsusb1_phy { ...@@ -168,7 +170,9 @@ hsusb1_phy: hsusb1_phy {
}; };
&davinci_emac { &davinci_emac {
status = "okay"; pinctrl-names = "default";
pinctrl-0 = <&ethernet_pins>;
status = "okay";
}; };
&davinci_mdio { &davinci_mdio {
...@@ -193,6 +197,8 @@ dpi_out: endpoint { ...@@ -193,6 +197,8 @@ dpi_out: endpoint {
}; };
&i2c2 { &i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
clock-frequency = <400000>; clock-frequency = <400000>;
/* User DIP swithes [1:8] / User LEDS [1:2] */ /* User DIP swithes [1:8] / User LEDS [1:2] */
tca6416: gpio@21 { tca6416: gpio@21 {
...@@ -205,6 +211,8 @@ tca6416: gpio@21 { ...@@ -205,6 +211,8 @@ tca6416: gpio@21 {
}; };
&i2c3 { &i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3_pins>;
clock-frequency = <400000>; clock-frequency = <400000>;
}; };
...@@ -223,6 +231,8 @@ &mmc3 { ...@@ -223,6 +231,8 @@ &mmc3 {
}; };
&usbhshost { &usbhshost {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_pins>;
port1-mode = "ehci-phy"; port1-mode = "ehci-phy";
}; };
...@@ -231,8 +241,35 @@ &usbhsehci { ...@@ -231,8 +241,35 @@ &usbhsehci {
}; };
&omap3_pmx_core { &omap3_pmx_core {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_rst_pins>; ethernet_pins: pinmux_ethernet_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21fe, PIN_INPUT | MUX_MODE0) /* rmii_mdio_data */
OMAP3_CORE1_IOPAD(0x2200, MUX_MODE0) /* rmii_mdio_clk */
OMAP3_CORE1_IOPAD(0x2202, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_rxd0 */
OMAP3_CORE1_IOPAD(0x2204, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_rxd1 */
OMAP3_CORE1_IOPAD(0x2206, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_crs_dv */
OMAP3_CORE1_IOPAD(0x2208, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_rxer */
OMAP3_CORE1_IOPAD(0x220a, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_txd0 */
OMAP3_CORE1_IOPAD(0x220c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_txd1 */
OMAP3_CORE1_IOPAD(0x220e, PIN_OUTPUT_PULLDOWN |MUX_MODE0) /* rmii_txen */
OMAP3_CORE1_IOPAD(0x2210, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_50mhz_clk */
>;
};
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
>;
};
i2c3_pins: pinmux_i2c3_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
>;
};
leds_pins: pinmux_leds_pins { leds_pins: pinmux_leds_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
...@@ -300,8 +337,6 @@ OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */ ...@@ -300,8 +337,6 @@ OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
}; };
&omap3_pmx_core2 { &omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_pins>;
hsusb1_pins: pinmux_hsusb1_pins { hsusb1_pins: pinmux_hsusb1_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
......
...@@ -69,6 +69,8 @@ nand@0,0 { ...@@ -69,6 +69,8 @@ nand@0,0 {
}; };
&i2c1 { &i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
clock-frequency = <400000>; clock-frequency = <400000>;
s35390a: s35390a@30 { s35390a: s35390a@30 {
...@@ -179,6 +181,13 @@ bluetooth { ...@@ -179,6 +181,13 @@ bluetooth {
&omap3_pmx_core { &omap3_pmx_core {
i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
>;
};
wl12xx_buffer_pins: pinmux_wl12xx_buffer_pins { wl12xx_buffer_pins: pinmux_wl12xx_buffer_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4) /* mmc1_dat7.gpio_129 */ OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4) /* mmc1_dat7.gpio_129 */
......
...@@ -4188,11 +4188,11 @@ target-module@1d0010 { /* 0x489d0000, ap 27 30.0 */ ...@@ -4188,11 +4188,11 @@ target-module@1d0010 { /* 0x489d0000, ap 27 30.0 */
reg = <0x1d0010 0x4>; reg = <0x1d0010 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-midle = <SYSC_IDLE_FORCE>, ti,sysc-midle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>, <SYSC_IDLE_NO>;
<SYSC_IDLE_SMART>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>, ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>, <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>; <SYSC_IDLE_SMART>;
power-domains = <&prm_vpe>;
clocks = <&vpe_clkctrl DRA7_VPE_VPE_CLKCTRL 0>; clocks = <&vpe_clkctrl DRA7_VPE_VPE_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
#address-cells = <1>; #address-cells = <1>;
......
...@@ -11,3 +11,18 @@ / { ...@@ -11,3 +11,18 @@ / {
model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit"; model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit";
compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3430", "ti,omap3"; compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3430", "ti,omap3";
}; };
&omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <&hsusb2_2_pins>;
hsusb2_2_pins: pinmux_hsusb2_2_pins {
pinctrl-single,pins = <
OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
>;
};
};
...@@ -11,3 +11,18 @@ / { ...@@ -11,3 +11,18 @@ / {
model = "LogicPD Zoom DM3730 SOM-LV Development Kit"; model = "LogicPD Zoom DM3730 SOM-LV Development Kit";
compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3"; compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3";
}; };
&omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <&hsusb2_2_pins>;
hsusb2_2_pins: pinmux_hsusb2_2_pins {
pinctrl-single,pins = <
OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
>;
};
};
...@@ -265,21 +265,6 @@ OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */ ...@@ -265,21 +265,6 @@ OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */
}; };
}; };
&omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <&hsusb2_2_pins>;
hsusb2_2_pins: pinmux_hsusb2_2_pins {
pinctrl-single,pins = <
OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
>;
};
};
&uart2 { &uart2 {
interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>; interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -31,6 +31,8 @@ chosen { ...@@ -31,6 +31,8 @@ chosen {
aliases { aliases {
display0 = &lcd; display0 = &lcd;
display1 = &tv0; display1 = &tv0;
/delete-property/ mmc2;
/delete-property/ mmc3;
}; };
ldo_3v3: fixedregulator { ldo_3v3: fixedregulator {
......
...@@ -314,10 +314,12 @@ void __init omap_gic_of_init(void) ...@@ -314,10 +314,12 @@ void __init omap_gic_of_init(void)
np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-gic"); np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-gic");
gic_dist_base_addr = of_iomap(np, 0); gic_dist_base_addr = of_iomap(np, 0);
of_node_put(np);
WARN_ON(!gic_dist_base_addr); WARN_ON(!gic_dist_base_addr);
np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-twd-timer"); np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-twd-timer");
twd_base = of_iomap(np, 0); twd_base = of_iomap(np, 0);
of_node_put(np);
WARN_ON(!twd_base); WARN_ON(!twd_base);
skip_errata_init: skip_errata_init:
......
...@@ -3232,13 +3232,27 @@ static int sysc_check_disabled_devices(struct sysc *ddata) ...@@ -3232,13 +3232,27 @@ static int sysc_check_disabled_devices(struct sysc *ddata)
*/ */
static int sysc_check_active_timer(struct sysc *ddata) static int sysc_check_active_timer(struct sysc *ddata)
{ {
int error;
if (ddata->cap->type != TI_SYSC_OMAP2_TIMER && if (ddata->cap->type != TI_SYSC_OMAP2_TIMER &&
ddata->cap->type != TI_SYSC_OMAP4_TIMER) ddata->cap->type != TI_SYSC_OMAP4_TIMER)
return 0; return 0;
/*
* Quirk for omap3 beagleboard revision A to B4 to use gpt12.
* Revision C and later are fixed with commit 23885389dbbb ("ARM:
* dts: Fix timer regression for beagleboard revision c"). This all
* can be dropped if we stop supporting old beagleboard revisions
* A to B4 at some point.
*/
if (sysc_soc->soc == SOC_3430)
error = -ENXIO;
else
error = -EBUSY;
if ((ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT) && if ((ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT) &&
(ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE)) (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE))
return -ENXIO; return error;
return 0; return 0;
} }
......
...@@ -1661,7 +1661,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev) ...@@ -1661,7 +1661,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev)
num_iommus = of_property_count_elems_of_size(dev->of_node, "iommus", num_iommus = of_property_count_elems_of_size(dev->of_node, "iommus",
sizeof(phandle)); sizeof(phandle));
if (num_iommus < 0) if (num_iommus < 0)
return 0; return ERR_PTR(-ENODEV);
arch_data = kcalloc(num_iommus + 1, sizeof(*arch_data), GFP_KERNEL); arch_data = kcalloc(num_iommus + 1, sizeof(*arch_data), GFP_KERNEL);
if (!arch_data) if (!arch_data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment