Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 643ee0d5 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'omap-for-v4.1/prcm-dts' of...

Merge tag 'omap-for-v4.1/prcm-dts' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/late

Pull "Clean-up for omap PRCM (Power Reset Clock Management) and interconnects" from Tony Lindgren
Patches originally from Tero Kristo <t-kristo@ti.com>.

This sets gets us into a better position for further clean-up:

- Gets PRCM code closer to being device drivers

- Allows to move the remainig clock code to drivers/clk for v4.2

- Starts enforcing interconnect hierarchy in the SoC specific .dts
  files to enforce device drivers are only accesing registers in
  the related hardware module

This patchset has seen quite a few revisions but did not come into
mergeable shape until recently. As other patchsets for clock specific
device drivers depend on this, it would be good to get this merged
although it's a bit late for the v4.1 merge window.

Note that as the device entries in the .dts files are moved around,
this is based on earlier non-urgent fixes to avoid a non-trivial
merge conflict.

* tag 'omap-for-v4.1/prcm-dts' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (44 commits)
  ARM: OMAP4+: control: add support for initializing control module via DT
  ARM: dts: dra7: add minimal l4 bus layout with control module support
  ARM: dts: omap5: add minimal l4 bus layout with control module support
  ARM: OMAP4+: control: remove support for legacy pad read/write
  ARM: OMAP4: display: convert display to use syscon for dsi muxing
  ARM: dts: omap4: add minimal l4 bus layout with control module support
  ARM: dts: am4372: add minimal l4 bus layout with control module support
  ARM: dts: am43xx-epos-evm: fix pinmux node layout
  ARM: dts: am33xx: add minimal l4 bus layout with control module support
  ARM: dts: omap3: add minimal l4 bus layout with control module support
  ARM: dts: omap24xx: add minimal l4 bus layout with control module support
  ARM: OMAP2+: control: add syscon support for register accesses
  ARM: OMAP2+: id: cache omap_type value
  ARM: OMAP2+: control: remove API for getting control module base address
  ARM: OMAP2+: clock: add low-level support for regmap
  ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt init
  ARM: OMAP4+: PRM: setup prm_features from the PRM init time flags
  ARM: OMAP2+: CM: move SoC specific init calls within a generic API
  ARM: OMAP4+: PRM: determine prm_device_inst based on DT compatibility
  ARM: OMAP2+: PRM: move SoC specific init calls within a generic API
  ...
parents 13a7a6ac 21295368
Loading
Loading
Loading
Loading
+79 −0
Original line number Diff line number Diff line
OMAP Control Module bindings

Control Module contains miscellaneous features under it based on SoC type.
Pincontrol is one common feature, and it has a specialized support
described in [1]. Typically some clock nodes are also under control module.
Syscon is used to share register level access to drivers external to
control module driver itself.

See [2] for documentation about clock/clockdomain nodes.

[1] Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
[2] Documentation/devicetree/bindings/clock/ti/*

Required properties:
- compatible:	Must be one of:
		"ti,am3-scm"
		"ti,am4-scm"
		"ti,dm814-scrm"
		"ti,dm816-scrm"
		"ti,omap2-scm"
		"ti,omap3-scm"
		"ti,omap4-scm-core"
		"ti,omap4-scm-padconf-core"
		"ti,omap5-scm-core"
		"ti,omap5-scm-padconf-core"
		"ti,dra7-scm-core"
- reg:		Contains Control Module register address range
		(base address and length)

Optional properties:
- clocks:	clocks for this module
- clockdomains:	clockdomains for this module

Examples:

scm: scm@2000 {
	compatible = "ti,omap3-scm", "simple-bus";
	reg = <0x2000 0x2000>;
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0 0x2000 0x2000>;

	omap3_pmx_core: pinmux@30 {
		compatible = "ti,omap3-padconf",
			     "pinctrl-single";
		reg = <0x30 0x230>;
		#address-cells = <1>;
		#size-cells = <0>;
		#interrupt-cells = <1>;
		interrupt-controller;
		pinctrl-single,register-width = <16>;
		pinctrl-single,function-mask = <0xff1f>;
	};

	scm_conf: scm_conf@270 {
		compatible = "syscon";
		reg = <0x270 0x330>;
		#address-cells = <1>;
		#size-cells = <1>;

		scm_clocks: clocks {
			#address-cells = <1>;
			#size-cells = <0>;
		};
	};

	scm_clockdomains: clockdomains {
	};
}

&scm_clocks {
	mcbsp5_mux_fck: mcbsp5_mux_fck {
		#clock-cells = <0>;
		compatible = "ti,composite-mux-clock";
		clocks = <&core_96m_fck>, <&mcbsp_clks>;
		ti,bit-shift = <4>;
		reg = <0x02d8>;
	};
};
+26 −0
Original line number Diff line number Diff line
L4 interconnect bindings

These bindings describe the OMAP SoCs L4 interconnect bus.

Required properties:
- compatible : Should be "ti,omap2-l4" for OMAP2 family l4 core bus
	       Should be "ti,omap2-l4-wkup" for OMAP2 family l4 wkup bus
	       Should be "ti,omap3-l4-core" for OMAP3 family l4 core bus
	       Should be "ti,omap4-l4-cfg" for OMAP4 family l4 cfg bus
	       Should be "ti,omap4-l4-wkup" for OMAP4 family l4 wkup bus
	       Should be "ti,omap5-l4-cfg" for OMAP5 family l4 cfg bus
	       Should be "ti,omap5-l4-wkup" for OMAP5 family l4 wkup bus
	       Should be "ti,dra7-l4-cfg" for DRA7 family l4 cfg bus
	       Should be "ti,dra7-l4-wkup" for DRA7 family l4 wkup bus
	       Should be "ti,am3-l4-wkup" for AM33xx family l4 wkup bus
	       Should be "ti,am4-l4-wkup" for AM43xx family l4 wkup bus
- ranges : contains the IO map range for the bus

Examples:

l4: l4@48000000 {
	compatible "ti,omap2-l4", "simple-bus";
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0 0x48000000 0x100000>;
};
+2 −4
Original line number Diff line number Diff line
@@ -10,14 +10,10 @@ documentation about the individual clock/clockdomain nodes.
Required properties:
- compatible:	Must be one of:
		"ti,am3-prcm"
		"ti,am3-scrm"
		"ti,am4-prcm"
		"ti,am4-scrm"
		"ti,omap2-prcm"
		"ti,omap2-scrm"
		"ti,omap3-prm"
		"ti,omap3-cm"
		"ti,omap3-scrm"
		"ti,omap4-cm1"
		"ti,omap4-prm"
		"ti,omap4-cm2"
@@ -29,6 +25,8 @@ Required properties:
		"ti,dra7-prm"
		"ti,dra7-cm-core-aon"
		"ti,dra7-cm-core"
		"ti,dm814-prcm"
		"ti,dm816-prcm"
- reg:		Contains PRCM module register address range
		(base address and length)
- clocks:	clocks for this module
+2 −1
Original line number Diff line number Diff line
* OMAP OCP2SCP - ocp interface to scp interface

properties:
- compatible : Should be "ti,omap-ocp2scp"
- compatible : Should be "ti,am437x-ocp2scp" for AM437x processor
	       Should be "ti,omap-ocp2scp" for all others
- reg : Address and length of the register set for the device
- #address-cells, #size-cells : Must be present if the device has sub-nodes
- ranges : the child address space are mapped 1:1 onto the parent address space
+2 −0
Original line number Diff line number Diff line
@@ -6947,6 +6947,8 @@ Q: http://patchwork.kernel.org/project/linux-omap/list/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
S:	Maintained
F:	arch/arm/*omap*/
F:	arch/arm/configs/omap1_defconfig
F:	arch/arm/configs/omap2plus_defconfig
F:	drivers/i2c/busses/i2c-omap.c
F:	drivers/irqchip/irq-omap-intc.c
F:	drivers/mfd/*omap*.c
Loading