From patchwork Thu Sep 17 10:07:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 11782145 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CA0AC59D for ; Thu, 17 Sep 2020 10:12:12 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9AA88206A2 for ; Thu, 17 Sep 2020 10:12:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qTck3Vlk"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bnoEaymz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AA88206A2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=fLSQUmb6jvLPTj/l/5DpUqDh0IhXgjVeOfhX0yjRThY=; b=qTck3VlkcO0ao7KFvcSl/UP66 qKnVtnEBZx1whpkMsk3AKQjoHwNClm7XBSVx+42DTSqT5ltzydcCq7wUMfC78ocm6Nri6etdVnFTZ +J6Qj8Xhx3r2ctw7SVpyqtD8QrcEBWCgTibVJMfmbYOFzQSaWeUQ7cvG14jwnfS4CEu9xhJe31a9h wc0oYGekmCGXPfKVW8QjOWr+RNiqqZ9jeMxVPrsf+yVlJ0673kGMPUk/8t102pmey8RuwZGToVH7l pz9ATzKd/UYDgWAMej4xLyC+rt0W7+YJ0ugmujtjfklh3zEnuPL3L5Lvj3EaF3nqQBZm5ZkTlTUYk tAjZ6EMOg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIqrm-0000o2-17; Thu, 17 Sep 2020 10:10:14 +0000 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIqq7-0008QJ-5D for linux-arm-kernel@lists.infradead.org; Thu, 17 Sep 2020 10:08:32 +0000 Received: by mail-wm1-x341.google.com with SMTP id a9so1436827wmm.2 for ; Thu, 17 Sep 2020 03:08:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4vsTqHDRezfzd8SF1y8hAmLtXdBEdab2904l3pZe9lw=; b=bnoEaymzFihtmsp+uKBU0Z3FhsHQEoFMUiV6DwaJB9YZu1BYNv8Og77NXMY2w/gd1L zbkYagF+6Cc7ZFz4IrOv7uH6joZO5fECK7zx4NCssjbaREmYfa3jTCIK8hgsOCdZzFHa KdgJjzrRvOMhaiFm6qNXp0EZ0TRmZtNDHNT+u5P53SoGV5lUZPv8rNw6P643BCK6Xqah xZuQE6s0ct+Eh0tKIotdgdKgV4t+GPZUCh8oLsloN7yVAoL5mFUh6Dq8zqtbEN4f4nzt mGiNPqGoTQ8A/TjPlTi1AwwDBZxScZwl/r+ourU/MVUvIeXX5iSfItTR31u4Lfgurbtn omcA== 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:mime-version:content-transfer-encoding; bh=4vsTqHDRezfzd8SF1y8hAmLtXdBEdab2904l3pZe9lw=; b=Cb8+6tBcr6GCFXEqWN9w4xYrS5bjtGJtrbZgTZaMlB3EQJ5PPIc74d9FPc5BXg6A5s KRondhLwd8M6Gex8Owmx1iYgJM61egPV50oHcgY2B6CFngGrmoS1j1QmPl+RU0dyUAyp IVZbGZoq4DHug9StAPciIyLh7x41aryC1hmmFOwLXohxrjn6RKmQFRipacrzjwYM1Cl7 EwTEmmmsIUYrPvPWKvsoXcRhBmieimOvUcwvqaTV8mIhkC/Rc2GksILWfOjPGGLhqp/v 1P3gunkY+uzqg6R7xAIVKusgqhcOupzVMt05KJ18FwOfDuDUlooGIWHjD1kD+/nTzpSB Z6/w== X-Gm-Message-State: AOAM531KQPrWhq8QUmBtTFzHeW8So2fRUpSS8XIGN/GgVMrQheul9ibn AULsmD/dWZWuJn9ukzy1QyI= X-Google-Smtp-Source: ABdhPJyYJyqb8oOcqVpklD5SRqFrZG/iWKXym1Vl1fBtJG2U2u9AqM9X/ta3TiKssGcK34kTIB24SQ== X-Received: by 2002:a1c:6487:: with SMTP id y129mr9673845wmb.90.1600337310097; Thu, 17 Sep 2020 03:08:30 -0700 (PDT) Received: from localhost ([217.111.27.204]) by smtp.gmail.com with ESMTPSA id t22sm12342777wmt.1.2020.09.17.03.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Sep 2020 03:08:29 -0700 (PDT) From: Thierry Reding To: Thierry Reding Subject: [PATCH v2 12/14] soc/tegra: pmc: Add Tegra234 support Date: Thu, 17 Sep 2020 12:07:50 +0200 Message-Id: <20200917100752.3516153-13-thierry.reding@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200917100752.3516153-1-thierry.reding@gmail.com> References: <20200917100752.3516153-1-thierry.reding@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200917_060831_266637_23D15DA6 X-CRM114-Status: GOOD ( 13.30 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:341 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [thierry.reding[at]gmail.com] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Jon Hunter Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Thierry Reding The PMC block is largely similar to that found on earlier chips, but not completely compatible. Allow binding to the instantiation found on Tegra234. Signed-off-by: Thierry Reding --- drivers/soc/tegra/pmc.c | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c index 4071181a4a42..622496df6282 100644 --- a/drivers/soc/tegra/pmc.c +++ b/drivers/soc/tegra/pmc.c @@ -3362,6 +3362,73 @@ static const struct tegra_pmc_soc tegra194_pmc_soc = { .has_blink_output = false, }; +static const struct tegra_pmc_regs tegra234_pmc_regs = { + .scratch0 = 0x2000, + .dpd_req = 0, + .dpd_status = 0, + .dpd2_req = 0, + .dpd2_status = 0, + .rst_status = 0x70, + .rst_source_shift = 0x2, + .rst_source_mask = 0xfc, + .rst_level_shift = 0x0, + .rst_level_mask = 0x3, +}; + +static const char * const tegra234_reset_sources[] = { + "SYS_RESET_N", + "AOWDT", + "BCCPLEXWDT", + "BPMPWDT", + "SCEWDT", + "SPEWDT", + "APEWDT", + "LCCPLEXWDT", + "SENSOR", + "AOTAG", + "VFSENSOR", + "MAINSWRST", + "SC7", + "HSM", + "CSITE", + "RCEWDT", + "PVA0WDT", + "PVA1WDT", + "L1A_ASYNC", + "BPMPBOOT", + "FUSECRC", +}; + +static const struct tegra_pmc_soc tegra234_pmc_soc = { + .num_powergates = 0, + .powergates = NULL, + .num_cpu_powergates = 0, + .cpu_powergates = NULL, + .has_tsense_reset = false, + .has_gpu_clamps = false, + .needs_mbist_war = false, + .has_impl_33v_pwr = true, + .maybe_tz_only = false, + .num_io_pads = 0, + .io_pads = NULL, + .num_pin_descs = 0, + .pin_descs = NULL, + .regs = &tegra234_pmc_regs, + .init = NULL, + .setup_irq_polarity = tegra186_pmc_setup_irq_polarity, + .irq_set_wake = tegra186_pmc_irq_set_wake, + .irq_set_type = tegra186_pmc_irq_set_type, + .reset_sources = tegra194_reset_sources, + .num_reset_sources = ARRAY_SIZE(tegra194_reset_sources), + .reset_levels = tegra186_reset_levels, + .num_reset_levels = ARRAY_SIZE(tegra186_reset_levels), + .num_wake_events = 0, + .wake_events = NULL, + .pmc_clks_data = NULL, + .num_pmc_clks = 0, + .has_blink_output = false, +}; + static const struct of_device_id tegra_pmc_match[] = { { .compatible = "nvidia,tegra194-pmc", .data = &tegra194_pmc_soc }, { .compatible = "nvidia,tegra186-pmc", .data = &tegra186_pmc_soc },