/* * Device tree overlay for mcp251x/can0 on spi0.0 */ /dts-v1/; /plugin/; / { compatible = "brcm,bcm2835"; /* disable spi-dev for spi0.0 */ fragment@0 { target = <&spi0>; __overlay__ { status = "okay"; }; }; fragment@1 { target = <&spidev0>; __overlay__ { status = "disabled"; }; }; /* the interrupt pin of the can-controller */ fragment@2 { target = <&gpio>; __overlay__ { can0_pins: can0_pins { brcm,pins = <25>; brcm,function = <0>; /* input */ }; }; }; /* the clock/oscillator of the can-controller */ fragment@3 { target-path = "/"; __overlay__ { /* external oscillator of mcp2515 on SPI0.0 */ can0_osc: can0_osc { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <16000000>; }; }; }; /* the spi config of the can-controller itself binding everything together */ fragment@4 { target = <&spi0>; __overlay__ { /* needed to avoid dtc warning */ #address-cells = <1>; #size-cells = <0>; can0: mcp2515@0 { reg = <0>; compatible = "microchip,mcp2515"; pinctrl-names = "default"; pinctrl-0 = <&can0_pins>; spi-max-frequency = <10000000>; interrupt-parent = <&gpio>; interrupts = <25 8>; /* IRQ_TYPE_LEVEL_LOW */ clocks = <&can0_osc>; }; }; }; __overrides__ { oscillator = <&can0_osc>,"clock-frequency:0"; spimaxfrequency = <&can0>,"spi-max-frequency:0"; interrupt = <&can0_pins>,"brcm,pins:0",<&can0>,"interrupts:0"; }; };