From patchwork Thu Sep 14 06:48:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vadim Pasternak X-Patchwork-Id: 813710 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xt5jl0Gnmz9t1t for ; Thu, 14 Sep 2017 14:52:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751188AbdINEwJ (ORCPT ); Thu, 14 Sep 2017 00:52:09 -0400 Received: from mail-il-dmz.mellanox.com ([193.47.165.129]:56278 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750792AbdINEwI (ORCPT ); Thu, 14 Sep 2017 00:52:08 -0400 Received: from Internal Mail-Server by MTLPINE1 (envelope-from vadimp@mellanox.com) with ESMTPS (AES256-SHA encrypted); 14 Sep 2017 07:52:01 +0300 Received: from r-mgtswh-226.mtr.labs.mlnx. (r-mgtswh-226.mtr.labs.mlnx [10.209.1.51]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id v8E4pugM029921; Thu, 14 Sep 2017 07:52:01 +0300 From: Vadim Pasternak To: lee.jones@linaro.org, robh+dt@kernel.org Cc: pavel@ucw.cz, devicetree@vger.kernel.org, jacek.anaszewski@gmail.com, linux-leds@vger.kernel.org, jiri@resnulli.us, gregkh@linuxfoundation.org, andy.shevchenko@gmail.com, platform-driver-x86@vger.kernel.org, Vadim Pasternak Subject: [patch v5 2/2] dt-bindings: mfd: Add Device Tree bindings for Mellanox programmable devices Date: Thu, 14 Sep 2017 06:48:58 +0000 Message-Id: <1505371738-128683-3-git-send-email-vadimp@mellanox.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1505371738-128683-1-git-send-email-vadimp@mellanox.com> References: <1505371738-128683-1-git-send-email-vadimp@mellanox.com> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The mlxreg a multifunction device driver handling LEDs, events, exposing through sysfs reset signal, and reset causes info. These components share a common register space. Signed-off-by: Vadim Pasternak --- v4->v5: Comments pointed out by Rob: - Avoid duplications in reg; - Remove unnecessary details in description; - Do not use names like phandels; Changes added by Vadim: - Combine hotplug nodes interrupt aggregation, register offset and mask properties into hotplug-spec properties; - Combine reset, cause, etc subnodes register offset, mask and effective bit properties into attr-spec properties; v3->v4: Comments pointed out by Rob: - Make a separate patch /devicetree/bindings/vendor-prefixes.txt; - Add .txt to Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core and send it within this series; - Modify "compatible" property; - Modify explanation for "deferred" property; - Describe each subnode by its own section; - Don't use underscore in attribute names; --- .../bindings/mfd/mellanox,mlxreg-core.txt | 165 +++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core.txt diff --git a/Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core.txt b/Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core.txt new file mode 100644 index 0000000..1e3cce5 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/mellanox,mlxreg-core.txt @@ -0,0 +1,165 @@ +Mellanox programmable device control. +------------------------------------- +This binding defines the device control interface over for Mellanox BMC based +switches. + +Required properties: +- compatible = "mellanox,mlxreg-i2c" or + "mellanox,mlxreg-i2c-16" + +- #address-cells : must be 1; +- #size-cells : must be 0; +- reg : I2C address; + +Optional properties: +- interrupt-parent : phandle of parent interrupt controller; +- interrupts : interrupt line; +- deferred : I2C deferred bus phandle; + I2C bus activation order enforce for the cases when hot-plug + devices are attached to I2C bus, which is initialized after the + I2C bus, where programmable device is attached; +- hotplug-spec : + - aggr : interrupt top aggregation register offset; + - mask : interrupt top aggregation register mask; + +Optional nodes and their properties: + - psu : power supply unit nodes: + Required properties: + - hotplug-spec : + - aggr : effective bit in aggregation interrupt mask; + - reg : interrupt status register offset for all group members; + - mask : interrupt register mask; + - hotplugs - list of relevant dynamic device nodes; + - fan : fan unit nodes: + Required properties: + - hotplug-spec : + - aggr : effective bit in aggregation interrupt mask; + - reg : interrupt status register offset for all group members; + - mask : interrupt register mask; + - hotplugs - list of relevant dynamic device nodes; + - pwr : power cable nodes: + Required properties: + - hotplug-spec : + - aggr : effective bit in aggregation interrupt mask; + - reg : interrupt status register offset for all group members; + - mask : interrupt register mask; + - hotplugs : list of relevant dynamic device nodes; + - host : host side nodes (CPU host side for BMC): + Required properties: + - hotplug-spec : + - aggr : effective bit in aggregation interrupt mask; + - reg : interrupt status register offset for all group members; + - mask : interrupt register mask; + - hotplugs : list of relevant dynamic device nodes; + - asic : asic nodes: + Required properties: + - hotplug-spec : + - aggr : effective bit in aggregation interrupt mask; + - reg : interrupt status register offsets array per group member; + - mask : interrupt register mask; + - hotplugs : list of relevant device nodes; + - reset : reset nodes for system reset operations: + Required properties: + - reset control subnodes: + Required properties: + - attr-spec : + - reg : register offset; + - mask : attribute mask; + - cause - reset cause nodes for reading system reset cause: + Required properties: + - cause info subnodes: + Required properties: + - attr-spec : + - reg : register offset; + - mask : attribute mask; + - mux - mux nodes: + Required properties: + - mux control subnodes for hardware select operations: + Required properties: + - attr-spec : + - reg : register offset; + - mask : attribute mask; + - bit : effective bit; + Optional property: + - hotplugs : dynamic device node selected by mux; + - gprw - general purpose read-write register nodes: + Required properties: + - general purpose read-write register subnodes: + Required properties: + - attr-spec : + - reg : register offset; + - mask : attribute mask; + - gpro - general purpose read only register nodes: + Required properties: + - general purpose read only register subnodes: + Required properties: + - attr-spec : + - reg : register offset. + - mask : attribute mask. + - led - led nodes for led operations control: + Required properties: + - led control nodes: + Required properties: + - attr-spec : + - reg : register offset; + - mask : attribute mask; + +Example: + mlxcpld-mng-ctrl@71 { + #address-cells = <1>; + #size-cells = <0>; + interrupt-parent = <&gpio>; + interrupts = ; + compatible = "mellanox,mlxcpld-ctrl-i2c"; + reg = <0x71>; + deferred = <&i2c6>; + hotplug-spec = <0x3a 0x4c>; + + pwr: { + hotplug-spec = <0x08 0x64 0x03>; + hotplugs = <&psu1_ctrl &psu2_ctrl>; + }; + + mux { + spi_burn_bios_ci { + attr-spec = <0x32 0xfe 0x00>; + hotplugs = <&spi2>; + }; + }; + + led { + status-green { + attr-spec = <0x20 0xf0>; + }; + status-red { + attr-spec = <0x20 0xf0>; + }; + }; + + reset { + sys_power_cycle { + attr-spec = <0x30 0xfb>; + }; + }; + + cause { + ac_power_cycle { + attr-spec = <0x1d 0xfe>; + }; + sys_pwr_cycle: { + attr-spec = <0x1e 0xfb>; + }; + }; + + gpro { + cpld_mng_version { + attr-spec <0x00 0xff 0xff>; + }; + }; + + gprw { + sw_reset_cause { + attr-spec = <0x37 0x0f 0x0f>; + }; + }; + };