xref: /linux/Documentation/devicetree/bindings/hsi/omap-ssi.txt (revision dc9df3154c082873591acf95036632e97215212e)
1*dc9df315SSebastian ReichelOMAP SSI controller bindings
2*dc9df315SSebastian Reichel
3*dc9df315SSebastian ReichelOMAP Synchronous Serial Interface (SSI) controller implements a legacy
4*dc9df315SSebastian Reichelvariant of MIPI's High Speed Synchronous Serial Interface (HSI).
5*dc9df315SSebastian Reichel
6*dc9df315SSebastian ReichelRequired properties:
7*dc9df315SSebastian Reichel- compatible:		Should include "ti,omap3-ssi".
8*dc9df315SSebastian Reichel- reg-names:		Contains the values "sys" and "gdd" (in this order).
9*dc9df315SSebastian Reichel- reg:			Contains a matching register specifier for each entry
10*dc9df315SSebastian Reichel			in reg-names.
11*dc9df315SSebastian Reichel- interrupt-names:	Contains the value "gdd_mpu".
12*dc9df315SSebastian Reichel- interrupts: 		Contains matching interrupt information for each entry
13*dc9df315SSebastian Reichel			in interrupt-names.
14*dc9df315SSebastian Reichel- ranges:		Represents the bus address mapping between the main
15*dc9df315SSebastian Reichel			controller node and the child nodes below.
16*dc9df315SSebastian Reichel- clock-names:		Must include the following entries:
17*dc9df315SSebastian Reichel  "ssi_ssr_fck": The OMAP clock of that name
18*dc9df315SSebastian Reichel  "ssi_sst_fck": The OMAP clock of that name
19*dc9df315SSebastian Reichel  "ssi_ick": The OMAP clock of that name
20*dc9df315SSebastian Reichel- clocks:		Contains a matching clock specifier for each entry in
21*dc9df315SSebastian Reichel			clock-names.
22*dc9df315SSebastian Reichel- #address-cells:	Should be set to <1>
23*dc9df315SSebastian Reichel- #size-cells:		Should be set to <1>
24*dc9df315SSebastian Reichel
25*dc9df315SSebastian ReichelEach port is represented as a sub-node of the ti,omap3-ssi device.
26*dc9df315SSebastian Reichel
27*dc9df315SSebastian ReichelRequired Port sub-node properties:
28*dc9df315SSebastian Reichel- compatible:		Should be set to the following value
29*dc9df315SSebastian Reichel			ti,omap3-ssi-port (applicable to OMAP34xx devices)
30*dc9df315SSebastian Reichel- reg-names:		Contains the values "tx" and "rx" (in this order).
31*dc9df315SSebastian Reichel- reg:			Contains a matching register specifier for each entry
32*dc9df315SSebastian Reichel			in reg-names.
33*dc9df315SSebastian Reichel- interrupt-parent	Should be a phandle for the interrupt controller
34*dc9df315SSebastian Reichel- interrupts:		Should contain interrupt specifiers for mpu interrupts
35*dc9df315SSebastian Reichel			0 and 1 (in this order).
36*dc9df315SSebastian Reichel- ti,ssi-cawake-gpio:	Defines which GPIO pin is used to signify CAWAKE
37*dc9df315SSebastian Reichel			events for the port. This is an optional board-specific
38*dc9df315SSebastian Reichel			property. If it's missing the port will not be
39*dc9df315SSebastian Reichel			enabled.
40*dc9df315SSebastian Reichel
41*dc9df315SSebastian ReichelExample for Nokia N900:
42*dc9df315SSebastian Reichel
43*dc9df315SSebastian Reichelssi-controller@48058000 {
44*dc9df315SSebastian Reichel	compatible = "ti,omap3-ssi";
45*dc9df315SSebastian Reichel
46*dc9df315SSebastian Reichel	/* needed until hwmod is updated to use the compatible string */
47*dc9df315SSebastian Reichel	ti,hwmods = "ssi";
48*dc9df315SSebastian Reichel
49*dc9df315SSebastian Reichel	reg = <0x48058000 0x1000>,
50*dc9df315SSebastian Reichel	      <0x48059000 0x1000>;
51*dc9df315SSebastian Reichel	reg-names = "sys",
52*dc9df315SSebastian Reichel		    "gdd";
53*dc9df315SSebastian Reichel
54*dc9df315SSebastian Reichel	interrupts = <55>;
55*dc9df315SSebastian Reichel	interrupt-names = "gdd_mpu";
56*dc9df315SSebastian Reichel
57*dc9df315SSebastian Reichel	clocks = <&ssi_ssr_fck>,
58*dc9df315SSebastian Reichel		 <&ssi_sst_fck>,
59*dc9df315SSebastian Reichel		 <&ssi_ick>;
60*dc9df315SSebastian Reichel	clock-names = "ssi_ssr_fck",
61*dc9df315SSebastian Reichel		      "ssi_sst_fck",
62*dc9df315SSebastian Reichel		      "ssi_ick";
63*dc9df315SSebastian Reichel
64*dc9df315SSebastian Reichel	#address-cells = <1>;
65*dc9df315SSebastian Reichel	#size-cells = <1>;
66*dc9df315SSebastian Reichel	ranges;
67*dc9df315SSebastian Reichel
68*dc9df315SSebastian Reichel	ssi-port@4805a000 {
69*dc9df315SSebastian Reichel		compatible = "ti,omap3-ssi-port";
70*dc9df315SSebastian Reichel
71*dc9df315SSebastian Reichel		reg = <0x4805a000 0x800>,
72*dc9df315SSebastian Reichel		      <0x4805a800 0x800>;
73*dc9df315SSebastian Reichel		reg-names = "tx",
74*dc9df315SSebastian Reichel			    "rx";
75*dc9df315SSebastian Reichel
76*dc9df315SSebastian Reichel		interrupt-parent = <&intc>;
77*dc9df315SSebastian Reichel		interrupts = <67>,
78*dc9df315SSebastian Reichel			     <68>;
79*dc9df315SSebastian Reichel
80*dc9df315SSebastian Reichel		ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
81*dc9df315SSebastian Reichel	}
82*dc9df315SSebastian Reichel
83*dc9df315SSebastian Reichel	ssi-port@4805a000 {
84*dc9df315SSebastian Reichel		compatible = "ti,omap3-ssi-port";
85*dc9df315SSebastian Reichel
86*dc9df315SSebastian Reichel		reg = <0x4805b000 0x800>,
87*dc9df315SSebastian Reichel		      <0x4805b800 0x800>;
88*dc9df315SSebastian Reichel		reg-names = "tx",
89*dc9df315SSebastian Reichel			    "rx";
90*dc9df315SSebastian Reichel
91*dc9df315SSebastian Reichel		interrupt-parent = <&intc>;
92*dc9df315SSebastian Reichel		interrupts = <69>,
93*dc9df315SSebastian Reichel			     <70>;
94*dc9df315SSebastian Reichel
95*dc9df315SSebastian Reichel		status = "disabled"; /* second port is not used on N900 */
96*dc9df315SSebastian Reichel	}
97*dc9df315SSebastian Reichel}
98