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