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