dt-bindings: ipmi: Convert IPMI-SMIC bindings to json-schema

Convert the generic IPMI controller bindings to DT schema format
using json-schema.

The device_type property is deprecated for most node per the DT spec,
but at least the Linux driver matches on it, so I keep it in.

The Linux driver parses for some additional and optional properties,
but there are no in-tree users. Let's allow extra properties to cover
any other users.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Andre Przywara 2020-04-30 22:10:53 +01:00 committed by Rob Herring
parent a6325e3e69
commit fdab2dc5bc
2 changed files with 63 additions and 25 deletions

View File

@ -1,25 +0,0 @@
IPMI device
Required properties:
- compatible: should be one of ipmi-kcs, ipmi-smic, or ipmi-bt
- device_type: should be ipmi
- reg: Address and length of the register set for the device
Optional properties:
- interrupts: The interrupt for the device. Without this the interface
is polled.
- reg-size - The size of the register. Defaults to 1
- reg-spacing - The number of bytes between register starts. Defaults to 1
- reg-shift - The amount to shift the registers to the right to get the data
into bit zero.
Example:
smic@fff3a000 {
compatible = "ipmi-smic";
device_type = "ipmi";
reg = <0xfff3a000 0x1000>;
interrupts = <0 24 4>;
reg-size = <4>;
reg-spacing = <4>;
};

View File

@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IPMI device bindings
description: IPMI device bindings
maintainers:
- Corey Minyard <cminyard@mvista.com>
properties:
compatible:
enum:
- ipmi-kcs
- ipmi-smic
- ipmi-bt
device_type:
items:
- const: "ipmi"
reg:
maxItems: 1
interrupts:
description: Interface is polled if this property is omitted.
maxItems: 1
reg-size:
description: The access width of the register in bytes. Defaults to 1.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [1, 2, 4, 8]
reg-spacing:
$ref: /schemas/types.yaml#/definitions/uint32
description: The number of bytes between register starts. Defaults to 1.
reg-shift:
description: |
The amount of bits to shift the register content to the right to get
the data into bit zero.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- maximum: 56
required:
- compatible
- reg
examples:
- |
smic@fff3a000 {
compatible = "ipmi-smic";
device_type = "ipmi";
reg = <0xfff3a000 0x1000>;
interrupts = <0 24 4>;
reg-size = <4>;
reg-spacing = <4>;
};