Commit df717a58 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge (part of) tag 'omap-for-v3.19/hwmod-and-defconfig' of...

Merge (part of) tag 'omap-for-v3.19/hwmod-and-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap

 into next/soc

SoC related changes for omaps including hwmod clean-up for
DSS, and hwmod data for more UARTs and ADC. Also few defconfig
changes to enable devices found on am335x and am437x.

[arnd: I removed the defconfig changes from the branch in order
 to cherry-pick them onto the next/defconfig branch, but I did
 not change the other commits]

* commit '29c4ce17':
  ARM: dts: cm-t3x30: add keypad support
  ARM: OMAP2+: hwmod: AM43x: add hwmod support for ADC on AM43xx
  ARM: DRA7: hwmod data: Add missing UART hwmod data
  ARM: dts: omap4.dtsi: remove dss_fck
  ARM: OMAP4: fix RFBI iclk
  ARM: OMAP4: hwmod: use MODULEMODE properly
  ARM: OMAP4: hwmod: set DSS submodule parent hwmods
  ARM: OMAP5: hwmod: set DSS submodule parent hwmods
  ARM: OMAP2+: hwmod: add parent_hwmod support

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 09ffd948 29c4ce17
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@

#include "twl4030.dtsi"
#include "twl4030_omap3.dtsi"
#include <dt-bindings/input/input.h>

&mmc1 {
	vmmc-supply = <&vmmc1>;
@@ -75,6 +76,22 @@
	ti,pullups = <0x000001>;
};

&twl_keypad {
	linux,keymap = <
				MATRIX_KEY(0x00, 0x01, KEY_A)
				MATRIX_KEY(0x00, 0x02, KEY_B)
				MATRIX_KEY(0x00, 0x03, KEY_LEFT)

				MATRIX_KEY(0x01, 0x01, KEY_UP)
				MATRIX_KEY(0x01, 0x02, KEY_ENTER)
				MATRIX_KEY(0x01, 0x03, KEY_DOWN)

				MATRIX_KEY(0x02, 0x01, KEY_RIGHT)
				MATRIX_KEY(0x02, 0x02, KEY_C)
				MATRIX_KEY(0x02, 0x03, KEY_D)
			>;
};

&hsusb1_phy {
	reset-gpios = <&twl_gpio 6 GPIO_ACTIVE_LOW>;
};
+1 −1
Original line number Diff line number Diff line
@@ -895,7 +895,7 @@
				reg = <0x58002000 0x1000>;
				status = "disabled";
				ti,hwmods = "dss_rfbi";
				clocks = <&dss_dss_clk>, <&dss_fck>;
				clocks = <&dss_dss_clk>, <&l3_div_ck>;
				clock-names = "fck", "ick";
			};

+0 −8
Original line number Diff line number Diff line
@@ -1018,14 +1018,6 @@
		reg = <0x1120>;
	};

	dss_fck: dss_fck {
		#clock-cells = <0>;
		compatible = "ti,gate-clock";
		clocks = <&l3_div_ck>;
		ti,bit-shift = <1>;
		reg = <0x1120>;
	};

	fdif_fck: fdif_fck {
		#clock-cells = <0>;
		compatible = "ti,divider-clock";
+22 −0
Original line number Diff line number Diff line
@@ -2635,11 +2635,33 @@ static int __init _setup(struct omap_hwmod *oh, void *data)
	if (oh->_state != _HWMOD_STATE_INITIALIZED)
		return 0;

	if (oh->parent_hwmod) {
		int r;

		r = _enable(oh->parent_hwmod);
		WARN(r, "hwmod: %s: setup: failed to enable parent hwmod %s\n",
		     oh->name, oh->parent_hwmod->name);
	}

	_setup_iclk_autoidle(oh);

	if (!_setup_reset(oh))
		_setup_postsetup(oh);

	if (oh->parent_hwmod) {
		u8 postsetup_state;

		postsetup_state = oh->parent_hwmod->_postsetup_state;

		if (postsetup_state == _HWMOD_STATE_IDLE)
			_idle(oh->parent_hwmod);
		else if (postsetup_state == _HWMOD_STATE_DISABLED)
			_shutdown(oh->parent_hwmod);
		else if (postsetup_state != _HWMOD_STATE_ENABLED)
			WARN(1, "hwmod: %s: unknown postsetup state %d! defaulting to enabled\n",
			     oh->parent_hwmod->name, postsetup_state);
	}

	return 0;
}

+8 −0
Original line number Diff line number Diff line
@@ -633,6 +633,7 @@ struct omap_hwmod_link {
 * @flags: hwmod flags (documented below)
 * @_lock: spinlock serializing operations on this hwmod
 * @node: list node for hwmod list (internal use)
 * @parent_hwmod: (temporary) a pointer to the hierarchical parent of this hwmod
 *
 * @main_clk refers to this module's "main clock," which for our
 * purposes is defined as "the functional clock needed for register
@@ -643,6 +644,12 @@ struct omap_hwmod_link {
 * the omap_hwmod code and should not be set during initialization.
 *
 * @masters and @slaves are now deprecated.
 *
 * @parent_hwmod is temporary; there should be no need for it, as this
 * information should already be expressed in the OCP interface
 * structures.  @parent_hwmod is present as a workaround until we improve
 * handling for hwmods with multiple parents (e.g., OMAP4+ DSS with
 * multiple register targets across different interconnects).
 */
struct omap_hwmod {
	const char			*name;
@@ -680,6 +687,7 @@ struct omap_hwmod {
	u8				_int_flags;
	u8				_state;
	u8				_postsetup_state;
	struct omap_hwmod		*parent_hwmod;
};

struct omap_hwmod *omap_hwmod_lookup(const char *name);
Loading