xref: /linux/Documentation/devicetree/bindings/ipmi/ipmb-dev.yaml (revision 205a7309cccd34ad49c2b6b1b59b907c12395d6c)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/ipmi/ipmb-dev.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: The Intelligent Platform Management Bus(IPMB) Device
8
9description: |
10  The IPMB is an I2C bus which provides interconnection between a Baseboard
11  Management Controller(BMC) and chassis electronics. The BMC sends IPMI
12  requests to intelligent controllers like Satellite Management Controller(MC)
13  devices via IPMB and the device sends responses back to the BMC.
14  This device uses an I2C slave device to send and receive IPMB messages,
15  either on a BMC or other MC. A miscellaneous device provices a user space
16  program to communicate with the kernel and the backend device. Some IPMB
17  devices only support the I2C protocol and not the SMB protocol.
18
19  IPMB communications protocol Specification V1.0
20  https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf
21
22maintainers:
23  - Ninad Palsule <ninad@linux.ibm.com>
24
25properties:
26  compatible:
27    enum:
28      - ipmb-dev
29
30  reg:
31    maxItems: 1
32
33  i2c-protocol:
34    description:
35      Use I2C block transfer instead of SMBUS block transfer.
36    type: boolean
37
38required:
39  - compatible
40  - reg
41
42additionalProperties: false
43
44examples:
45  - |
46    #include <dt-bindings/i2c/i2c.h>
47    i2c {
48        #address-cells = <1>;
49        #size-cells = <0>;
50
51        ipmb-dev@10 {
52            compatible = "ipmb-dev";
53            reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
54            i2c-protocol;
55        };
56    };
57