Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp4522269ybl; Mon, 9 Dec 2019 12:13:29 -0800 (PST) X-Google-Smtp-Source: APXvYqyaMp4USfVANYpUwhqnyez//Cgzm+qHVrnZ8lv9U1ih5oDED2iexAlIiqFsGSZrv/8e0qPx X-Received: by 2002:aca:4a08:: with SMTP id x8mr817925oia.39.1575922409812; Mon, 09 Dec 2019 12:13:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575922409; cv=none; d=google.com; s=arc-20160816; b=VUWaCEqxf+820s/MP6FgQokGO6w5jBLXRgx0HpWri0R7ArT5OmXyrUHnxVjVOdM3Eg RUmKA7vrpaUyId808iLGlFeLSR48rKmPJL5BK/OBvYeYd/SN2z43ZJijW0W6axod2/UI y1+ECuBmHH0G8wv33O0p7O3edHA2Xrpnaq6MmgYWOzIIOsuplEv1cVsnvVtI/lZsLPpG 7+uCzGZLkPdDitLX9eF9xZlgfnUGIDpX/+C1re6gawDYvXcDdPUXt5aFIPeccndzYU58 W5Pj7A+koF3a3VAXh5TjrAn8L4JRI5Xi4MstURlYTMUKutYIsQGHORj8l5nCkOYXHhDr CAEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=toXARQVeazduKdMBcjZ4AH+zKbnIDWRz3fBlo89SsY8=; b=Aql7XdnNcg4ZEIJNsrpwq6/AqMb5jWwhV8x0d2P15ZXk+vHIOtsPcK4WE1KDkE27uH ghuxYDhOy1FgVnCgjG95KrAeYz5mW4woR0T5si6BGHBgbkS9Lbai4t7Wx1wdHUaWnE3z 0ZgXf+NcMcw9SiZCxfSd5DW14+ffZrBbh3QCrEAOJ2o2lI1W1ZhhMVmIPhl7pDXslVqL /G0yoGCwn5IzZrIna6vphJonST0LSWsloHsKOqemQB/YGYWHce8s2+x4rWWV93Qnz1Kw 1DwXBZIlWjyPOsJoRDpu3wc7mI8+ibrMwtBIqWOHM9rTH+0cIMf5CJBu4NN6EGrxIB6x Ic6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=oyNHS4Vl; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u9si544559otg.90.2019.12.09.12.13.17; Mon, 09 Dec 2019 12:13:29 -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=@gmail.com header.s=20161025 header.b=oyNHS4Vl; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726831AbfLIUMp (ORCPT + 99 others); Mon, 9 Dec 2019 15:12:45 -0500 Received: from mail-lj1-f196.google.com ([209.85.208.196]:42632 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726608AbfLIUMk (ORCPT ); Mon, 9 Dec 2019 15:12:40 -0500 Received: by mail-lj1-f196.google.com with SMTP id e28so17114331ljo.9; Mon, 09 Dec 2019 12:12:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=toXARQVeazduKdMBcjZ4AH+zKbnIDWRz3fBlo89SsY8=; b=oyNHS4VlNQIeO8uN4MTz5mnnSbKmtqbZwyZ5dC7UpkgqBEwuGlmOIN0+RPkkDpEMOa vCZXz7sr6AVN0zyHTNBcclHbuWsYc+4eO5xAzAjB7nTQhnuaqs6H0E95/9FyprYS6Nxh 3OghsnDtsPF72u6J9DOE11wxG0welgCE3mwMUMQ92BAWyHTsOzblUWF+kON4av1oX12Q hOMQyJbCrvt01M4XYMXodNBql795RbFgyYevszJWpwRaNVe4cqSgfpvlCPZUekti4onD K/cYJA/cZnHYMIxm7WENW7bOSBDY956QC5jk6f0MHTqVhPl5cJAAmU+rKjlIUgVhgB76 HMSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=toXARQVeazduKdMBcjZ4AH+zKbnIDWRz3fBlo89SsY8=; b=ZXu/BU3rQ3FnotN/tqn0Piz0ErURHYpckMbqYb0BF8rpyQ5PyPrJklmRdCKr0bJBXN vJGZlruNCAuz+99Swv8Cv7HCKe+YDbAfa3OD7Awfosgf2ndxSPNRdapBWtH9CdwSwfoE jH9fYH235lm0n1raQ57CHwSFhSaV9ic3i1DljsV7loW2Px1t730eNXw5U0SmbCS1c02Y up05PH0xady7l77E2lOeqX5Z8EmukEuC99v88tPsHhioGNdTDqOsotNXzuxo4jqTgoQ6 1NaT0khAuNFXnvtadZWr2I7Yoxztm3qTh/WhwiSUVisoE9jvP4a37FN76OTJfFExj7dN b6Gw== X-Gm-Message-State: APjAAAVeO0IL2zOLTfOg0BgMzQ0FpxJyDrJnJO9yzxpZcfoZS1pOqyAj A8uEoLBiuCZysGSKgvCde/U= X-Received: by 2002:a2e:9741:: with SMTP id f1mr17084867ljj.123.1575922357865; Mon, 09 Dec 2019 12:12:37 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id k25sm453452lji.42.2019.12.09.12.12.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Dec 2019 12:12:36 -0800 (PST) Subject: Re: [PATCH v3 03/15] soc: tegra: Add Tegra PMC clock registrations into PMC driver To: Sowjanya Komatineni , thierry.reding@gmail.com, jonathanh@nvidia.com, mperttunen@nvidia.com, gregkh@linuxfoundation.org, sboyd@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, mark.rutland@arm.com Cc: allison@lohutok.net, pdeschrijver@nvidia.com, pgaikwad@nvidia.com, mturquette@baylibre.com, horms+renesas@verge.net.au, Jisheng.Zhang@synaptics.com, krzk@kernel.org, arnd@arndb.de, spujar@nvidia.com, josephl@nvidia.com, vidyas@nvidia.com, daniel.lezcano@linaro.org, mmaddireddy@nvidia.com, markz@nvidia.com, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, alexios.zavras@intel.com, alsa-devel@alsa-project.org References: <1575600535-26877-1-git-send-email-skomatineni@nvidia.com> <1575600535-26877-4-git-send-email-skomatineni@nvidia.com> <7cf4ff77-2f33-4ee5-0e09-5aa6aef3e8be@gmail.com> <288a1701-def6-d628-26bc-a305f817bdb1@gmail.com> <78644d45-2ae3-121f-99fc-0a46f205907d@nvidia.com> From: Dmitry Osipenko Message-ID: Date: Mon, 9 Dec 2019 23:12:35 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 08.12.2019 00:36, Sowjanya Komatineni пишет: > > On 12/7/19 11:59 AM, Sowjanya Komatineni wrote: >> >> On 12/7/19 8:00 AM, Dmitry Osipenko wrote: >>> 07.12.2019 18:53, Dmitry Osipenko пишет: >>>> 07.12.2019 18:47, Dmitry Osipenko пишет: >>>>> 07.12.2019 17:28, Dmitry Osipenko пишет: >>>>>> 06.12.2019 05:48, Sowjanya Komatineni пишет: >>>>>>> Tegra210 and prior Tegra PMC has clk_out_1, clk_out_2, clk_out_3 >>>>>>> with >>>>>>> mux and gate for each of these clocks. >>>>>>> >>>>>>> Currently these PMC clocks are registered by Tegra clock driver >>>>>>> using >>>>>>> clk_register_mux and clk_register_gate by passing PMC base address >>>>>>> and register offsets and PMC programming for these clocks happens >>>>>>> through direct PMC access by the clock driver. >>>>>>> >>>>>>> With this, when PMC is in secure mode any direct PMC access from the >>>>>>> non-secure world does not go through and these clocks will not be >>>>>>> functional. >>>>>>> >>>>>>> This patch adds these clocks registration with PMC as a clock >>>>>>> provider >>>>>>> for these clocks. clk_ops callback implementations for these clocks >>>>>>> uses tegra_pmc_readl and tegra_pmc_writel which supports PMC >>>>>>> programming >>>>>>> in secure mode and non-secure mode. >>>>>>> >>>>>>> Signed-off-by: Sowjanya Komatineni >>>>>>> --- >>>>> [snip] >>>>> >>>>>>> + >>>>>>> +static const struct clk_ops pmc_clk_gate_ops = { >>>>>>> +    .is_enabled = pmc_clk_is_enabled, >>>>>>> +    .enable = pmc_clk_enable, >>>>>>> +    .disable = pmc_clk_disable, >>>>>>> +}; >>>>>> What's the benefit of separating GATE from the MUX? >>>>>> >>>>>> I think it could be a single clock. >>>>> According to TRM: >>>>> >>>>> 1. GATE and MUX are separate entities. >>>>> >>>>> 2. GATE is the parent of MUX (see PMC's CLK_OUT paths diagram in TRM). >>>>> >>>>> 3. PMC doesn't gate EXTPERIPH clock but could "force-enable" it, >>>>> correct? > > Was following existing clk-tegra-pmc as I am not sure of reason for > having these clocks registered as separate mux and gate clocks. > > Yes, PMC clocks can be registered as single clock and can use clk_ops > for set/get parent and enable/disable. > > enable/disable of PMC clocks is for force-enable to force the clock to > run regardless of ACCEPT_REQ or INVERT_REQ. > >>>> 4. clk_m_div2/4 are internal PMC OSC dividers and thus these clocks >>>> should belong to PMC. >>> Also, it should be "osc" and not "clk_m". >> >> I followed the same parents as it were in existing clk-tegra-pmc driver. >> >> Yeah they are wrong and they should be from osc and not clk_m. >> >> Will fix in next version. >> Could you please describe the full EXTPERIPH clock topology and how the pinmux configuration is related to it all? What is internal to the Tegra chip and what are the external outputs? Is it possible to bypass PMC on T30+ for the EXTPERIPH clocks?