Unverified Commit 19c1eb36 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'omap-for-v5.14/fixes-rc5-signed' of...

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

Fixes for omaps for v5.14-rc series

Some fixes for regressions and boot issues for various devices:

- Fix gpt12 system timer regression on earlier beagleboard revisions

- Fix potential NULL pointer access for omap_hwmod_get_pwrdm()

- Disable RNG on secure am335x variants as it's not accessible

- Fix flakey DCDC2 voltage causing hangs on am43x-epos-evm by reducing
  i2c0 bus speed for tps65218

- Fix typo for am437x-l4 can@0 node

- Fix omap5 regression caused by vdds_1v8_main fixed-regulator

* tag 'omap-for-v5.14/fixes-rc5-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator
  ARM: dts: am437x-l4: fix typo in can@0 node
  ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
  bus: ti-sysc: AM3: RNG is GP only
  ARM: omap2+: hwmod: fix potential NULL pointer access
  bus: ti-sysc: Fix gpt12 system timer issue with reserved status

Link: https://lore.kernel.org/r/pull-1627995895-406133@atomide.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents a8eee863 353b7a55
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1595,7 +1595,7 @@ dcan1: can@0 {
				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
				reg = <0x0 0x2000>;
				clocks = <&dcan1_fck>;
				clock-name = "fck";
				clock-names = "fck";
				syscon-raminit = <&scm_conf 0x644 1>;
				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
				status = "disabled";
+1 −1
Original line number Diff line number Diff line
@@ -582,7 +582,7 @@ &i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	clock-frequency = <400000>;
	clock-frequency = <100000>;

	tps65218: tps65218@24 {
		reg = <0x24>;
+1 −8
Original line number Diff line number Diff line
@@ -30,14 +30,6 @@ vsys_cobra: fixedregulator-vsys_cobra {
		regulator-max-microvolt = <5000000>;
	};

	vdds_1v8_main: fixedregulator-vdds_1v8_main {
		compatible = "regulator-fixed";
		regulator-name = "vdds_1v8_main";
		vin-supply = <&smps7_reg>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vmmcsd_fixed: fixedregulator-mmcsd {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
@@ -487,6 +479,7 @@ smps6_reg: smps6 {
					regulator-boot-on;
				};

				vdds_1v8_main:
				smps7_reg: smps7 {
					/* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
					regulator-name = "smps7";
+9 −1
Original line number Diff line number Diff line
@@ -3776,6 +3776,7 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh)
	struct omap_hwmod_ocp_if *oi;
	struct clockdomain *clkdm;
	struct clk_hw_omap *clk;
	struct clk_hw *hw;

	if (!oh)
		return NULL;
@@ -3792,7 +3793,14 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh)
		c = oi->_clk;
	}

	clk = to_clk_hw_omap(__clk_get_hw(c));
	hw = __clk_get_hw(c);
	if (!hw)
		return NULL;

	clk = to_clk_hw_omap(hw);
	if (!clk)
		return NULL;

	clkdm = clk->clkdm;
	if (!clkdm)
		return NULL;
+15 −7
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ static const char * const clock_names[SYSC_MAX_CLOCKS] = {
 * @cookie: data used by legacy platform callbacks
 * @name: name if available
 * @revision: interconnect target module revision
 * @reserved: target module is reserved and already in use
 * @enabled: sysc runtime enabled status
 * @needs_resume: runtime resume needed on resume from suspend
 * @child_needs_resume: runtime resume needed for child on resume from suspend
@@ -130,6 +131,7 @@ struct sysc {
	struct ti_sysc_cookie cookie;
	const char *name;
	u32 revision;
	unsigned int reserved:1;
	unsigned int enabled:1;
	unsigned int needs_resume:1;
	unsigned int child_needs_resume:1;
@@ -2951,6 +2953,8 @@ static int sysc_init_soc(struct sysc *ddata)
		case SOC_3430 ... SOC_3630:
			sysc_add_disabled(0x48304000);	/* timer12 */
			break;
		case SOC_AM3:
			sysc_add_disabled(0x48310000);  /* rng */
		default:
			break;
		}
@@ -3093,8 +3097,8 @@ static int sysc_probe(struct platform_device *pdev)
		return error;

	error = sysc_check_active_timer(ddata);
	if (error)
		return error;
	if (error == -EBUSY)
		ddata->reserved = true;

	error = sysc_get_clocks(ddata);
	if (error)
@@ -3130,11 +3134,15 @@ static int sysc_probe(struct platform_device *pdev)
	sysc_show_registers(ddata);

	ddata->dev->type = &sysc_device_type;
	error = of_platform_populate(ddata->dev->of_node, sysc_match_table,

	if (!ddata->reserved) {
		error = of_platform_populate(ddata->dev->of_node,
					     sysc_match_table,
					     pdata ? pdata->auxdata : NULL,
					     ddata->dev);
		if (error)
			goto err;
	}

	INIT_DELAYED_WORK(&ddata->idle_work, ti_sysc_idle);