Received: by 10.223.164.202 with SMTP id h10csp3463474wrb; Sun, 19 Nov 2017 22:55:45 -0800 (PST) X-Google-Smtp-Source: AGs4zMYRLjr7gymte2M8VufsUUtsqQfWFDg2edtSTrOpdfSST4IkrPEzDX4V1jF1K1buBtq8Rby4 X-Received: by 10.99.103.70 with SMTP id b67mr12624714pgc.211.1511160945554; Sun, 19 Nov 2017 22:55:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511160945; cv=none; d=google.com; s=arc-20160816; b=MunaBuRrdOnUHjCJQjmxq7A2Q04e7AgsjMgGGOt6Aj/aeJ28HCqIMXU+TE4g/wXCX4 GgndJPEfeZeoSibiTu9nS6tBGbfI6jktqy8KetlS76e3hY4c4cZ6N9PdGEl4SWGZcYUG 0m0skJPMxSmNUEVKUloRDnxl0tUbK2dSsslA0PdMWd1sjOd55XUYKgGvhx3EC9ITk5e6 s6Th+uHjZwe2hyeiG/8DFHtBLVAMXrSabCf64FubB4vT8AegT7q1ogQpgZnR0cDUzyAx l46MvBfzTw6R4s14pZapdsGD5oE7S60ao1naj+OFMHiMh55rwiTDA7yp/bH1tecCCFlv jvWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=PSukzoaVV9+asev7uHyeVitW9LAnLf9aXd+4537IeSI=; b=xgW2cL6I7tZmygY1BVzSo9oNnRjh3CtlBI3bvfDwq5XqPUvC1M8sdrj2+mCF9kckjK tP8aoqocmJ38le9n3Sm4uLzcI9Rf19eRUiOhIbD6QBKHd9t2ZUOrKORAiA+pmW+hg9+d 9hZca8JlT7AOOfIadC1mYHKDRQ1KYK0iNecZqf68gJLhuttqg/Q0etRSk33nW2xt7Z4u 8p39+k5U3WMrm7tP7XaZjeshNBSm7KcB/RV1lR0i7FIgNWkWY2tlmtQFCrDEEKw4yRRv EXYdWJBihIJYAtSeXIaoDg/FtoluJpbSRNMyq0i1OC0WHCjzXqWAjXzDYzDMIKEXsnCY v2Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZgVXUmDf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a11si897120pgu.777.2017.11.19.22.55.35; Sun, 19 Nov 2017 22:55:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZgVXUmDf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751078AbdKTGy5 (ORCPT + 68 others); Mon, 20 Nov 2017 01:54:57 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:46726 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751015AbdKTGyz (ORCPT ); Mon, 20 Nov 2017 01:54:55 -0500 Received: by mail-pf0-f194.google.com with SMTP id q4so6597385pfg.13 for ; Sun, 19 Nov 2017 22:54:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=PSukzoaVV9+asev7uHyeVitW9LAnLf9aXd+4537IeSI=; b=ZgVXUmDf262W6L52fzUtzE9Qf2J3BpZNxDT77mQAv0YY+w3JEYCBGupWC/NfPdwTJg WK5oYrRJRBZi79KD2mUBW+E3PMdPE45D1pFspSFA8Ph+TsCiyeicuV+Mxi1fIbEsDK2u svS+4gNncX8mtbqKAHQf+fPiwFTZjlHuvvwtU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=PSukzoaVV9+asev7uHyeVitW9LAnLf9aXd+4537IeSI=; b=M+7lcvp42g/HLA6hW+zJwQG74hiH/9KYSZ2iVtb+B3FYXkVdAZ3HFQXDL9/xfFplcM U28VHz3WmbQL4Sx6r7euotGSFZsNa4yRbtYrJksiGRSNmVMiD7TGkWET5Nj0g2fNXkh6 vXmJrtuZZ0dsGpKzl15E8bqZZLYgWThV9r6P9yi/efA1o/UXOUE0hRIJA+8AZTHtudrB XeSnySUIlk/9p6k4SM2Zpx3dlV6+KH19QU9STnAS/4R15X96EWWjnOgpv7ChggroKhKV fTd493T5yY9mqSSQE9N/VrX1/snjFudqoDltAbFMAyxWegD5RKUXbkLJKxil67Oi1rsc jJkA== X-Gm-Message-State: AJaThX7mSFqMXDLwqLwxl3nD9XFIjO/5CyN1uMRvJX8N7Cma4p/saykQ 7WL/6T7ECWiVyc/VmPoA+oUxDA== X-Received: by 10.101.86.133 with SMTP id v5mr12364371pgs.266.1511160895103; Sun, 19 Nov 2017 22:54:55 -0800 (PST) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.82]) by smtp.gmail.com with ESMTPSA id r13sm17941031pfl.157.2017.11.19.22.54.51 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 19 Nov 2017 22:54:54 -0800 (PST) From: Baolin Wang To: lee.jones@linaro.org, arnd@arndb.de, robh+dt@kernel.org, mark.rutland@arm.com Cc: broonie@kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH v3] mfd: syscon: Add hardware spinlock support Date: Mon, 20 Nov 2017 14:54:16 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some system control registers need hardware spinlock to synchronize between the multiple subsystems, so we should add hardware spinlock support for syscon. Signed-off-by: Baolin Wang Acked-by: Rob Herring --- Changes since v2: - Add acked tag from Rob. Changes since v1: - Remove timeout configuration. - Modify the binding file to add hwlocks. Note: The hwspinlock support in regmap was merged by commit: (8698b9364710: "regmap: Add hardware spinlock support") The hwspinlock was changed to a bool by commit: (d048236dfdfe: "hwspinlock: Change hwspinlock to a bool") --- Documentation/devicetree/bindings/mfd/syscon.txt | 1 + drivers/mfd/syscon.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/syscon.txt b/Documentation/devicetree/bindings/mfd/syscon.txt index 8b92d45..f464cc8 100644 --- a/Documentation/devicetree/bindings/mfd/syscon.txt +++ b/Documentation/devicetree/bindings/mfd/syscon.txt @@ -16,6 +16,7 @@ Required properties: Optional property: - reg-io-width: the size (in bytes) of the IO accesses that should be performed on the device. +- hwlocks: reference to a phandle of a hardware spinlock provider node. Examples: gpr: iomuxc-gpr@20e0000 { diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c index b93fe4c..f1dccce 100644 --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include @@ -87,6 +88,12 @@ static struct syscon *of_syscon_register(struct device_node *np) if (ret) reg_io_width = 4; + ret = of_hwspin_lock_get_id(np, 0); + if (ret > 0) { + syscon_config.hwlock_id = ret; + syscon_config.hwlock_mode = HWLOCK_IRQSTATE; + } + syscon_config.reg_stride = reg_io_width; syscon_config.val_bits = reg_io_width * 8; syscon_config.max_register = resource_size(&res) - reg_io_width; -- 1.9.1 From 1585528567293052938@xxx Thu Nov 30 21:37:52 +0000 2017 X-GM-THRID: 1585423267638330706 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread