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