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