xref: /openbmc/linux/Documentation/devicetree/bindings/mips/cavium/bootbus.txt (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
1*736b1c9cSDavid Daney* Boot Bus
2*736b1c9cSDavid Daney
3*736b1c9cSDavid DaneyThe Octeon Boot Bus is a configurable parallel bus with 8 chip
4*736b1c9cSDavid Daneyselects.  Each chip select is independently configurable.
5*736b1c9cSDavid Daney
6*736b1c9cSDavid DaneyProperties:
7*736b1c9cSDavid Daney- compatible: "cavium,octeon-3860-bootbus"
8*736b1c9cSDavid Daney
9*736b1c9cSDavid Daney  Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
10*736b1c9cSDavid Daney
11*736b1c9cSDavid Daney- reg: The base address of the Boot Bus' register bank.
12*736b1c9cSDavid Daney
13*736b1c9cSDavid Daney- #address-cells: Must be <2>.  The first cell is the chip select
14*736b1c9cSDavid Daney   within the bootbus.  The second cell is the offset from the chip select.
15*736b1c9cSDavid Daney
16*736b1c9cSDavid Daney- #size-cells: Must be <1>.
17*736b1c9cSDavid Daney
18*736b1c9cSDavid Daney- ranges: There must be one one triplet of (child-bus-address,
19*736b1c9cSDavid Daney  parent-bus-address, length) for each active chip select.  If the
20*736b1c9cSDavid Daney  length element for any triplet is zero, the chip select is disabled,
21*736b1c9cSDavid Daney  making it inactive.
22*736b1c9cSDavid Daney
23*736b1c9cSDavid DaneyThe configuration parameters for each chip select are stored in child
24*736b1c9cSDavid Daneynodes.
25*736b1c9cSDavid Daney
26*736b1c9cSDavid DaneyConfiguration Properties:
27*736b1c9cSDavid Daney- compatible:  "cavium,octeon-3860-bootbus-config"
28*736b1c9cSDavid Daney
29*736b1c9cSDavid Daney- cavium,cs-index: A single cell indicating the chip select that
30*736b1c9cSDavid Daney  corresponds to this configuration.
31*736b1c9cSDavid Daney
32*736b1c9cSDavid Daney- cavium,t-adr: A cell specifying the ADR timing (in nS).
33*736b1c9cSDavid Daney
34*736b1c9cSDavid Daney- cavium,t-ce: A cell specifying the CE timing (in nS).
35*736b1c9cSDavid Daney
36*736b1c9cSDavid Daney- cavium,t-oe: A cell specifying the OE timing (in nS).
37*736b1c9cSDavid Daney
38*736b1c9cSDavid Daney- cavium,t-we: A cell specifying the WE timing (in nS).
39*736b1c9cSDavid Daney
40*736b1c9cSDavid Daney- cavium,t-rd-hld: A cell specifying the RD_HLD timing (in nS).
41*736b1c9cSDavid Daney
42*736b1c9cSDavid Daney- cavium,t-wr-hld: A cell specifying the WR_HLD timing (in nS).
43*736b1c9cSDavid Daney
44*736b1c9cSDavid Daney- cavium,t-pause: A cell specifying the PAUSE timing (in nS).
45*736b1c9cSDavid Daney
46*736b1c9cSDavid Daney- cavium,t-wait: A cell specifying the WAIT timing (in nS).
47*736b1c9cSDavid Daney
48*736b1c9cSDavid Daney- cavium,t-page: A cell specifying the PAGE timing (in nS).
49*736b1c9cSDavid Daney
50*736b1c9cSDavid Daney- cavium,t-rd-dly: A cell specifying the RD_DLY timing (in nS).
51*736b1c9cSDavid Daney
52*736b1c9cSDavid Daney- cavium,pages: A cell specifying the PAGES parameter (0 = 8 bytes, 1
53*736b1c9cSDavid Daney  = 2 bytes, 2 = 4 bytes, 3 = 8 bytes).
54*736b1c9cSDavid Daney
55*736b1c9cSDavid Daney- cavium,wait-mode: Optional.  If present, wait mode (WAITM) is selected.
56*736b1c9cSDavid Daney
57*736b1c9cSDavid Daney- cavium,page-mode: Optional.  If present, page mode (PAGEM) is selected.
58*736b1c9cSDavid Daney
59*736b1c9cSDavid Daney- cavium,bus-width: A cell specifying the WIDTH parameter (in bits) of
60*736b1c9cSDavid Daney  the bus for this chip select.
61*736b1c9cSDavid Daney
62*736b1c9cSDavid Daney- cavium,ale-mode: Optional.  If present, ALE mode is selected.
63*736b1c9cSDavid Daney
64*736b1c9cSDavid Daney- cavium,sam-mode: Optional.  If present, SAM mode is selected.
65*736b1c9cSDavid Daney
66*736b1c9cSDavid Daney- cavium,or-mode: Optional.  If present, OR mode is selected.
67*736b1c9cSDavid Daney
68*736b1c9cSDavid DaneyExample:
69*736b1c9cSDavid Daney	bootbus: bootbus@1180000000000 {
70*736b1c9cSDavid Daney		compatible = "cavium,octeon-3860-bootbus";
71*736b1c9cSDavid Daney		reg = <0x11800 0x00000000 0x0 0x200>;
72*736b1c9cSDavid Daney		/* The chip select number and offset */
73*736b1c9cSDavid Daney		#address-cells = <2>;
74*736b1c9cSDavid Daney		/* The size of the chip select region */
75*736b1c9cSDavid Daney		#size-cells = <1>;
76*736b1c9cSDavid Daney		ranges = <0 0  0x0 0x1f400000  0xc00000>,
77*736b1c9cSDavid Daney			 <1 0  0x10000 0x30000000  0>,
78*736b1c9cSDavid Daney			 <2 0  0x10000 0x40000000  0>,
79*736b1c9cSDavid Daney			 <3 0  0x10000 0x50000000  0>,
80*736b1c9cSDavid Daney			 <4 0  0x0 0x1d020000  0x10000>,
81*736b1c9cSDavid Daney			 <5 0  0x0 0x1d040000  0x10000>,
82*736b1c9cSDavid Daney			 <6 0  0x0 0x1d050000  0x10000>,
83*736b1c9cSDavid Daney			 <7 0  0x10000 0x90000000  0>;
84*736b1c9cSDavid Daney
85*736b1c9cSDavid Daney			cavium,cs-config@0 {
86*736b1c9cSDavid Daney			compatible = "cavium,octeon-3860-bootbus-config";
87*736b1c9cSDavid Daney			cavium,cs-index = <0>;
88*736b1c9cSDavid Daney			cavium,t-adr  = <20>;
89*736b1c9cSDavid Daney			cavium,t-ce   = <60>;
90*736b1c9cSDavid Daney			cavium,t-oe   = <60>;
91*736b1c9cSDavid Daney			cavium,t-we   = <45>;
92*736b1c9cSDavid Daney			cavium,t-rd-hld = <35>;
93*736b1c9cSDavid Daney			cavium,t-wr-hld = <45>;
94*736b1c9cSDavid Daney			cavium,t-pause  = <0>;
95*736b1c9cSDavid Daney			cavium,t-wait   = <0>;
96*736b1c9cSDavid Daney			cavium,t-page   = <35>;
97*736b1c9cSDavid Daney			cavium,t-rd-dly = <0>;
98*736b1c9cSDavid Daney
99*736b1c9cSDavid Daney			cavium,pages     = <0>;
100*736b1c9cSDavid Daney			cavium,bus-width = <8>;
101*736b1c9cSDavid Daney		};
102*736b1c9cSDavid Daney		.
103*736b1c9cSDavid Daney		.
104*736b1c9cSDavid Daney		.
105*736b1c9cSDavid Daney		cavium,cs-config@6 {
106*736b1c9cSDavid Daney			compatible = "cavium,octeon-3860-bootbus-config";
107*736b1c9cSDavid Daney			cavium,cs-index = <6>;
108*736b1c9cSDavid Daney			cavium,t-adr  = <5>;
109*736b1c9cSDavid Daney			cavium,t-ce   = <300>;
110*736b1c9cSDavid Daney			cavium,t-oe   = <270>;
111*736b1c9cSDavid Daney			cavium,t-we   = <150>;
112*736b1c9cSDavid Daney			cavium,t-rd-hld = <100>;
113*736b1c9cSDavid Daney			cavium,t-wr-hld = <70>;
114*736b1c9cSDavid Daney			cavium,t-pause  = <0>;
115*736b1c9cSDavid Daney			cavium,t-wait   = <0>;
116*736b1c9cSDavid Daney			cavium,t-page   = <320>;
117*736b1c9cSDavid Daney			cavium,t-rd-dly = <0>;
118*736b1c9cSDavid Daney
119*736b1c9cSDavid Daney			cavium,pages     = <0>;
120*736b1c9cSDavid Daney			cavium,wait-mode;
121*736b1c9cSDavid Daney			cavium,bus-width = <16>;
122*736b1c9cSDavid Daney		};
123*736b1c9cSDavid Daney		.
124*736b1c9cSDavid Daney		.
125*736b1c9cSDavid Daney		.
126*736b1c9cSDavid Daney	};
127