162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/net/can/bosch,c_can.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Bosch C_CAN/D_CAN controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription: Bosch C_CAN/D_CAN controller for CAN bus
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cimaintainers:
1262306a36Sopenharmony_ci  - Dario Binacchi <dariobin@libero.it>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciallOf:
1562306a36Sopenharmony_ci  - $ref: can-controller.yaml#
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    oneOf:
2062306a36Sopenharmony_ci      - enum:
2162306a36Sopenharmony_ci          - bosch,c_can
2262306a36Sopenharmony_ci          - bosch,d_can
2362306a36Sopenharmony_ci          - ti,dra7-d_can
2462306a36Sopenharmony_ci          - ti,am3352-d_can
2562306a36Sopenharmony_ci      - items:
2662306a36Sopenharmony_ci          - enum:
2762306a36Sopenharmony_ci              - ti,am4372-d_can
2862306a36Sopenharmony_ci          - const: ti,am3352-d_can
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  reg:
3162306a36Sopenharmony_ci    maxItems: 1
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  interrupts:
3462306a36Sopenharmony_ci    minItems: 1
3562306a36Sopenharmony_ci    maxItems: 4
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  power-domains:
3862306a36Sopenharmony_ci    description: |
3962306a36Sopenharmony_ci      Should contain a phandle to a PM domain provider node and an args
4062306a36Sopenharmony_ci      specifier containing the DCAN device id value. It's mandatory for
4162306a36Sopenharmony_ci      Keystone 2 66AK2G SoCs only.
4262306a36Sopenharmony_ci    maxItems: 1
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  clocks:
4562306a36Sopenharmony_ci    description: |
4662306a36Sopenharmony_ci      CAN functional clock phandle.
4762306a36Sopenharmony_ci    maxItems: 1
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  clock-names:
5062306a36Sopenharmony_ci    maxItems: 1
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  syscon-raminit:
5362306a36Sopenharmony_ci    description: |
5462306a36Sopenharmony_ci      Handle to system control region that contains the RAMINIT register,
5562306a36Sopenharmony_ci      register offset to the RAMINIT register and the CAN instance number (0
5662306a36Sopenharmony_ci      offset).
5762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
5862306a36Sopenharmony_ci    items:
5962306a36Sopenharmony_ci      - items:
6062306a36Sopenharmony_ci          - description: The phandle to the system control region.
6162306a36Sopenharmony_ci          - description: The register offset.
6262306a36Sopenharmony_ci          - description: The CAN instance number.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  resets:
6562306a36Sopenharmony_ci    maxItems: 1
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cirequired:
6862306a36Sopenharmony_ci  - compatible
6962306a36Sopenharmony_ci  - reg
7062306a36Sopenharmony_ci  - interrupts
7162306a36Sopenharmony_ci  - clocks
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciif:
7462306a36Sopenharmony_ci  properties:
7562306a36Sopenharmony_ci    compatible:
7662306a36Sopenharmony_ci      contains:
7762306a36Sopenharmony_ci        enum:
7862306a36Sopenharmony_ci          - bosch,d_can
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_cithen:
8162306a36Sopenharmony_ci  properties:
8262306a36Sopenharmony_ci    interrupts:
8362306a36Sopenharmony_ci      items:
8462306a36Sopenharmony_ci        - description: Error and status IRQ
8562306a36Sopenharmony_ci        - description: Message object IRQ
8662306a36Sopenharmony_ci        - description: RAM ECC correctable error IRQ
8762306a36Sopenharmony_ci        - description: RAM ECC non-correctable error IRQ
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_cielse:
9062306a36Sopenharmony_ci  properties:
9162306a36Sopenharmony_ci    interrupts:
9262306a36Sopenharmony_ci      items:
9362306a36Sopenharmony_ci        - description: Error and status IRQ
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciadditionalProperties: false
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciexamples:
9862306a36Sopenharmony_ci  - |
9962306a36Sopenharmony_ci    #include <dt-bindings/reset/altr,rst-mgr.h>
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci    can@ffc00000 {
10262306a36Sopenharmony_ci       compatible = "bosch,d_can";
10362306a36Sopenharmony_ci       reg = <0xffc00000 0x1000>;
10462306a36Sopenharmony_ci       interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>;
10562306a36Sopenharmony_ci       clocks = <&can0_clk>;
10662306a36Sopenharmony_ci       resets = <&rst CAN0_RESET>;
10762306a36Sopenharmony_ci    };
10862306a36Sopenharmony_ci  - |
10962306a36Sopenharmony_ci    can@0 {
11062306a36Sopenharmony_ci        compatible = "ti,am3352-d_can";
11162306a36Sopenharmony_ci        reg = <0x0 0x2000>;
11262306a36Sopenharmony_ci        clocks = <&dcan1_fck>;
11362306a36Sopenharmony_ci        clock-names = "fck";
11462306a36Sopenharmony_ci        syscon-raminit = <&scm_conf 0x644 1>;
11562306a36Sopenharmony_ci        interrupts = <55>;
11662306a36Sopenharmony_ci    };
117