Documentation / devicetree / bindings / net / can / microchip,mcp251xfd.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/can/microchip,mcp251xfd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Microchip MCP2517FD, MCP2518FD and MCP251863 stand-alone CAN controller

maintainers:
  - Marc Kleine-Budde <mkl@pengutronix.de>

allOf:
  - $ref: can-controller.yaml#

properties:
  compatible:
    oneOf:
      - enum:
          - microchip,mcp2517fd
          - microchip,mcp2518fd
          - microchip,mcp251xfd
      - items:
          - enum:
              - microchip,mcp251863
          - const: microchip,mcp2518fd
  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  vdd-supply:
    description: Regulator that powers the CAN controller.

  xceiver-supply:
    description: Regulator that powers the CAN transceiver.

  microchip,rx-int-gpios:
    description:
      GPIO phandle of GPIO connected to INT1 pin of the MCP251XFD, which
      signals a pending RX interrupt.
    maxItems: 1

  microchip,xstbyen:
    type: boolean
    description:
      If present, configure the INT0/GPIO0/XSTBY pin as transceiver standby
      control. The pin is driven low when the controller is active and high
      when it enters Sleep mode, allowing automatic standby control of an
      external CAN transceiver connected to this pin.

  spi-max-frequency:
    description:
      Must be half or less of "clocks" frequency.
    maximum: 20000000

  gpio-controller: true
 
  "#gpio-cells":
    const: 2

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
 
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
 
        can@0 {
            compatible = "microchip,mcp251xfd";
            reg = <0>;
            clocks = <&can0_osc>;
            pinctrl-names = "default";
            pinctrl-0 = <&can0_pins>;
            spi-max-frequency = <20000000>;
            interrupts-extended = <&gpio 13 IRQ_TYPE_LEVEL_LOW>;
            microchip,rx-int-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
            vdd-supply = <&reg5v0>;
            xceiver-supply = <&reg5v0>;
        };
    };