1dc9df315SSebastian ReichelOMAP SSI controller bindings
2dc9df315SSebastian Reichel
38635d6b3STony LindgrenOMAP3's Synchronous Serial Interface (SSI) controller implements a
48635d6b3STony Lindgrenlegacy variant of MIPI's High Speed Synchronous Serial Interface (HSI),
58635d6b3STony Lindgrenwhile the controller found inside OMAP4 is supposed to be fully compliant
68635d6b3STony Lindgrenwith the HSI standard.
7dc9df315SSebastian Reichel
8dc9df315SSebastian ReichelRequired properties:
98635d6b3STony Lindgren- compatible:		Should include "ti,omap3-ssi" or "ti,omap4-hsi"
10dc9df315SSebastian Reichel- reg-names:		Contains the values "sys" and "gdd" (in this order).
11dc9df315SSebastian Reichel- reg:			Contains a matching register specifier for each entry
12dc9df315SSebastian Reichel			in reg-names.
13dc9df315SSebastian Reichel- interrupt-names:	Contains the value "gdd_mpu".
14dc9df315SSebastian Reichel- interrupts: 		Contains matching interrupt information for each entry
15dc9df315SSebastian Reichel			in interrupt-names.
16dc9df315SSebastian Reichel- ranges:		Represents the bus address mapping between the main
17dc9df315SSebastian Reichel			controller node and the child nodes below.
18dc9df315SSebastian Reichel- clock-names:		Must include the following entries:
19dc9df315SSebastian Reichel  "ssi_ssr_fck": The OMAP clock of that name
20dc9df315SSebastian Reichel  "ssi_sst_fck": The OMAP clock of that name
21dc9df315SSebastian Reichel  "ssi_ick": The OMAP clock of that name
22dc9df315SSebastian Reichel- clocks:		Contains a matching clock specifier for each entry in
23dc9df315SSebastian Reichel			clock-names.
24dc9df315SSebastian Reichel- #address-cells:	Should be set to <1>
25dc9df315SSebastian Reichel- #size-cells:		Should be set to <1>
26dc9df315SSebastian Reichel
27dc9df315SSebastian ReichelEach port is represented as a sub-node of the ti,omap3-ssi device.
28dc9df315SSebastian Reichel
29dc9df315SSebastian ReichelRequired Port sub-node properties:
30dc9df315SSebastian Reichel- compatible:		Should be set to the following value
31dc9df315SSebastian Reichel			ti,omap3-ssi-port (applicable to OMAP34xx devices)
328635d6b3STony Lindgren			ti,omap4-hsi-port (applicable to OMAP44xx devices)
33dc9df315SSebastian Reichel- reg-names:		Contains the values "tx" and "rx" (in this order).
34dc9df315SSebastian Reichel- reg:			Contains a matching register specifier for each entry
35dc9df315SSebastian Reichel			in reg-names.
36dc9df315SSebastian Reichel- interrupt-parent	Should be a phandle for the interrupt controller
37dc9df315SSebastian Reichel- interrupts:		Should contain interrupt specifiers for mpu interrupts
38dc9df315SSebastian Reichel			0 and 1 (in this order).
39dc9df315SSebastian Reichel- ti,ssi-cawake-gpio:	Defines which GPIO pin is used to signify CAWAKE
40dc9df315SSebastian Reichel			events for the port. This is an optional board-specific
41dc9df315SSebastian Reichel			property. If it's missing the port will not be
42dc9df315SSebastian Reichel			enabled.
43dc9df315SSebastian Reichel
448635d6b3STony LindgrenOptional properties:
458635d6b3STony Lindgren- ti,hwmods:		Shall contain TI interconnect module name if needed
468635d6b3STony Lindgren			by the SoC
478635d6b3STony Lindgren
48dc9df315SSebastian ReichelExample for Nokia N900:
49dc9df315SSebastian Reichel
50dc9df315SSebastian Reichelssi-controller@48058000 {
51dc9df315SSebastian Reichel	compatible = "ti,omap3-ssi";
52dc9df315SSebastian Reichel
53dc9df315SSebastian Reichel	/* needed until hwmod is updated to use the compatible string */
54dc9df315SSebastian Reichel	ti,hwmods = "ssi";
55dc9df315SSebastian Reichel
56dc9df315SSebastian Reichel	reg = <0x48058000 0x1000>,
57dc9df315SSebastian Reichel	      <0x48059000 0x1000>;
58dc9df315SSebastian Reichel	reg-names = "sys",
59dc9df315SSebastian Reichel		    "gdd";
60dc9df315SSebastian Reichel
61dc9df315SSebastian Reichel	interrupts = <55>;
62dc9df315SSebastian Reichel	interrupt-names = "gdd_mpu";
63dc9df315SSebastian Reichel
64dc9df315SSebastian Reichel	clocks = <&ssi_ssr_fck>,
65dc9df315SSebastian Reichel		 <&ssi_sst_fck>,
66dc9df315SSebastian Reichel		 <&ssi_ick>;
67dc9df315SSebastian Reichel	clock-names = "ssi_ssr_fck",
68dc9df315SSebastian Reichel		      "ssi_sst_fck",
69dc9df315SSebastian Reichel		      "ssi_ick";
70dc9df315SSebastian Reichel
71dc9df315SSebastian Reichel	#address-cells = <1>;
72dc9df315SSebastian Reichel	#size-cells = <1>;
73dc9df315SSebastian Reichel	ranges;
74dc9df315SSebastian Reichel
75dc9df315SSebastian Reichel	ssi-port@4805a000 {
76dc9df315SSebastian Reichel		compatible = "ti,omap3-ssi-port";
77dc9df315SSebastian Reichel
78dc9df315SSebastian Reichel		reg = <0x4805a000 0x800>,
79dc9df315SSebastian Reichel		      <0x4805a800 0x800>;
80dc9df315SSebastian Reichel		reg-names = "tx",
81dc9df315SSebastian Reichel			    "rx";
82dc9df315SSebastian Reichel
83dc9df315SSebastian Reichel		interrupt-parent = <&intc>;
84dc9df315SSebastian Reichel		interrupts = <67>,
85dc9df315SSebastian Reichel			     <68>;
86dc9df315SSebastian Reichel
87dc9df315SSebastian Reichel		ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
88dc9df315SSebastian Reichel	}
89dc9df315SSebastian Reichel
90dc9df315SSebastian Reichel	ssi-port@4805a000 {
91dc9df315SSebastian Reichel		compatible = "ti,omap3-ssi-port";
92dc9df315SSebastian Reichel
93dc9df315SSebastian Reichel		reg = <0x4805b000 0x800>,
94dc9df315SSebastian Reichel		      <0x4805b800 0x800>;
95dc9df315SSebastian Reichel		reg-names = "tx",
96dc9df315SSebastian Reichel			    "rx";
97dc9df315SSebastian Reichel
98dc9df315SSebastian Reichel		interrupt-parent = <&intc>;
99dc9df315SSebastian Reichel		interrupts = <69>,
100dc9df315SSebastian Reichel			     <70>;
101dc9df315SSebastian Reichel
102dc9df315SSebastian Reichel	}
103dc9df315SSebastian Reichel}
104