blob: 144a3785132c31a23253dc5b11b4ea215deaf9fc [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/can/nxp,sja1000.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Memory mapped SJA1000 CAN controller from NXP (formerly Philips)
8
9maintainers:
10 - Wolfgang Grandegger <wg@grandegger.com>
11
12properties:
13 compatible:
14 oneOf:
15 - enum:
16 - nxp,sja1000
17 - technologic,sja1000
18 - items:
19 - enum:
20 - renesas,r9a06g032-sja1000 # RZ/N1D
21 - renesas,r9a06g033-sja1000 # RZ/N1S
22 - const: renesas,rzn1-sja1000 # RZ/N1
23
24 reg:
25 maxItems: 1
26
27 interrupts:
28 maxItems: 1
29
30 clocks:
31 maxItems: 1
32
33 power-domains:
34 maxItems: 1
35
36 reg-io-width:
37 description: I/O register width (in bytes) implemented by this device
38 default: 1
39 enum: [ 1, 2, 4 ]
40
41 nxp,external-clock-frequency:
42 $ref: /schemas/types.yaml#/definitions/uint32
43 default: 16000000
44 description: |
45 Frequency of the external oscillator clock in Hz.
46 The internal clock frequency used by the SJA1000 is half of that value.
47
48 nxp,tx-output-mode:
49 $ref: /schemas/types.yaml#/definitions/uint32
50 enum: [ 0, 1, 2, 3 ]
51 default: 1
52 description: |
53 operation mode of the TX output control logic. Valid values are:
54 <0> : bi-phase output mode
55 <1> : normal output mode (default)
56 <2> : test output mode
57 <3> : clock output mode
58
59 nxp,tx-output-config:
60 $ref: /schemas/types.yaml#/definitions/uint32
61 default: 0x02
62 description: |
63 TX output pin configuration. Valid values are any one of the below
64 or combination of TX0 and TX1:
65 <0x01> : TX0 invert
66 <0x02> : TX0 pull-down (default)
67 <0x04> : TX0 pull-up
68 <0x06> : TX0 push-pull
69 <0x08> : TX1 invert
70 <0x10> : TX1 pull-down
71 <0x20> : TX1 pull-up
72 <0x30> : TX1 push-pull
73
74 nxp,clock-out-frequency:
75 $ref: /schemas/types.yaml#/definitions/uint32
76 description: |
77 clock frequency in Hz on the CLKOUT pin.
78 If not specified or if the specified value is 0, the CLKOUT pin
79 will be disabled.
80
81 nxp,no-comparator-bypass:
82 type: boolean
83 description: Allows to disable the CAN input comparator.
84
85required:
86 - compatible
87 - reg
88 - interrupts
89
90allOf:
91 - $ref: can-controller.yaml#
92 - if:
93 properties:
94 compatible:
95 contains:
96 enum:
97 - technologic,sja1000
98 - renesas,rzn1-sja1000
99 then:
100 required:
101 - reg-io-width
102 - if:
103 properties:
104 compatible:
105 contains:
106 const: renesas,rzn1-sja1000
107 then:
108 required:
109 - clocks
110 - power-domains
111
112unevaluatedProperties: false
113
114examples:
115 - |
116 can@1a000 {
117 compatible = "technologic,sja1000";
118 reg = <0x1a000 0x100>;
119 interrupts = <1>;
120 reg-io-width = <2>;
121 nxp,tx-output-config = <0x06>;
122 nxp,external-clock-frequency = <24000000>;
123 };
124
125 - |
126 #include <dt-bindings/interrupt-controller/arm-gic.h>
127 #include <dt-bindings/clock/r9a06g032-sysctrl.h>
128
129 can@52104000 {
130 compatible = "renesas,r9a06g032-sja1000", "renesas,rzn1-sja1000";
131 reg = <0x52104000 0x800>;
132 reg-io-width = <4>;
133 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
134 clocks = <&sysctrl R9A06G032_HCLK_CAN0>;
135 power-domains = <&sysctrl>;
136 };