From patchwork Fri Aug 12 17:31:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 12942416 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3080CC3F6B0 for ; Fri, 12 Aug 2022 17:32:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=JRCM95/tNH+uTKJ8LRsaCEzDlKfRlmcLScheJxqOcoY=; b=aLlA/zGVr7Y/cy L50BGaaDaejoc6XBpkm0faaKTRwDFinMw3BdZuY8/hMyeuciiFN9UFKX9Cwws7t7KyU1aQ68A4/JD 1DYSKJp9qxr0PxpdZllfQRIDDTivhSTl/yN6fKraMuwks0yJYZTHCPq9+/JdljZCve1Kq8aANXNQU qBorkAYIwetB09rUXwJkimqvzNo6txO2HhLUSB5PqKk3pgjAS14JmEhvp/GduCB1vkceYZHnfxFcw 2nPO7+vzWy7t+u7iE/pOUHKrBzl2yc9HNIFOEiebqnIWp/3+KTvpAdHdz8oZdq+CWWAnx1uZUun6T MMCk4rd/OP1dFdp9tFaw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oMYVV-00BXcK-HV; Fri, 12 Aug 2022 17:31:37 +0000 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oMYVR-00BXZc-Sb for linux-arm-kernel@lists.infradead.org; Fri, 12 Aug 2022 17:31:35 +0000 Received: by mail-qt1-x833.google.com with SMTP id c20so1268159qtw.8 for ; Fri, 12 Aug 2022 10:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc; bh=oaUCbnaOaO/kjQKPb1GH5mFqVp7+u4EfhIP4oZeH2rc=; b=B0rNvBv6hqNrcuknu/vCYkIKosD0gYESAPCt88QuIfjZA+18svJX19VTMvOoxsW73U NROpiFTH+uCXZyFCY8gDvz0w9oBvsaSrSeSdfFQhmdfI6j0F8UqLn2ebqFE0HPyq2+Up dl3KD6xf3AYcecK1U6lBv5zzNAdToOTbdLGDnquE4rakysKmQbUzWUuYBpyYs7hHrVJy UEX+dcX2VcZd4DEqv6Kx6uC7axX4n1U61gnqNl6l2ekP6E/rYowW3fX+JIfxGYd2a+kO bfLdzS1nofFHUXJMQ4V0Cf+yspmM5FwHRvpNg2Er+kkkpzkj0Ekj3Kv2lMH8Nb+Z0W0h BK+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc; bh=oaUCbnaOaO/kjQKPb1GH5mFqVp7+u4EfhIP4oZeH2rc=; b=eALpT5M/vDmHBy+qXC45X3Qn054/Lk11huFv4DoDINkGhcYVbDqH8nB04mjVj7LVAr 9NMxOgT7ye5YsUlKjF4v5CDFgDImVVRO4gPF2NS9VPvDGZxEQrRvsBktoABfZx26smc7 wdEE/nz/628PTVRhDvhgYHXIQrv565BjdqlD2HBcmW//wJWagTljAdQcabpv0ElkhyxJ C0ZSJyI4CPf2mvptFzyeQ983L1nG2a7snib/dZ+5icTAxHREk1Qgf0DAMyj4j9gNZ5Ag Ff7hqyh+0tA7OXUlWjCSQZNisMlSQiG5MlSlTsLvz+/CHd7OuOL5E2A+yWK91kN/YGOO zP6A== X-Gm-Message-State: ACgBeo0wmuSRt7hJE60ChKzf/vmOcMvWUzunVE/0l5e3eDO6fVrz2fsV gtcWAHj3KVvcb3zmr4HYl9s= X-Google-Smtp-Source: AA6agR7a7RItEv6RiqJofk5V9VwUYBiQCFeU6ZbqJ9yF7/cvZy1OCN6eGtx51fFO07l7SpWaP4c3iA== X-Received: by 2002:ac8:7fd5:0:b0:31e:f229:2bad with SMTP id b21-20020ac87fd5000000b0031ef2292badmr4451404qtk.528.1660325491703; Fri, 12 Aug 2022 10:31:31 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id t201-20020a37aad2000000b006b9b7879964sm2369300qke.28.2022.08.12.10.31.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Aug 2022 10:31:31 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Cc: Florian Fainelli , Broadcom internal kernel review list , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE), devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS) Subject: [PATCH v4 0/3] Add Broadcom STB memory controller driver Date: Fri, 12 Aug 2022 10:31:22 -0700 Message-Id: <20220812173125.2410536-1-f.fainelli@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220812_103133_944427_4DC5C139 X-CRM114-Status: GOOD ( 14.75 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Krzysztof, This small patch series adds basic support for controlling self-refresh power down on Broadcom STB memory controllers. We might be able to contribute more features to the memory controller driver in the future like accurate reporting of the memory type, timings, and possibly some performance counters. Changes in v4: - drop unnecessary owner assignment for the platform_driver - use pm_ptr() as directed Changes in v3: - made 'frequency' property optional to avoid introducing warnings for existing BMIPS and BCM7445 DTS files - updated sysfs document to use a shorter and universal path Changes in v2: - merged the v1 first two patches - added a sysfs document describing attributes exposed - addressed feedback from Krzysztof regarding style and API usage Florian Fainelli (3): dt-bindings: memory-controller: Document Broadcom STB MEMC Documentation: sysfs: Document Broadcom STB memc sysfs knobs memory: Add Broadcom STB memory controller driver .../ABI/testing/sysfs-platform-brcmstb-memc | 15 + .../bindings/arm/bcm/brcm,brcmstb.txt | 11 +- .../brcm,brcmstb-memc-ddr.yaml | 52 +++ drivers/memory/Kconfig | 9 + drivers/memory/Makefile | 1 + drivers/memory/brcmstb_memc.c | 301 ++++++++++++++++++ 6 files changed, 380 insertions(+), 9 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-platform-brcmstb-memc create mode 100644 Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml create mode 100644 drivers/memory/brcmstb_memc.c