-
Notifications
You must be signed in to change notification settings - Fork 580
Expand file tree
/
Copy pathbone_capemgr.txt
More file actions
111 lines (89 loc) · 3.62 KB
/
bone_capemgr.txt
File metadata and controls
111 lines (89 loc) · 3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
* Beaglebone cape manager driver
Required properties:
- compatible: "ti,bone-capemgr"
- eeprom: phandle to the EEPROM baseboard.
The EEPROM framework interface is use to obtain the data.
Required children nodes:
- baseboardmaps: Contains nodes, which each of the them defines a mapping from
the baseboard EEPROM board-name ID to a DT friendly compatible
string.
- board-name: The baseboard EEPROM board name, i.e. A335BONE for the
original beaglebone white.
- compatible-name: The DT friendly compatible string to be used for matching
compatible capes, i.e. "ti,beaglebone"
- nvmem-cells: Defines the phandles of the nvmem cells of the baseboard and the
slots.
- nvmem-cells: Defines the names of the nvmem cells. Required to have at
least a baseboard cell name.
- #slots: Defines how many slots are there.
- Example of a beaglebone cape-manager:
bone_capemgr {
compatible = "ti,bone-capemgr";
status = "okay";
nvmem-cell = <&baseboard_data
&cape0_data &cape1_data &cape2_data &cape3_data>;
nvmem-cell-names = "baseboard", "slot0", "slot1", "slot2", "slot3";
#slots = <4>;
/* map board revisions to compatible definitions */
baseboardmaps {
baseboard_beaglebone: board@0 {
board-name = "A335BONE";
compatible-name = "ti,beaglebone";
};
baseboard_beaglebone_black: board@1 {
board-name = "A335BNLT";
compatible-name = "ti,beaglebone-black";
};
};
};
The format of the cape to be loaded is in a standard overlay format with
the following root properties that are interpreted by the cape manager:
Required properties:
- compatible: Should be compatible to the baseboard according to the
baseboard map value, i.e. "ti,beaglebone".
- part-numer: Should contain the part-number as stored in the EEPROM.
- version: Should contain a list of all the version that are supported
by the single cape dtbo, i.e. "00A1".
Optional properties:
- exclusive-use: A string list which state the resources this cape requires.
No processing or matching to anything regarding the internal
kernel state is performed; it's purpose is to guard against
conflicts with other capes.
- priority: A priority to be assigned when loading a cape. A lower value
has higher priority. The purpose of the priority is to control
which cape is loaded first in case of a conflict.
- Example of a serial cape:
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "BB-BONE-SERL-03";
version = "00A1";
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
"P9.21", /* uart2_txd */
"P9.22", /* uart2_rxd */
/* the hardware ip uses */
"uart2";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
bb_uart2_pins: pinmux_bb_uart2_pins {
pinctrl-single,pins = <
0x150 0x21 /* spi0_sclk.uart2_rxd | MODE1 */
0x154 0x01 /* spi0_d0.uart2_txd | MODE1 */
>;
};
};
};
fragment@1 {
target = <&uart2>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&bb_uart2_pins>;
};
};
};