File Index
Files and directories
Sign in
FILE

ti,tcan4x5x.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/net/can/ti,tcan4x5x.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Texas Instruments TCAN4x5x CAN Controller
  8
  9maintainers:
 10  - Marc Kleine-Budde <mkl@pengutronix.de>
 11
 12properties:
 13  compatible:
 14    oneOf:
 15      - items:
 16          - enum:
 17              - ti,tcan4552
 18              - ti,tcan4553
 19          - const: ti,tcan4x5x
 20      - const: ti,tcan4x5x
 21
 22  reg:
 23    maxItems: 1
 24
 25  interrupts:
 26    maxItems: 1
 27    description: The GPIO parent interrupt.
 28
 29  clocks:
 30    maxItems: 1
 31
 32  clock-names:
 33    items:
 34      - const: cclk
 35
 36  reset-gpios:
 37    description: Hardwired output GPIO. If not defined then software reset.
 38    maxItems: 1
 39
 40  device-state-gpios:
 41    description:
 42      Input GPIO that indicates if the device is in a sleep state or if the
 43      device is active. Not available with tcan4552/4553.
 44    maxItems: 1
 45
 46  device-wake-gpios:
 47    description:
 48      Wake up GPIO to wake up the TCAN device.
 49      Not available with tcan4552/4553.
 50    maxItems: 1
 51
 52  bosch,mram-cfg:
 53    description: |
 54      Message RAM configuration data.
 55      Multiple M_CAN instances can share the same Message RAM
 56      and each element(e.g Rx FIFO or Tx Buffer and etc) number
 57      in Message RAM is also configurable, so this property is
 58      telling driver how the shared or private Message RAM are
 59      used by this M_CAN controller.
 60
 61      The format should be as follows:
 62      <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
 63      The 'offset' is an address offset of the Message RAM where
 64      the following elements start from. This is usually set to
 65      0x0 if you're using a private Message RAM. The remain cells
 66      are used to specify how many elements are used for each FIFO/Buffer.
 67
 68      M_CAN includes the following elements according to user manual:
 69      11-bit Filter	0-128 elements / 0-128 words
 70      29-bit Filter	0-64 elements / 0-128 words
 71      Rx FIFO 0		0-64 elements / 0-1152 words
 72      Rx FIFO 1		0-64 elements / 0-1152 words
 73      Rx Buffers	0-64 elements / 0-1152 words
 74      Tx Event FIFO	0-32 elements / 0-64 words
 75      Tx Buffers	0-32 elements / 0-576 words
 76
 77      Please refer to 2.4.1 Message RAM Configuration in Bosch
 78      M_CAN user manual for details.
 79    $ref: /schemas/types.yaml#/definitions/int32-array
 80    items:
 81      - description: The 'offset' is an address offset of the Message RAM where
 82          the following elements start from. This is usually set to 0x0 if
 83          you're using a private Message RAM.
 84        default: 0
 85      - description: 11-bit Filter 0-128 elements / 0-128 words
 86        minimum: 0
 87        maximum: 128
 88      - description: 29-bit Filter 0-64 elements / 0-128 words
 89        minimum: 0
 90        maximum: 64
 91      - description: Rx FIFO 0 0-64 elements / 0-1152 words
 92        minimum: 0
 93        maximum: 64
 94      - description: Rx FIFO 1 0-64 elements / 0-1152 words
 95        minimum: 0
 96        maximum: 64
 97      - description: Rx Buffers 0-64 elements / 0-1152 words
 98        minimum: 0
 99        maximum: 64
100      - description: Tx Event FIFO 0-32 elements / 0-64 words
101        minimum: 0
102        maximum: 32
103      - description: Tx Buffers 0-32 elements / 0-576 words
104        minimum: 0
105        maximum: 32
106    minItems: 1
107
108  spi-max-frequency:
109    description:
110      Must be half or less of "clocks" frequency.
111    maximum: 18000000
112
113  ti,nwkrq-voltage-vio:
114    type: boolean
115    description:
116      nWKRQ Pin GPO buffer voltage configuration.
117      Set nWKRQ to use VIO voltage rail.
118      When not set nWKRQ will use internal voltage rail.
119
120  wakeup-source:
121    $ref: /schemas/types.yaml#/definitions/flag
122    description:
123      Enable CAN remote wakeup.
124
125allOf:
126  - $ref: can-controller.yaml#
127  - $ref: /schemas/spi/spi-peripheral-props.yaml#
128  - if:
129      properties:
130        compatible:
131          contains:
132            enum:
133              - ti,tcan4552
134              - ti,tcan4553
135    then:
136      properties:
137        device-state-gpios: false
138        device-wake-gpios: false
139
140required:
141  - compatible
142  - reg
143  - interrupts
144  - clocks
145  - clock-names
146  - bosch,mram-cfg
147
148unevaluatedProperties: false
149
150examples:
151  - |
152    #include <dt-bindings/gpio/gpio.h>
153    #include <dt-bindings/interrupt-controller/irq.h>
154
155    spi {
156        #address-cells = <1>;
157        #size-cells = <0>;
158
159        can@0 {
160            compatible = "ti,tcan4x5x";
161            reg = <0>;
162            clocks = <&can0_osc>;
163            clock-names = "cclk";
164            pinctrl-names = "default";
165            pinctrl-0 = <&can0_pins>;
166            spi-max-frequency = <10000000>;
167            bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
168            interrupt-parent = <&gpio1>;
169            interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
170            device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
171            device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
172            reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
173            ti,nwkrq-voltage-vio;
174            wakeup-source;
175        };
176    };
177  - |
178    #include <dt-bindings/gpio/gpio.h>
179    #include <dt-bindings/interrupt-controller/irq.h>
180
181    spi {
182        #address-cells = <1>;
183        #size-cells = <0>;
184
185        can@0 {
186            compatible = "ti,tcan4552", "ti,tcan4x5x";
187            reg = <0>;
188            clocks = <&can0_osc>;
189            clock-names = "cclk";
190            pinctrl-names = "default";
191            pinctrl-0 = <&can0_pins>;
192            spi-max-frequency = <10000000>;
193            bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
194            interrupt-parent = <&gpio1>;
195            interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
196            reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
197            wakeup-source;
198        };
199    };
~/ Read-only file preview.