xref: /openbmc/linux/Documentation/devicetree/bindings/net/can/nxp,sja1000.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1f6b8061dSBiju Das# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2f6b8061dSBiju Das%YAML 1.2
3f6b8061dSBiju Das---
4f6b8061dSBiju Das$id: http://devicetree.org/schemas/net/can/nxp,sja1000.yaml#
5f6b8061dSBiju Das$schema: http://devicetree.org/meta-schemas/core.yaml#
6f6b8061dSBiju Das
7f6b8061dSBiju Dastitle: Memory mapped SJA1000 CAN controller from NXP (formerly Philips)
8f6b8061dSBiju Das
9f6b8061dSBiju Dasmaintainers:
10f6b8061dSBiju Das  - Wolfgang Grandegger <wg@grandegger.com>
11f6b8061dSBiju Das
12f6b8061dSBiju Dasproperties:
13f6b8061dSBiju Das  compatible:
144591c760SBiju Das    oneOf:
154591c760SBiju Das      - enum:
16f6b8061dSBiju Das          - nxp,sja1000
17f6b8061dSBiju Das          - technologic,sja1000
184591c760SBiju Das      - items:
194591c760SBiju Das          - enum:
204591c760SBiju Das              - renesas,r9a06g032-sja1000 # RZ/N1D
214591c760SBiju Das              - renesas,r9a06g033-sja1000 # RZ/N1S
224591c760SBiju Das          - const: renesas,rzn1-sja1000 # RZ/N1
23f6b8061dSBiju Das
24f6b8061dSBiju Das  reg:
25f6b8061dSBiju Das    maxItems: 1
26f6b8061dSBiju Das
27f6b8061dSBiju Das  interrupts:
28f6b8061dSBiju Das    maxItems: 1
29f6b8061dSBiju Das
304591c760SBiju Das  clocks:
314591c760SBiju Das    maxItems: 1
324591c760SBiju Das
33*f4dda244SBiju Das  power-domains:
34*f4dda244SBiju Das    maxItems: 1
35*f4dda244SBiju Das
36f6b8061dSBiju Das  reg-io-width:
37f6b8061dSBiju Das    description: I/O register width (in bytes) implemented by this device
38f6b8061dSBiju Das    default: 1
39f6b8061dSBiju Das    enum: [ 1, 2, 4 ]
40f6b8061dSBiju Das
41f6b8061dSBiju Das  nxp,external-clock-frequency:
42f6b8061dSBiju Das    $ref: /schemas/types.yaml#/definitions/uint32
43f6b8061dSBiju Das    default: 16000000
44f6b8061dSBiju Das    description: |
45f6b8061dSBiju Das      Frequency of the external oscillator clock in Hz.
46f6b8061dSBiju Das      The internal clock frequency used by the SJA1000 is half of that value.
47f6b8061dSBiju Das
48f6b8061dSBiju Das  nxp,tx-output-mode:
49f6b8061dSBiju Das    $ref: /schemas/types.yaml#/definitions/uint32
50f6b8061dSBiju Das    enum: [ 0, 1, 2, 3 ]
51f6b8061dSBiju Das    default: 1
52f6b8061dSBiju Das    description: |
53f6b8061dSBiju Das      operation mode of the TX output control logic. Valid values are:
54f6b8061dSBiju Das        <0> : bi-phase output mode
55f6b8061dSBiju Das        <1> : normal output mode (default)
56f6b8061dSBiju Das        <2> : test output mode
57f6b8061dSBiju Das        <3> : clock output mode
58f6b8061dSBiju Das
59f6b8061dSBiju Das  nxp,tx-output-config:
60f6b8061dSBiju Das    $ref: /schemas/types.yaml#/definitions/uint32
61f6b8061dSBiju Das    default: 0x02
62f6b8061dSBiju Das    description: |
63f6b8061dSBiju Das      TX output pin configuration. Valid values are any one of the below
64f6b8061dSBiju Das      or combination of TX0 and TX1:
65f6b8061dSBiju Das        <0x01> : TX0 invert
66f6b8061dSBiju Das        <0x02> : TX0 pull-down (default)
67f6b8061dSBiju Das        <0x04> : TX0 pull-up
68f6b8061dSBiju Das        <0x06> : TX0 push-pull
69f6b8061dSBiju Das        <0x08> : TX1 invert
70f6b8061dSBiju Das        <0x10> : TX1 pull-down
71f6b8061dSBiju Das        <0x20> : TX1 pull-up
72f6b8061dSBiju Das        <0x30> : TX1 push-pull
73f6b8061dSBiju Das
74f6b8061dSBiju Das  nxp,clock-out-frequency:
75f6b8061dSBiju Das    $ref: /schemas/types.yaml#/definitions/uint32
76f6b8061dSBiju Das    description: |
77f6b8061dSBiju Das      clock frequency in Hz on the CLKOUT pin.
78f6b8061dSBiju Das      If not specified or if the specified value is 0, the CLKOUT pin
79f6b8061dSBiju Das      will be disabled.
80f6b8061dSBiju Das
81f6b8061dSBiju Das  nxp,no-comparator-bypass:
82f6b8061dSBiju Das    type: boolean
83f6b8061dSBiju Das    description: Allows to disable the CAN input comparator.
84f6b8061dSBiju Das
85f6b8061dSBiju Dasrequired:
86f6b8061dSBiju Das  - compatible
87f6b8061dSBiju Das  - reg
88f6b8061dSBiju Das  - interrupts
89f6b8061dSBiju Das
90f6b8061dSBiju DasallOf:
91f6b8061dSBiju Das  - $ref: can-controller.yaml#
92f6b8061dSBiju Das  - if:
93f6b8061dSBiju Das      properties:
94f6b8061dSBiju Das        compatible:
95f6b8061dSBiju Das          contains:
964591c760SBiju Das            enum:
974591c760SBiju Das              - technologic,sja1000
984591c760SBiju Das              - renesas,rzn1-sja1000
99f6b8061dSBiju Das    then:
100f6b8061dSBiju Das      required:
101f6b8061dSBiju Das        - reg-io-width
1024591c760SBiju Das  - if:
1034591c760SBiju Das      properties:
1044591c760SBiju Das        compatible:
1054591c760SBiju Das          contains:
1064591c760SBiju Das            const: renesas,rzn1-sja1000
1074591c760SBiju Das    then:
1084591c760SBiju Das      required:
1094591c760SBiju Das        - clocks
110*f4dda244SBiju Das        - power-domains
111f6b8061dSBiju Das
112f6b8061dSBiju DasunevaluatedProperties: false
113f6b8061dSBiju Das
114f6b8061dSBiju Dasexamples:
115f6b8061dSBiju Das  - |
116f6b8061dSBiju Das    can@1a000 {
117f6b8061dSBiju Das        compatible = "technologic,sja1000";
118f6b8061dSBiju Das        reg = <0x1a000 0x100>;
119f6b8061dSBiju Das        interrupts = <1>;
120f6b8061dSBiju Das        reg-io-width = <2>;
121f6b8061dSBiju Das        nxp,tx-output-config = <0x06>;
122f6b8061dSBiju Das        nxp,external-clock-frequency = <24000000>;
123f6b8061dSBiju Das    };
1244591c760SBiju Das
1254591c760SBiju Das  - |
1264591c760SBiju Das    #include <dt-bindings/interrupt-controller/arm-gic.h>
1274591c760SBiju Das    #include <dt-bindings/clock/r9a06g032-sysctrl.h>
1284591c760SBiju Das
1294591c760SBiju Das    can@52104000 {
1304591c760SBiju Das        compatible = "renesas,r9a06g032-sja1000", "renesas,rzn1-sja1000";
1314591c760SBiju Das        reg = <0x52104000 0x800>;
1324591c760SBiju Das        reg-io-width = <4>;
1334591c760SBiju Das        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1344591c760SBiju Das        clocks = <&sysctrl R9A06G032_HCLK_CAN0>;
135*f4dda244SBiju Das        power-domains = <&sysctrl>;
1364591c760SBiju Das    };
137