From 26feadc04154889119f6e86baab80435d0b482af Mon Sep 17 00:00:00 2001 From: petit-miner Date: Fri, 10 Jul 2015 13:59:18 +0200 Subject: [PATCH 1/2] Added support for 2 mcp2515 CAN Bus IC --- .../dts/overlays/mcp2515-can1-overlay.dts | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts diff --git a/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts new file mode 100644 index 00000000000000..e46c5d049fa904 --- /dev/null +++ b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts @@ -0,0 +1,70 @@ +/* + * Device tree overlay for mcp251x/can1 on spi0.0 edited by petit_miner + */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709"; + /* disable spi-dev for spi0.0 */ + fragment@0 { + target = <&spi0>; + __overlay__ { + status = "okay"; + spidev@1{ + status = "disabled"; + }; + }; + }; + + /* the interrupt pin of the can-controller */ + fragment@1 { + target = <&gpio>; + __overlay__ { + can1_pins: can1_pins { + brcm,pins = <25>; + brcm,function = <0>; /* input */ + }; + }; + }; + + /* the clock/oscillator of the can-controller */ + fragment@2 { + target-path = "/clocks"; + __overlay__ { + /* external oscillator of mcp2515 on SPI0.0 */ + can1_osc: can1_osc { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <16000000>; + }; + }; + }; + + /* the spi config of the can-controller itself binding everything together */ + fragment@3 { + target = <&spi0>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; + can1: mcp2515@1 { + reg = <1>; + compatible = "microchip,mcp2515"; + pinctrl-names = "default"; + pinctrl-0 = <&can1_pins>; + spi-max-frequency = <10000000>; + interrupt-parent = <&gpio>; + interrupts = <25 0x2>; + clocks = <&can1_osc>; + }; + }; + }; + __overrides__ { + oscillator = <&can1_osc>,"clock-frequency:0"; + spimaxfrequency = <&can1>,"spi-max-frequency:0"; + interrupt = <&can1_pins>,"brcm,pins:0",<&can1>,"interrupts:0"; + }; +}; + From f45a961da8eb08673ef97ce7711c90e57b2e382c Mon Sep 17 00:00:00 2001 From: petit-miner Date: Fri, 10 Jul 2015 14:21:53 +0200 Subject: [PATCH 2/2] Update mcp2515-can1-overlay.dts --- arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts index e46c5d049fa904..52f7f58da93073 100644 --- a/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts +++ b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts @@ -1,5 +1,5 @@ /* - * Device tree overlay for mcp251x/can1 on spi0.0 edited by petit_miner + * Device tree overlay for mcp251x/can1 on spi0.1 edited by petit_miner */ /dts-v1/; @@ -7,7 +7,7 @@ / { compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709"; - /* disable spi-dev for spi0.0 */ + /* disable spi-dev for spi0.1 */ fragment@0 { target = <&spi0>; __overlay__ { @@ -33,7 +33,7 @@ fragment@2 { target-path = "/clocks"; __overlay__ { - /* external oscillator of mcp2515 on SPI0.0 */ + /* external oscillator of mcp2515 on SPI0.1 */ can1_osc: can1_osc { compatible = "fixed-clock"; #clock-cells = <0>;