mirror of
https://github.com/torvalds/linux.git
synced 2024-12-13 14:43:03 +00:00
dt-bindings: net: can: c_can: convert to json-schema
Convert the Bosch C_CAN/D_CAN controller device tree binding documentation to json-schema. Document missing properties. Remove "ti,hwmods" as it is no longer used in TI dts. Make "clocks" required as it is used in all dts. Update the examples. Link: https://lore.kernel.org/r/20210805192750.9051-1-dariobin@libero.it Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
812270e544
commit
06fc143b2e
119
Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
Normal file
119
Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
Normal file
@ -0,0 +1,119 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/net/can/bosch,c_can.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bosch C_CAN/D_CAN controller Device Tree Bindings
|
||||
|
||||
description: Bosch C_CAN/D_CAN controller for CAN bus
|
||||
|
||||
maintainers:
|
||||
- Dario Binacchi <dariobin@libero.it>
|
||||
|
||||
allOf:
|
||||
- $ref: can-controller.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- bosch,c_can
|
||||
- bosch,d_can
|
||||
- ti,dra7-d_can
|
||||
- ti,am3352-d_can
|
||||
- items:
|
||||
- enum:
|
||||
- ti,am4372-d_can
|
||||
- const: ti,am3352-d_can
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
power-domains:
|
||||
description: |
|
||||
Should contain a phandle to a PM domain provider node and an args
|
||||
specifier containing the DCAN device id value. It's mandatory for
|
||||
Keystone 2 66AK2G SoCs only.
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
description: |
|
||||
CAN functional clock phandle.
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
maxItems: 1
|
||||
|
||||
syscon-raminit:
|
||||
description: |
|
||||
Handle to system control region that contains the RAMINIT register,
|
||||
register offset to the RAMINIT register and the CAN instance number (0
|
||||
offset).
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
items:
|
||||
- description: The phandle to the system control region.
|
||||
- description: The register offset.
|
||||
- description: The CAN instance number.
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- bosch,d_can
|
||||
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- description: Error and status IRQ
|
||||
- description: Message object IRQ
|
||||
- description: RAM ECC correctable error IRQ
|
||||
- description: RAM ECC non-correctable error IRQ
|
||||
|
||||
else:
|
||||
properties:
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
items:
|
||||
- description: Error and status IRQ
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/reset/altr,rst-mgr.h>
|
||||
|
||||
can@ffc00000 {
|
||||
compatible = "bosch,d_can";
|
||||
reg = <0xffc00000 0x1000>;
|
||||
interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>;
|
||||
clocks = <&can0_clk>;
|
||||
resets = <&rst CAN0_RESET>;
|
||||
};
|
||||
- |
|
||||
can@0 {
|
||||
compatible = "ti,am3352-d_can";
|
||||
reg = <0x0 0x2000>;
|
||||
clocks = <&dcan1_fck>;
|
||||
clock-names = "fck";
|
||||
syscon-raminit = <&scm_conf 0x644 1>;
|
||||
interrupts = <55>;
|
||||
};
|
@ -1,65 +0,0 @@
|
||||
Bosch C_CAN/D_CAN controller Device Tree Bindings
|
||||
-------------------------------------------------
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "bosch,c_can" for C_CAN controllers and
|
||||
"bosch,d_can" for D_CAN controllers.
|
||||
Can be "ti,dra7-d_can", "ti,am3352-d_can" or
|
||||
"ti,am4372-d_can".
|
||||
- reg : physical base address and size of the C_CAN/D_CAN
|
||||
registers map
|
||||
- interrupts : property with a value describing the interrupt
|
||||
number
|
||||
|
||||
The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:
|
||||
- ti,hwmods : Must be "d_can<n>" or "c_can<n>", n being the
|
||||
instance number
|
||||
|
||||
The following are mandatory properties for Keystone 2 66AK2G SoCs only:
|
||||
- power-domains : Should contain a phandle to a PM domain provider node
|
||||
and an args specifier containing the DCAN device id
|
||||
value. This property is as per the binding,
|
||||
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
|
||||
- clocks : CAN functional clock phandle. This property is as per the
|
||||
binding,
|
||||
Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
|
||||
|
||||
Optional properties:
|
||||
- syscon-raminit : Handle to system control region that contains the
|
||||
RAMINIT register, register offset to the RAMINIT
|
||||
register and the CAN instance number (0 offset).
|
||||
|
||||
Note: "ti,hwmods" field is used to fetch the base address and irq
|
||||
resources from TI, omap hwmod data base during device registration.
|
||||
Future plan is to migrate hwmod data base contents into device tree
|
||||
blob so that, all the required data will be used from device tree dts
|
||||
file.
|
||||
|
||||
Example:
|
||||
|
||||
Step1: SoC common .dtsi file
|
||||
|
||||
dcan1: d_can@481d0000 {
|
||||
compatible = "bosch,d_can";
|
||||
reg = <0x481d0000 0x2000>;
|
||||
interrupts = <55>;
|
||||
interrupt-parent = <&intc>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
(or)
|
||||
|
||||
dcan1: d_can@481d0000 {
|
||||
compatible = "bosch,d_can";
|
||||
ti,hwmods = "d_can1";
|
||||
reg = <0x481d0000 0x2000>;
|
||||
interrupts = <55>;
|
||||
interrupt-parent = <&intc>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
Step 2: board specific .dts file
|
||||
|
||||
&dcan1 {
|
||||
status = "okay";
|
||||
};
|
Loading…
Reference in New Issue
Block a user