Thank for replying.
That was exactly the adjustment I made that successfully loaded the overlay.
This modification ensures that can0 is created with some duplicate error.
pi@orangepi3:~$ dmesg | grep spi||mcp
[ 2.332200] sun6i-spi 5011000.spi: chipselect 0 already in use
[ 2.332207] spi_master spi1: spi_device register error /soc/spi@5011000/spidev@0
[ 2.332216] spi_master spi1: Failed to create SPI device for /soc/spi@5011000/spidev@0
[ 6.059773] mcp251x spi1.0 can0: MCP2515 successfully initialized.
[ 263.483858] mcp251x spi1.0: failed to acquire irq 0
The last log line is created with the command below:
pi@orangepi3:~$ sudo ip link set can0 up type can bitrate 250000
replies with error message
RTNETLINK answers: Invalid argument
My armbianEnv.txt
verbosity=1
console=both
overlay_prefix=sun50i-h6
rootdev=UUID=31a66c72-3b09-4222-a0f2-0f02de01b719
rootfstype=ext4
overlays=spi-spidev1
user_overlays=spi-mcp2515
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
My overlay:
/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun50i-h6";
fragment@0 {
target-path = "/";
__overlay__ {
can0_osc_fixed: can0_osc_fixed {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <8000000>;
};
};
};
fragment@1 {
target = <&pio>;
__overlay__ {
can0_pin_irq: can0_pin_irq {
pins = "PD21";
function = "irq";
bias-pull-up;
};
};
};
fragment@2 {
target = <&spi1>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
can0:mcp2515@0 {
reg = <0>;
compatible = "microchip,mcp2515";
pinctrl-names = "default";
pinctrl-0 = <&can0_pin_irq>;
spi-max-frequency = <10000000>;
interrupt-parent = <&pio>;
interrupts = <3 21 2>; /* PD21 -> 0 7 2 = PA7 IRQ_TYPE_EDGE_FALLING */
clocks = <&can0_osc_fixed>;
status = "okay";
};
};
};
};
Update: For Opi3 read: