new file mode 100644
@@ -0,0 +1,67 @@
+.. _device-tree/imc:
+
+===========================
+IMC Device Tree Bindings
+===========================
+
+See :ref:`imc` for general In-Memory Collection (IMC) counter information.
+
+imc-counters top-level node
+----------------------------
+.. code-block:: dts
+
+ imc-counters {
+ compatible = "ibm,opal-in-memory-counters";
+ imc-nest-size = <0x40000>; /* region of Nest (Chip) counters in reserve-memory (HOMER) */
+
+ imc-nest-offset = <0x180000>; /* size of Nest (Chip) counters region in reserve-memory (HOMER) */
+
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ phandle = <0x1000023a>;
+ version-id = <0xd>;
+
+ };
+
+IMC device/units bindings
+-------------------------
+
+.. code-block:: dts
+
+ mcs3 {
+ compatible = "ibm,imc-counters-nest";
+ events-prefix = "PM_MCS3_"; /* denotes event name to be prefixed to get complete event name supported by this device */
+
+ phandle = <0x10000241>;
+ events = <0x10000242>; /* phandle of the events node supported by this device */
+
+ unit = "MiB";
+ scale = "1.2207e-4"; /* unit and scale for all the events for this device */
+
+ reg = <0x118 0x8>; /* denotes base address for device event updates */
+ };
+
+
+IMC device event bindings
+-------------------------
+
+.. code-block:: dts
+
+ nest-mcs-events {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ phandle = <0x10000242>;
+
+ event@98 {
+ desc = "Total Write Bandwidth seen on both MCS"; /* event description */
+
+ phandle = <0x1000023d>;
+ reg = <0x98 0x8>; /* event offset,when added with (nest-offset-address + device reg) will point to actual counter memory */
+
+ event-name = "DOWN_128B_DATA_XFER"; /* denotes the actual event name */
+
+ };
+
+ /* List of events supported */
+
+ };