Skip to content

Commit a795405

Browse files
committed
can: mcp2517fd: added can0/can1 overlays
Signed-off-by: Martin Sperl <[email protected]>
1 parent 228c480 commit a795405

File tree

3 files changed

+158
-0
lines changed

3 files changed

+158
-0
lines changed

arch/arm/boot/dts/overlays/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
7676
mcp23s17.dtbo \
7777
mcp2515-can0.dtbo \
7878
mcp2515-can1.dtbo \
79+
mcp2517fd-can0.dtbo \
80+
mcp2517fd-can1.dtbo \
7981
mcp3008.dtbo \
8082
mcp3202.dtbo \
8183
media-center.dtbo \
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Device tree overlay for mcp2517fd/can0 on spi0.0
3+
*/
4+
5+
/dts-v1/;
6+
/plugin/;
7+
8+
/ {
9+
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
10+
/* disable spi-dev for spi0.0 */
11+
fragment@0 {
12+
target = <&spi0>;
13+
__overlay__ {
14+
status = "okay";
15+
};
16+
};
17+
18+
fragment@1 {
19+
target = <&spidev0>;
20+
__overlay__ {
21+
status = "disabled";
22+
};
23+
};
24+
25+
/* the interrupt pin of the can-controller */
26+
fragment@2 {
27+
target = <&gpio>;
28+
__overlay__ {
29+
can0_pins: can0_pins {
30+
brcm,pins = <25>;
31+
brcm,function = <0>; /* input */
32+
};
33+
};
34+
};
35+
36+
/* the clock/oscillator of the can-controller */
37+
fragment@3 {
38+
target-path = "/clocks";
39+
__overlay__ {
40+
/* external oscillator of mcp2517fd on SPI0.0 */
41+
can0_osc: can0_osc {
42+
compatible = "fixed-clock";
43+
#clock-cells = <0>;
44+
clock-frequency = <40000000>;
45+
};
46+
};
47+
};
48+
49+
/* the spi config of the can-controller itself binding everything together */
50+
fragment@4 {
51+
target = <&spi0>;
52+
__overlay__ {
53+
/* needed to avoid dtc warning */
54+
#address-cells = <1>;
55+
#size-cells = <0>;
56+
can0: mcp2517fd@0 {
57+
reg = <0>;
58+
compatible = "microchip,mcp2517fd";
59+
pinctrl-names = "default";
60+
pinctrl-0 = <&can0_pins>;
61+
spi-max-frequency = <20000000>;
62+
interrupt-parent = <&gpio>;
63+
interrupts = <25 0x8>;
64+
clocks = <&can0_osc>;
65+
microchip,clock-out-div = <10>;
66+
};
67+
};
68+
};
69+
70+
__overrides__ {
71+
oscillator = <&can0_osc>,"clock-frequency:0";
72+
spimaxfrequency = <&can0>,"spi-max-frequency:0";
73+
interrupt = <&can0_pins>,"brcm,pins:0",<&can0>,"interrupts:0";
74+
clockdiv = <&can0>,"microchip,clock-div?";
75+
clockoutdiv = <&can0>,"microchip,clock-out-div:0";
76+
opendrain = <&can0>, "gpio-open-drain?";
77+
};
78+
};
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Device tree overlay for mcp2517fd/can1 on spi0.1
3+
*/
4+
5+
/dts-v1/;
6+
/plugin/;
7+
8+
/ {
9+
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
10+
/* disable spi-dev for spi0.1 */
11+
fragment@0 {
12+
target = <&spi0>;
13+
__overlay__ {
14+
status = "okay";
15+
};
16+
};
17+
18+
fragment@1 {
19+
target = <&spidev1>;
20+
__overlay__ {
21+
status = "disabled";
22+
};
23+
};
24+
25+
/* the interrupt pin of the can-controller */
26+
fragment@2 {
27+
target = <&gpio>;
28+
__overlay__ {
29+
can1_pins: can1_pins {
30+
brcm,pins = <26>;
31+
brcm,function = <0>; /* input */
32+
};
33+
};
34+
};
35+
36+
/* the clock/oscillator of the can-controller */
37+
fragment@3 {
38+
target-path = "/clocks";
39+
__overlay__ {
40+
/* external oscillator of mcp2517fd on SPI0.0 */
41+
can1_osc: can1_osc {
42+
compatible = "fixed-clock";
43+
#clock-cells = <0>;
44+
clock-frequency = <40000000>;
45+
};
46+
};
47+
};
48+
49+
/* the spi config of the can-controller itself binding everything together */
50+
fragment@4 {
51+
target = <&spi0>;
52+
__overlay__ {
53+
/* needed to avoid dtc warning */
54+
#address-cells = <1>;
55+
#size-cells = <0>;
56+
can1: mcp2517fd@1 {
57+
reg = <1>;
58+
compatible = "microchip,mcp2517fd";
59+
pinctrl-names = "default";
60+
pinctrl-0 = <&can1_pins>;
61+
spi-max-frequency = <20000000>;
62+
interrupt-parent = <&gpio>;
63+
interrupts = <26 0x8>;
64+
clocks = <&can1_osc>;
65+
microchip,clock-out-div = <10>;
66+
};
67+
};
68+
};
69+
70+
__overrides__ {
71+
oscillator = <&can1_osc>,"clock-frequency:0";
72+
spimaxfrequency = <&can1>,"spi-max-frequency:0";
73+
interrupt = <&can1_pins>,"brcm,pins:0",<&can1>,"interrupts:0";
74+
clockdiv = <&can1>,"microchip,clock-div?";
75+
clockoutdiv = <&can1>,"microchip,clock-out-div:0";
76+
opendrain = <&can1>, "gpio-open-drain?";
77+
};
78+
};

0 commit comments

Comments
 (0)