From patchwork Mon Jan 26 10:13:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 5707771 Return-Path: X-Original-To: patchwork-linux-arm-msm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 7E19FC058D for ; Mon, 26 Jan 2015 10:13:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BB84B200D4 for ; Mon, 26 Jan 2015 10:13:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 30D6220145 for ; Mon, 26 Jan 2015 10:13:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752202AbbAZKNc (ORCPT ); Mon, 26 Jan 2015 05:13:32 -0500 Received: from mail-we0-f175.google.com ([74.125.82.175]:41833 "EHLO mail-we0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753757AbbAZKNZ (ORCPT ); Mon, 26 Jan 2015 05:13:25 -0500 Received: by mail-we0-f175.google.com with SMTP id p10so8122503wes.6 for ; Mon, 26 Jan 2015 02:13:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XQjw7FWwVeICb2C8l/uy6rmWeHjglFS5SrbuhONuO6Q=; b=L0cmopVrygibVseETPXWO6/3nDLiyjH/pccNkiHiB6VFPR73FtA7bwsyYtBd3Ht4Lm Ofk79jCvmLM65o4hgYL3Em4lngpqBCc4U7n0G7wbCChPQse0sXVD9ezFE2151nCIjM6s 04GYt516BMJIbvjdQB47A3xh+hShzH0rS1WYKBIQ2+q+MowGBjgFI+DWaecr8U9ytuVX tUbjDm/Kb+oXtf0lefNPJ5GJWvmzWAmEDMgLkTLKudOETqx6vkwD7wPdW7qksbtipDTG ZDL6yR4KG0MK0zeW4WZ3N6Hjtkg6gQ7aZAtiVHPsVbVPMBF9MgtRkBT6wo80Jps3H2mM SMWg== X-Gm-Message-State: ALoCoQlcdrZEmkWxMSIQwSrL6XdcHPhZhw2mYCb6SqaWripajfv3sWQd2zxUZIsQk8IdxeKERrV3 X-Received: by 10.180.109.79 with SMTP id hq15mr4220053wib.47.1422267203789; Mon, 26 Jan 2015 02:13:23 -0800 (PST) Received: from srini-ThinkPad-X1-Carbon-2nd.dlink.com (host-2-98-216-248.as13285.net. [2.98.216.248]) by mx.google.com with ESMTPSA id bj3sm13279148wib.3.2015.01.26.02.13.21 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 26 Jan 2015 02:13:23 -0800 (PST) From: Srinivas Kandagatla To: linux-arm-msm@vger.kernel.org Cc: patches@linaro.org, linaro-kernel@lists.linaro.org, Srinivas Kandagatla Subject: [RFC PATCH 1/2] WIP: mfd: syscon: Add register stride to DT bindings. Date: Mon, 26 Jan 2015 10:13:13 +0000 Message-Id: <1422267193-6145-1-git-send-email-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1422267151-6034-1-git-send-email-srinivas.kandagatla@linaro.org> References: <1422267151-6034-1-git-send-email-srinivas.kandagatla@linaro.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds register stride to dt bindings so that the consumers of the syscon could change it to there need. One of the the use case for this feature is Qualcomm qfprom which needs a byte access to regmap returned from syscon. Signed-off-by: Srinivas Kandagatla --- Documentation/devicetree/bindings/mfd/syscon.txt | 3 +++ drivers/mfd/syscon.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/syscon.txt b/Documentation/devicetree/bindings/mfd/syscon.txt index fe8150b..7f06ec1 100644 --- a/Documentation/devicetree/bindings/mfd/syscon.txt +++ b/Documentation/devicetree/bindings/mfd/syscon.txt @@ -13,6 +13,9 @@ Required properties: - compatible: Should contain "syscon". - reg: the register region can be accessed from syscon +Optional properties: +- stride : register address stride in bytes. + Examples: gpr: iomuxc-gpr@020e0000 { compatible = "fsl,imx6q-iomuxc-gpr", "syscon"; diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index 176bf0f..98769d5 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -48,6 +48,7 @@ static struct syscon *of_syscon_register(struct device_node *np) struct regmap *regmap; void __iomem *base; int ret; + u32 stride; struct regmap_config syscon_config = syscon_regmap_config; if (!of_device_is_compatible(np, "syscon")) @@ -69,6 +70,14 @@ static struct syscon *of_syscon_register(struct device_node *np) else if (of_property_read_bool(np, "little-endian")) syscon_config.val_format_endian = REGMAP_ENDIAN_LITTLE; + if (!of_property_read_u32(np, "stride", &stride)) { + if (stride > 4) + stride = 4; + + syscon_config.reg_stride = stride; + syscon_config.val_bits = 8 * stride; + } + regmap = regmap_init_mmio(NULL, base, &syscon_config); if (IS_ERR(regmap)) { pr_err("regmap init failed\n");