# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/can/nxp,sja1000.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Memory mapped SJA1000 CAN controller from NXP (formerly Philips) maintainers: - Wolfgang Grandegger <wg@grandegger.com> properties: compatible: oneOf: - enum: - nxp,sja1000 - technologic,sja1000 - items: - enum: - renesas,r9a06g032-sja1000 # RZ/N1D - renesas,r9a06g033-sja1000 # RZ/N1S - const: renesas,rzn1-sja1000 # RZ/N1 reg: maxItems: 1 interrupts: maxItems: 1 clocks: maxItems: 1 power-domains: maxItems: 1 reg-io-width: description: I/O register width (in bytes) implemented by this device default: 1 enum: [ 1, 2, 4 ] nxp,external-clock-frequency: $ref: /schemas/types.yaml#/definitions/uint32 default: 16000000 description: | Frequency of the external oscillator clock in Hz. The internal clock frequency used by the SJA1000 is half of that value. nxp,tx-output-mode: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 0, 1, 2, 3 ] default: 1 description: | operation mode of the TX output control logic. Valid values are: <0> : bi-phase output mode <1> : normal output mode (default) <2> : test output mode <3> : clock output mode nxp,tx-output-config: $ref: /schemas/types.yaml#/definitions/uint32 default: 0x02 description: | TX output pin configuration. Valid values are any one of the below or combination of TX0 and TX1: <0x01> : TX0 invert <0x02> : TX0 pull-down (default) <0x04> : TX0 pull-up <0x06> : TX0 push-pull <0x08> : TX1 invert <0x10> : TX1 pull-down <0x20> : TX1 pull-up <0x30> : TX1 push-pull nxp,clock-out-frequency: $ref: /schemas/types.yaml#/definitions/uint32 description: | clock frequency in Hz on the CLKOUT pin. If not specified or if the specified value is 0, the CLKOUT pin will be disabled. nxp,no-comparator-bypass: type: boolean description: Allows to disable the CAN input comparator. required: - compatible - reg - interrupts allOf: - $ref: can-controller.yaml# - if: properties: compatible: contains: enum: - technologic,sja1000 - renesas,rzn1-sja1000 then: required: - reg-io-width - if: properties: compatible: contains: const: renesas,rzn1-sja1000 then: required: - clocks - power-domains unevaluatedProperties: false examples: - | can@1a000 { compatible = "technologic,sja1000"; reg = <0x1a000 0x100>; interrupts = <1>; reg-io-width = <2>; nxp,tx-output-config = <0x06>; nxp,external-clock-frequency = <24000000>; }; - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/r9a06g032-sysctrl.h> can@52104000 { compatible = "renesas,r9a06g032-sja1000", "renesas,rzn1-sja1000"; reg = <0x52104000 0x800>; reg-io-width = <4>; interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; clocks = <&sysctrl R9A06G032_HCLK_CAN0>; power-domains = <&sysctrl>; };