From patchwork Wed Jun 14 16:29:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Elwell X-Patchwork-Id: 9786911 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 222F6602D9 for ; Wed, 14 Jun 2017 16:31:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 121CD285AE for ; Wed, 14 Jun 2017 16:31:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 05A5E285F3; Wed, 14 Jun 2017 16:31:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6CEE6285AE for ; Wed, 14 Jun 2017 16:31:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752637AbdFNQbD (ORCPT ); Wed, 14 Jun 2017 12:31:03 -0400 Received: from mx08-00252a01.pphosted.com ([91.207.212.211]:57460 "EHLO mx08-00252a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751980AbdFNQ3i (ORCPT ); Wed, 14 Jun 2017 12:29:38 -0400 Received: from pps.filterd (m0102629.ppops.net [127.0.0.1]) by mx08-00252a01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v5EGTVmH018262 for ; Wed, 14 Jun 2017 17:29:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pp; bh=/+QaT40GLQx5eDYp3Lpije0zzuhjdqGM0dRZzJJl/40=; b=mAUJEk7xbBYx1GnTjZap5hQkF1B7ZgJKrGJW+tci+aLI+T/aHboj3OV+AqF+xt9sxYnU rDlwqU89vgOtxrqFVfBymEotnm59pCNX1xDVr45Z4fTvLtwSApT2vmBwzTLnZUQjeybj abcbO4VY4ePZvbg/f3fwWTh2KIrkypV6dHAMHfbRfsCypNf5CENqEP1oljs+JR+Ebol4 S0yFfN3IRP+vByvNm9e7YFBy1LNpu6W2r5t5ycejYb+d1z3r9NaJGJOZyQEBul9hs/Np DS2OSEMQRh0Cu2FeTKmmBmu+D8mahdKVxFaGmpNSTtSrxkOEGQ7yqHXPhO4mJvI4CK67 XQ== Received: from mail-wr0-f198.google.com (mail-wr0-f198.google.com [209.85.128.198]) by mx08-00252a01.pphosted.com with ESMTP id 2b058et7f2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK) for ; Wed, 14 Jun 2017 17:29:36 +0100 Received: by mail-wr0-f198.google.com with SMTP id w91so1535556wrb.13 for ; Wed, 14 Jun 2017 09:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/+QaT40GLQx5eDYp3Lpije0zzuhjdqGM0dRZzJJl/40=; b=kegJpORCYHt8UI+7M/gqDDvk75meN72F1je5D9tWdI9U8Yw/pXa5nxmMZaYDhz53x3 GDKcW9P0dJNmylbF915CYRONegGz+NmqV96OUQHTE2trTd2aucucPzam72rAKtu9ZHLg 7ZLpfRqCecQsX8WE4ZTlCardKmaneMYOCangW5a0CtBCVnQvKb4LnvG5IAl1Kynr1A6K MX3gE3nE+IuYTo351UvbgfccDE013gHT2bMZRsHc+45APs3UkPEukoIJOAsdQNv/J/MX 9dGHfaT9rL8HBqUVWL0gjdvDwRMB0LO6r5EeVpjeBjFpD4q3xADA8QrPtSkslFBiBoVf i0Mg== 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:in-reply-to :references; bh=/+QaT40GLQx5eDYp3Lpije0zzuhjdqGM0dRZzJJl/40=; b=YWJejCczvzrJpX/qk7XGDGRQO77wT7IrdgIyW6FAOMVJRILq3u5+ZWuoypnXnaJJtj QVsmFxmiWaJrgSVfsi/Pir6igYZHiO89Gfs0cKhPv2bs58cGjx2mIMHOFQ59+A9t/tr4 ilYwy6id+XSdq0yRmb01pQO26X/PPEXr6U214+zFqOUn0PSHRdMeuUZIEJBugJiL/M1d sNiwZ7yQzLiuWd5vh/rA7PGTLeq7fkMfXyRoZuP13Ys8joCkNv/EMVX8qEEy2br4tV6m icDFJ8H/Mv86sWLb+XKEMGx2Ec6dvKWeFrhIOZjtPmaDr3ZouMLu2dVxWnJFFzCc0b/b Xg1A== X-Gm-Message-State: AKS2vOxjqDXGo9fHoK9euqpghsSTK/WobtHhHr/9rAsNqHyzPF+akgc0 uxXJWU+UeaVN5pP03XTkX0LhsTSIQceZYv6sgBFGOMhOyuAtdhVnMohkI3cdKY92yeoi80YrH91 Kaq5PMtIlj6c= X-Received: by 10.28.209.72 with SMTP id i69mr623512wmg.30.1497457775241; Wed, 14 Jun 2017 09:29:35 -0700 (PDT) X-Received: by 10.28.209.72 with SMTP id i69mr623500wmg.30.1497457775062; Wed, 14 Jun 2017 09:29:35 -0700 (PDT) Received: from buildbot.pitowers.org ([217.33.127.173]) by smtp.gmail.com with ESMTPSA id e24sm545129wre.54.2017.06.14.09.29.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Jun 2017 09:29:33 -0700 (PDT) From: Phil Elwell To: Thomas Gleixner , Jason Cooper , Marc Zyngier , Rob Herring , Mark Rutland , Florian Fainelli , Stefan Wahren , Eric Anholt , Russell King , Michael Turquette , Stephen Boyd , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-clk@vger.kernel.org Cc: Phil Elwell Subject: [PATCH v3 1/4] clk: bcm2835: More flexible IO register remapping Date: Wed, 14 Jun 2017 17:29:07 +0100 Message-Id: <1497457750-35585-2-git-send-email-phil@raspberrypi.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1497457750-35585-1-git-send-email-phil@raspberrypi.org> References: <4ceb6c92-f752-180e-6a6e-a94dcd120737@raspberrypi.org> <1497457750-35585-1-git-send-email-phil@raspberrypi.org> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-14_03:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1706140277 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The BCM2835 AUX block contains two registers - AUXIRQ and AUXENB. The addition of an irqchip driver using AUXIRQ is hampered by the current DT node reserving both registers with a compatible string claimed by this bcm2835-aux-clk driver. Ease the transition to separate DT nodes by detecting and handling the case where this driver's MEM resource has been reduced to include only the AUXENB register. Otherwise, use devm_ioremap to remap the region without reserving it. Signed-off-by: Phil Elwell --- drivers/clk/bcm/clk-bcm2835-aux.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/clk/bcm/clk-bcm2835-aux.c b/drivers/clk/bcm/clk-bcm2835-aux.c index bd750cf..7b99395 100644 --- a/drivers/clk/bcm/clk-bcm2835-aux.c +++ b/drivers/clk/bcm/clk-bcm2835-aux.c @@ -37,9 +37,29 @@ static int bcm2835_aux_clk_probe(struct platform_device *pdev) parent = __clk_get_name(parent_clk); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - reg = devm_ioremap_resource(dev, res); - if (IS_ERR(reg)) - return PTR_ERR(reg); + + /* + * If the MEM resource is only 4 bytes long it covers just the + * AUXENB register, otherwise it is the entire AUX block. + * + * If remapping the entire block, use devm_ioremap rather than + * devm_ioremap_resource to avoid requesting the mem_region. + * + * N.B. This if/else can be replaced with the if body once the + * new DT bindings are in use. + */ + if (resource_size(res) == 4) { + reg = devm_ioremap_resource(dev, res); + if (IS_ERR(reg)) + return PTR_ERR(reg); + gate = reg; + } else { + reg = devm_ioremap(dev, res->start, resource_size(res)); + if (IS_ERR(reg)) + return PTR_ERR(reg); + gate = reg + BCM2835_AUXENB; + } + onecell = devm_kmalloc(dev, sizeof(*onecell) + sizeof(*onecell->hws) * BCM2835_AUX_CLOCK_COUNT, GFP_KERNEL); @@ -47,7 +67,6 @@ static int bcm2835_aux_clk_probe(struct platform_device *pdev) return -ENOMEM; onecell->num = BCM2835_AUX_CLOCK_COUNT; - gate = reg + BCM2835_AUXENB; onecell->hws[BCM2835_AUX_CLOCK_UART] = clk_hw_register_gate(dev, "aux_uart", parent, 0, gate, 0, 0, NULL);