From patchwork Wed Apr 7 03:27:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186657 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFE8BC433B4 for ; Wed, 7 Apr 2021 03:31:21 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 4FF4F6139E for ; Wed, 7 Apr 2021 03:31:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4FF4F6139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=IWmDKnRRC/VHCXfZKDpac5sTv3woQu5wmcoc2Utbvs4=; b=EfXF0o0IMP6hdLM+T16v4xMue 4nF01Z2SGZFajabc+OfarepHhYP/i2ClZBY72yei91lQbTfkjMrt2pAyCKPXnguVDoomKVgLu1QvP pQKuXNoOgTlEHSMM7HrUI/zq6zIY4hJyrgBYw7c2q9C8PIEdWTd38dD+AEtfDajdY/YmMnSlA1AeV hCzcOxFQcOYalDTXqMWU367FWEqQBnH4a4qG03vkRf+PDPe9BzSFjKWMzvPIyPWyB5dw/2Rp6StqO zHsFFDuWQuudLaHnN+sex8A4zeyoq+CCqKdxc4DuXlXW9N81WSEnTQy5HGFeFqk+5k5/E9/bZ9H1Z ASKv1VyOg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTysK-003vp4-V4; Wed, 07 Apr 2021 03:29:05 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTyrw-003vjz-BR; Wed, 07 Apr 2021 03:28:43 +0000 X-UUID: 2ffcc5fc89fd4fbfa0bfa6aac8ef2e66-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=7ZOTbLkA4VguzmO+r4P0r4TkfhdaynanP6iZw6SBiTg=; b=RipSZ2HvUZ79tVh1iN+rWsqTmeQ1zfUTCwhyUs+qFZ8oz8yVI/tndG923x7hXDBIMkX5i4+VdS9fbnPZU6UuRfXdWBr1gvL/etquYLTqdV5QhJaxm1tZ+QqYo3qbidsuolSH9fd7hGYI5f8U45UMs00UkesknsudCtFQnLHZRc4=; X-UUID: 2ffcc5fc89fd4fbfa0bfa6aac8ef2e66-20210406 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 988418119; Tue, 06 Apr 2021 20:28:36 -0700 Received: from MTKMBS02N1.mediatek.inc (172.21.101.77) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:35 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:33 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:33 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 1/8] dt-bindings: clock: Add MT8192 APU clock bindings Date: Wed, 7 Apr 2021 11:27:59 +0800 Message-ID: <1617766086-5502-2-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_042842_442005_F43AFDB1 X-CRM114-Status: GOOD ( 11.23 ) 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 Add clock bindings for APU on MT8192. Signed-off-by: Flora Fu Acked-by: Rob Herring --- include/dt-bindings/clock/mt8192-clk.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/include/dt-bindings/clock/mt8192-clk.h b/include/dt-bindings/clock/mt8192-clk.h index ece5b4c0356c..71e07858f5dc 100644 --- a/include/dt-bindings/clock/mt8192-clk.h +++ b/include/dt-bindings/clock/mt8192-clk.h @@ -164,7 +164,15 @@ #define CLK_TOP_APLL12_DIV9 152 #define CLK_TOP_SSUSB_TOP_REF 153 #define CLK_TOP_SSUSB_PHY_REF 154 -#define CLK_TOP_NR_CLK 155 +#define CLK_TOP_DSP_SEL 155 +#define CLK_TOP_DSP1_SEL 156 +#define CLK_TOP_DSP1_NPUPLL_SEL 157 +#define CLK_TOP_DSP2_SEL 158 +#define CLK_TOP_DSP2_NPUPLL_SEL 159 +#define CLK_TOP_DSP5_SEL 160 +#define CLK_TOP_DSP5_APUPLL_SEL 161 +#define CLK_TOP_IPU_IF_SEL 162 +#define CLK_TOP_NR_CLK 163 /* INFRACFG */ @@ -309,7 +317,9 @@ #define CLK_APMIXED_APLL1 8 #define CLK_APMIXED_APLL2 9 #define CLK_APMIXED_MIPID26M 10 -#define CLK_APMIXED_NR_CLK 11 +#define CLK_APMIXED_APUPLL 11 +#define CLK_APMIXED_NPUPLL 12 +#define CLK_APMIXED_NR_CLK 13 /* SCP_ADSP */ From patchwork Wed Apr 7 03:28:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186695 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87819C433B4 for ; Wed, 7 Apr 2021 03:38:35 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 270A26139E for ; Wed, 7 Apr 2021 03:38:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 270A26139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=VnaWN4qc3vTfiKg9cq0OK9sxiz6DwqmlgJhA1bGv+p4=; b=KgIEHNUn7qX5O5BxzDUMu+DOZ yxkqwzXCr4jok2PaXTCm2Mr5Eeme82niP/vUm599Pe/tuvKJ3o1/HdLQC7w4PJgDn2rirCuq7awyW aej7eeDMmgwNfizLeZC8dQHIyPSLv++6jhntpn/xG9HAYGHvwIHQzaMPGfivj+o8DGHJN+bnjoXmU 5N2pGRLn4kd+Wk2xmCp6LOHsnYOBFjFwOPcihENUhi6EhYNg4r/0UuitwhXDybDWzJsgbh2mHGMbT uQNxegctfjafF7ERzBfw9hEDnmpcobW0PmmsA89YerYGufqFU9PFvjiL4q71PbJCMfr+scMBwYSk4 8xtW7xKsQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzf-003xaj-3Z; Wed, 07 Apr 2021 03:36:39 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzG-003xWX-Ng; Wed, 07 Apr 2021 03:36:16 +0000 X-UUID: 4952c49cf1564e5bb57e198ffa793c1f-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=kL4Cx6MJpiM1xiNB0QiF5VtimgoT3J5q67h22rvHVOA=; b=hUKINhqIbP3MZab0WCe1Fl9OzOXchMQLgdEFLtIj11a2b9mvffdjX0bmyw+vo3gdjQG3X+fZJbM0lyBdwSnyAiumRGOT1y58jMT6LFaLSLN8KjgmkDXrsTL7aC0V9ynApMjovlTmMNTzzfTPAsepeCrQO/BUzmEghVaZ4LmwXHE=; X-UUID: 4952c49cf1564e5bb57e198ffa793c1f-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 2022449248; Tue, 06 Apr 2021 20:36:02 -0700 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:41 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:39 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:39 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 2/8] clk: mediatek: mt8192: Add APU clocks support Date: Wed, 7 Apr 2021 11:28:00 +0800 Message-ID: <1617766086-5502-3-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: 898ED09CD3F7ED923A39CBC5AC5322F6610F0DE99905E8BF78FE993B60231D142000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043615_241284_E440EDB6 X-CRM114-Status: GOOD ( 10.35 ) 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 Add APU clocks support on MT8192. Signed-off-by: Flora Fu --- drivers/clk/mediatek/clk-mt8192.c | 91 +++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/drivers/clk/mediatek/clk-mt8192.c b/drivers/clk/mediatek/clk-mt8192.c index bf6a2084a348..4eb61f006306 100644 --- a/drivers/clk/mediatek/clk-mt8192.c +++ b/drivers/clk/mediatek/clk-mt8192.c @@ -244,6 +244,65 @@ static const char * const ccu_parents[] = { "univpll_d6_d2" }; +static const char * const dsp_parents[] = { + "clk26m", + "univpll_d6_d2", + "univpll_d4_d2", + "univpll_d5", + "univpll_d4", + "mmpll_d4", + "mainpll_d3", + "univpll_d3" +}; + +static const char * const dsp1_parents[] = { + "clk26m", + "npupll_ck", + "mainpll_d4_d2", + "univpll_d5", + "univpll_d4", + "mainpll_d3", + "univpll_d3", + "apupll_ck" +}; + +static const char * const dsp1_npupll_parents[] = { + "dsp1_sel", + "npupll_ck" +}; + +static const char * const dsp2_parents[] = { + "clk26m", + "npupll_ck", + "mainpll_d4_d2", + "univpll_d5", + "univpll_d4", + "mainpll_d3", + "univpll_d3", + "apupll_ck" +}; + +static const char * const dsp2_npupll_parents[] = { + "dsp2_sel", + "npupll_ck" +}; + +static const char * const dsp5_parents[] = { + "clk26m", + "apupll_ck", + "univpll_d4_d2", + "mainpll_d4", + "univpll_d4", + "mmpll_d4", + "mainpll_d3", + "univpll_d3" +}; + +static const char * const dsp5_apupll_parents[] = { + "dsp5_sel", + "apupll_ck" +}; + static const char * const dsp7_parents[] = { "clk26m", "mainpll_d4_d2", @@ -255,6 +314,17 @@ static const char * const dsp7_parents[] = { "mmpll_d4" }; +static const char * const ipu_if_parents[] = { + "clk26m", + "univpll_d6_d2", + "mainpll_d4_d2", + "univpll_d4_d2", + "univpll_d5", + "mainpll_d4", + "tvdpll_ck", + "univpll_d4" +}; + static const char * const mfg_ref_parents[] = { "clk26m", "clk26m", @@ -734,9 +804,26 @@ static const struct mtk_mux top_mtk_muxes[] = { cam_parents, 0x030, 0x034, 0x038, 16, 4, 23, 0x004, 10), MUX_GATE_CLR_SET_UPD(CLK_TOP_CCU_SEL, "ccu_sel", ccu_parents, 0x030, 0x034, 0x038, 24, 4, 31, 0x004, 11), + /* CLK_CFG_3 */ + MUX_GATE_CLR_SET_UPD(CLK_TOP_DSP_SEL, "dsp_sel", + dsp_parents, 0x040, 0x044, 0x048, 0, 3, 7, 0x004, 12), + MUX_GATE_CLR_SET_UPD(CLK_TOP_DSP1_SEL, "dsp1_sel", + dsp1_parents, 0x040, 0x044, 0x048, 8, 3, 15, 0x004, 13), + MUX_CLR_SET_UPD(CLK_TOP_DSP1_NPUPLL_SEL, "dsp1_npupll_sel", + dsp1_npupll_parents, 0x040, 0x044, 0x048, 11, 1, -1, -1), + MUX_GATE_CLR_SET_UPD(CLK_TOP_DSP2_SEL, "dsp2_sel", + dsp2_parents, 0x040, 0x044, 0x048, 16, 3, 23, 0x004, 14), + MUX_CLR_SET_UPD(CLK_TOP_DSP2_NPUPLL_SEL, "dsp2_npupll_sel", + dsp2_npupll_parents, 0x040, 0x044, 0x048, 19, 1, -1, -1), + MUX_GATE_CLR_SET_UPD(CLK_TOP_DSP5_SEL, "dsp5_sel", + dsp5_parents, 0x040, 0x044, 0x048, 24, 3, 31, 0x004, 15), + MUX_CLR_SET_UPD(CLK_TOP_DSP5_APUPLL_SEL, "dsp5_apupll_sel", + dsp5_apupll_parents, 0x040, 0x044, 0x048, 27, 1, -1, -1), /* CLK_CFG_4 */ MUX_GATE_CLR_SET_UPD(CLK_TOP_DSP7_SEL, "dsp7_sel", dsp7_parents, 0x050, 0x054, 0x058, 0, 3, 7, 0x004, 16), + MUX_GATE_CLR_SET_UPD(CLK_TOP_IPU_IF_SEL, "ipu_if_sel", + ipu_if_parents, 0x050, 0x054, 0x058, 8, 3, 15, 0x004, 17), MUX_GATE_CLR_SET_UPD(CLK_TOP_MFG_REF_SEL, "mfg_ref_sel", mfg_ref_parents, 0x050, 0x054, 0x058, 16, 2, 23, 0x004, 18), MUX_CLR_SET_UPD(CLK_TOP_MFG_PLL_SEL, "mfg_pll_sel", @@ -1175,6 +1262,10 @@ static const struct mtk_pll_data plls[] = { 0, 0, 32, 0x031c, 24, 0x0040, 0x000c, 0, 0x0320, 0), PLL_B(CLK_APMIXED_APLL2, "apll2", 0x032c, 0x033c, 0x00000000, 0, 0, 32, 0x0330, 24, 0, 0, 0, 0x0334, 0), + PLL_B(CLK_APMIXED_APUPLL, "apupll", 0x03a0, 0x03ac, 0xff000001, + HAVE_RST_BAR, BIT(23), 22, 0x03a4, 24, 0, 0, 0, 0x03a4, 0), + PLL_B(CLK_APMIXED_NPUPLL, "npupll", 0x03b4, 0x03c0, 0x00000001, + 0, 0, 22, 0x03b8, 24, 0, 0, 0, 0x03b8, 0), }; static struct clk_onecell_data *top_clk_data; From patchwork Wed Apr 7 03:28:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186691 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5986C43460 for ; Wed, 7 Apr 2021 03:38:07 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 551566139E for ; Wed, 7 Apr 2021 03:38:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 551566139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=A+g5DZPvQG1Rh3EreMu37zFkJbXnf5FJB48kOcdDOvw=; b=dAUiNjpiU5uhcqoRgWcih6t4t 1A8sRN6LESiF1UShTME2XGQ/AgJsouRcTW/Eg4Anp1kZrOH/KA2i6T01XQDZhsPSKpTRL1UJA90IY Jf73XIcjcH2cjnRGYXJA0PHw1BgsG1MtfQqv2gsQSFMJ0LAJ/J6f9gnKR2bB/84NqtKNWG8kb6PmT niXC0HJYTBvqGb0vyJCoLdM9zVkGLnCu7rY0xwx6RIjQGAPhRXM4qa4fFu4raVQu8avrHlkJAgVTx rlvZvra6qjEAxgxdAa0z5I4SJ1yFyJxVJGgJ9W0HC/E+Tkr5ozeVxfPIDEoLdPrTQ82PryvyKXzvb usY33sAqw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzH-003xWm-0u; Wed, 07 Apr 2021 03:36:15 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTyz8-003xVD-G5; Wed, 07 Apr 2021 03:36:09 +0000 X-UUID: 6f7384d7b8fc4bffa52a45c599f5bda1-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=/0bsVv/avuvT5OQV7nriKx3RN4+ZrobH247lZ18k9VU=; b=cgv9kHcCNqW5NLUy6upAOCDVrKrc8hTbLLoebjQD/7aS1QVagJSuch9RSHdcvkxiFfHEwC5y4s6DjXTtfohlUuIuhqAodaoC1wJaXdYErXV2JTucEH82d4ZYPDeaY84evM0/+Fsvc5JVVuDKf7b+UimzZfXG2DQF5Y7NRNiDVu8=; X-UUID: 6f7384d7b8fc4bffa52a45c599f5bda1-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1514061821; Tue, 06 Apr 2021 20:36:02 -0700 Received: from MTKMBS02N1.mediatek.inc (172.21.101.77) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:53 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:51 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:51 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 3/8] dt-bindings: apu: Add MT8192 APU power domain Date: Wed, 7 Apr 2021 11:28:01 +0800 Message-ID: <1617766086-5502-4-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043607_748096_01B6B7A9 X-CRM114-Status: GOOD ( 12.53 ) 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 Create MT8192 APU power domain bindings. Add top power domain id. Signed-off-by: Flora Fu --- include/dt-bindings/power/mt8192-apu-power.h | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 include/dt-bindings/power/mt8192-apu-power.h diff --git a/include/dt-bindings/power/mt8192-apu-power.h b/include/dt-bindings/power/mt8192-apu-power.h new file mode 100644 index 000000000000..b821bd4811a6 --- /dev/null +++ b/include/dt-bindings/power/mt8192-apu-power.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * Copyright (c) 2021 MediaTek Inc. + */ + +#ifndef _DT_BINDINGS_POWER_MT8192_APU_POWER_H +#define _DT_BINDINGS_POWER_MT8192_APU_POWER_H + +#define MT8192_POWER_DOMAIN_APUSYS_TOP 0 + +#endif From patchwork Wed Apr 7 03:28:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186701 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C786C433ED for ; Wed, 7 Apr 2021 03:41:40 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 2F84F6139E for ; Wed, 7 Apr 2021 03:41:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F84F6139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=CThPe8zfqs30OZyZCOEAWLkSFt6jN75RqyP4K+hcj54=; b=JUzgGKnUl0RnToB8PXefRr/wx /ZHVldenfFdMNI9w2N9yQ9ca+bnsJgl9c/dDBJejpFbJSpzEOPRlf0qQoCpRljeIUhpjDYkAf8Y1P we3EvS4bCXq/CvST/4L7dEW09BsKiWq+zlOCoVahayxpZIjfSlKqNQMdg58RhRmb2F93KHUqMU3IW xBtFRg0bPcKFVNImI8BbsafbmrPIucFjXEuG1ZTs0mp7bSl0WMglqde9SlfL4cYdRuPO0pOGKWGes QjJTvorGzsOJE6Z4AI66SsbnXW68qQH9owhTviye8IjPXHx4sF4PqcM4zDxfaiVHw5KCMHIY78R4g g8srVZ5Aw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTz2u-003yPA-HN; Wed, 07 Apr 2021 03:40:00 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTz23-003yA9-SI; Wed, 07 Apr 2021 03:39:12 +0000 X-UUID: 7eb8cb7022f7449f82fc4b4f34d23256-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=iIVH74KMNhLjDi2+L7ayj4DZx4hbzxN2pd+LXOT76Ps=; b=a8vWjgc6WOxSN0Z6f1ByveO2CHCKyRmn0n5cvG6rE8i+PIt+OOYfVQr8dSLK90ez6bt9FsNxu2/Z1Gz5evBbNVyUZNvlVspDbCSOA/LwfaeV7HhHUxp8YQtQmw2EzdCrdr599sWj7aby0WUJ/DMahpn1jp/Dccpy8ynKZM9MMSw=; X-UUID: 7eb8cb7022f7449f82fc4b4f34d23256-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 596770346; Tue, 06 Apr 2021 20:38:56 -0700 Received: from MTKMBS02N2.mediatek.inc (172.21.101.101) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:55 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n2.mediatek.inc (172.21.101.101) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:53 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:52 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 4/8] dt-bindings: arm: mediatek: Add new document bindings for APU Date: Wed, 7 Apr 2021 11:28:02 +0800 Message-ID: <1617766086-5502-5-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: D2EB6AFBFB83D479252FA785101F7A80CA89174F0CC42EEC7B63FDD3F9C9E1262000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043908_537365_832B46ED X-CRM114-Status: GOOD ( 12.77 ) 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 Document the apusys bindings. Signed-off-by: Flora Fu --- .../arm/mediatek/mediatek,apusys.yaml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,apusys.yaml diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apusys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apusys.yaml new file mode 100644 index 000000000000..dc04a46f1bad --- /dev/null +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apusys.yaml @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,apusys.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MediaTek APUSYS Controller + +maintainers: + - Flora Fu + +description: + The Mediatek apusys controller provides functional configurations and clocks + to the system. + +properties: + compatible: + items: + - enum: + - mediatek,mt8192-apu_mbox + - mediatek,mt8192-apu_conn + - mediatek,mt8192-apu_vcore + - const: syscon + + reg: + maxItems: 1 + + '#clock-cells': + const: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + apu_mbox: apu_mbox@19000000 { + compatible = "mediatek,mt8192-apu_mbox", "syscon"; + reg = <0x19000000 0x1000>; + }; + + - | + apu_conn: apu_conn@19020000 { + compatible = "mediatek,mt8192-apu_conn", "syscon"; + reg = <0x19020000 0x1000>; + #clock-cells = <1>; + }; + + - | + apu_vcore: apu_vcore@19029000 { + compatible = "mediatek,mt8192-apu_vcore", "syscon"; + reg = <0x19029000 0x1000>; + #clock-cells = <1>; + }; From patchwork Wed Apr 7 03:28:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186703 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C47B6C433ED for ; Wed, 7 Apr 2021 03:42:12 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 2FF456139E for ; Wed, 7 Apr 2021 03:42:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2FF456139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=Fz/dFBqvn7rXJBCzDBUrRneGEIlgvqGeYLRziEHGSf4=; b=YCQgwY7CUwjt4/W7Mxw9ZZ7xL NxfJGnRzNBKLeOircTfzwJtT3zR6CY3dLifwtFmEtB65gZQfdauHzB6o6IzMwZYSJlicobQQCwU2i AM3lJ1yo87zPiwTQz3dMPtmck5lwrM8DFlY2lFy9L/JRHZ+1YdlyMdkTzQaIRqoSeEYNXdQ4kHidT 7ytxphpJ/azNnYcMxwjc6g83yyEJzV9pZlalH9dpA6O8AJt5mkM7rjYmiaqTOR8ZWFCoBbwrHSK2H xq8+eSU7JltXj15KdBf5RfJkgx8CZhusKzdoePFBg27z1+R/64y4CPm9FJHgclcBKUiWkjYaSRZyA t6FVin9Cg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTz3H-003yVp-Ds; Wed, 07 Apr 2021 03:40:24 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTz29-003yA9-HO; Wed, 07 Apr 2021 03:39:20 +0000 X-UUID: 682e4a65a9c44939b4204ab7a349708a-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZTPs7QC/VQ3jJFqOtP7YClWOvbYIwYp8N0gfY+F80ok=; b=ZvforSHE+na7DOdwwp2Bi4heENe2NZtmsGjyxIWpLqWq1ePfY/0SaTN6ySGv65CZIe9SgLhC6SF6gT6+8X0LRRgNRY6UtL5bd+9xKUF9X7wagKN9Tl3pDvwONZSXvdSDvRpcrcGPkd/nxTcZ6wu6TbsDFP4406bzWFJj9gPHor4=; X-UUID: 682e4a65a9c44939b4204ab7a349708a-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1393050826; Tue, 06 Apr 2021 20:38:58 -0700 Received: from MTKMBS06N2.mediatek.inc (172.21.101.130) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:56 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:54 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:53 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 5/8] dt-bindings: soc: mediatek: apusys: Add new document for APU power domain Date: Wed, 7 Apr 2021 11:28:03 +0800 Message-ID: <1617766086-5502-6-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: 42B2CA7540249A853B4F08125BFC10E92DB4B6618A5B217123DDF2CF1714566A2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043918_601979_EB0F889F X-CRM114-Status: GOOD ( 14.30 ) 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 Document the bindings for APU power domain on MediaTek SoC. Signed-off-by: Flora Fu --- .../soc/mediatek/mediatek,apu-pm.yaml | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,apu-pm.yaml diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,apu-pm.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,apu-pm.yaml new file mode 100644 index 000000000000..c99e812977f9 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,apu-pm.yaml @@ -0,0 +1,146 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/mediatek/mediatek,apu-pm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek APU Power Domains + +maintainers: + - Flora Fu + +description: | + Mediatek AI Process Unit (APU) include support for power domains which can be + powered up/down by software. + APU subsys belonging to a power domain should contain a 'power-domains' + property that is a phandle for apuspm node representing the domain. + +properties: + compatible: + items: + - enum: + - mediatek,mt8192-apu-pm + - const: syscon + + reg: + description: Address range of the APU power domain controller. + maxItems: 1 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + '#power-domain-cells': + const: 1 + + vsram-supply: + description: apu sram regulator supply. + + mediatek,scpsys: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + phandle to the device containing the scpsys register range. + + mediatek,apu_conn: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + phandle to the device containing the scpsys apu conn register range. + + mediatek,apu_conn1: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + phandle to the device containing the scpsys apu conn1 register range. + + mediatek,apu_vcore: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + phandle to the device containing the scpsys apu vcore register range. + +patternProperties: + "^power-domain@[0-9a-f]+$": + type: object + description: | + Represents the power domains within the power controller node as + documented in Documentation/devicetree/bindings/power/power-domain.yaml. + + properties: + reg: + description: | + Power domain index. Valid values are defined in: + "include/dt-bindings/power/mt8182-apu-power.h" + maxItems: 1 + + '#power-domain-cells': + description: | + Must be 0 for nodes representing a single PM domain and 1 for nodes + providing multiple PM. + + clocks: + description: | + List of phandles of clocks list. Specify by order according to + power-up sequence. + + clock-names: + description: | + List of names of clocks. Specify by order according to power-up + sequence. + + assigned-clocks: + maxItems: 2 + + assigned-clock-parents: + maxItems: 2 + + domain-supply: + description: domain regulator supply. + + required: + - reg + - '#power-domain-cells' + + additionalProperties: false + +required: + - compatible + - reg + - '#power-domain-cells' + - vsram-supply + - mediatek,scpsys + +additionalProperties: false + +examples: + - | + #include + #include + apuspm: power-domain@190f0000 { + compatible = "mediatek,mt8192-apu-pm", "syscon"; + reg = <0x190f0000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + #power-domain-cells = <1>; + vsram-supply = <&mt6359_vsram_md_ldo_reg>; + mediatek,scpsys = <&scpsys>; + mediatek,apu_conn = <&apu_conn>; + mediatek,apu_vcore = <&apu_vcore>; + + power-domain@MT8192_POWER_DOMAIN_APUSYS_TOP { + reg = ; + #power-domain-cells = <0>; + clocks = <&topckgen CLK_TOP_DSP_SEL>, + <&topckgen CLK_TOP_IPU_IF_SEL>, + <&clk26m>, + <&topckgen CLK_TOP_UNIVPLL_D6_D2>; + clock-names = "clk_top_conn", + "clk_top_ipu_if", + "clk_off", + "clk_on_default"; + assigned-clocks = <&topckgen CLK_TOP_DSP_SEL>, + <&topckgen CLK_TOP_IPU_IF_SEL>; + assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, + <&topckgen CLK_TOP_UNIVPLL_D6_D2>; + domain-supply = <&mt6359_vproc1_buck_reg>; + }; + }; From patchwork Wed Apr 7 03:28:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186697 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D64A5C433ED for ; Wed, 7 Apr 2021 03:38:41 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 48ECE6139E for ; Wed, 7 Apr 2021 03:38:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 48ECE6139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=nQGc1FX0IBNH0UZhnzhPeplHDWyylEkRCyiYIuKrKBU=; b=G1uvcYFCpVAgB0gCsUDV1fKlR DPsydYBiLHPKR197eBqRnfDDPnbz4zcRwvhfXfTsz/IYmFLQocTHDgtufv47WmwR8wch46mrJpcdI QkOCpB74O4Mtq4Sc+Xjtywvn1pHuc15OUFbC28/EGWE5xQPEZzmClK0NsnPdK19Lq6k8RX8prjWeY 70AOVp/3mZQmsZbMFFJl9RJJp23gIUVCxY9fm6zPQIU8fq+82y5KK1NPY4k0XiTDGbbQC41PPmqoP cdZSdsdOKisMbTn5qKJfKWbxbEa0GVQ+a4hNtB04YTFISLRa9FqYYG3eYtsGDVAk6xeUtkKHkmdMg Umn9yp/sg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzn-003xcT-4V; Wed, 07 Apr 2021 03:36:47 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzG-003xVD-1t; Wed, 07 Apr 2021 03:36:16 +0000 X-UUID: 5f7d7c1e05124c99a2c09bd8261a454f-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=f2h/cHxC8x4wk1tgmCDM/xmX9g+i2DCdmX9SVWFTiFE=; b=PYXC6GbfSYYuHc3hzd2GsG6xq9OPi+6HSIHL1ppUMaHq2oC/6grg7xJshrxAmQhMuKZXJ8++2+y0pymlyT+YTfLyzpBoHdcYdB4J5SLXqZn7ZRy3u/fp1vEaBznOGuelFl+opxXvIo+f/zoH1tWHEtVduNOvwDiBShDZMl1knWI=; X-UUID: 5f7d7c1e05124c99a2c09bd8261a454f-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 699403207; Tue, 06 Apr 2021 20:36:02 -0700 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:29:04 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:55 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:55 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 6/8] soc: mediatek: apu: Add apusys and add apu power domain driver Date: Wed, 7 Apr 2021 11:28:04 +0800 Message-ID: <1617766086-5502-7-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043614_610264_507E97AF X-CRM114-Status: GOOD ( 25.27 ) 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 Add the apusys in soc. Add driver for apu power domains. Signed-off-by: Flora Fu --- drivers/soc/mediatek/Kconfig | 10 + drivers/soc/mediatek/Makefile | 1 + drivers/soc/mediatek/apusys/Makefile | 2 + drivers/soc/mediatek/apusys/mtk-apu-pm.c | 613 +++++++++++++++++++++++ 4 files changed, 626 insertions(+) create mode 100644 drivers/soc/mediatek/apusys/Makefile create mode 100644 drivers/soc/mediatek/apusys/mtk-apu-pm.c diff --git a/drivers/soc/mediatek/Kconfig b/drivers/soc/mediatek/Kconfig index fdd8bc08569e..76ee7e354b27 100644 --- a/drivers/soc/mediatek/Kconfig +++ b/drivers/soc/mediatek/Kconfig @@ -5,6 +5,16 @@ menu "MediaTek SoC drivers" depends on ARCH_MEDIATEK || COMPILE_TEST +config MTK_APUSYS + bool "MediaTek APUSYS Support" + select REGMAP + select PM_GENERIC_DOMAINS if PM + help + Say yes here to add support for the MediaTek AI Processing Unit + Subsystem(APUSYS). + The APUSYS is a proprietary hardware in SoC to support AI + operations. + config MTK_CMDQ tristate "MediaTek CMDQ Support" depends on ARCH_MEDIATEK || COMPILE_TEST diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index c916b6799baa..4ca2d59b75cb 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_MTK_APUSYS) += apusys/ obj-$(CONFIG_MTK_CMDQ) += mtk-cmdq-helper.o obj-$(CONFIG_MTK_DEVAPC) += mtk-devapc.o obj-$(CONFIG_MTK_INFRACFG) += mtk-infracfg.o diff --git a/drivers/soc/mediatek/apusys/Makefile b/drivers/soc/mediatek/apusys/Makefile new file mode 100644 index 000000000000..01c339e35b80 --- /dev/null +++ b/drivers/soc/mediatek/apusys/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_MTK_APUSYS) += mtk-apu-pm.o diff --git a/drivers/soc/mediatek/apusys/mtk-apu-pm.c b/drivers/soc/mediatek/apusys/mtk-apu-pm.c new file mode 100644 index 000000000000..37f481692cbb --- /dev/null +++ b/drivers/soc/mediatek/apusys/mtk-apu-pm.c @@ -0,0 +1,613 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2021 MediaTek Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define APU_PD_IPUIF_HW_CG BIT(0) +#define APU_PD_RPC_AUTO_BUCK BIT(1) +#define APU_PD_CAPS(_pd, _x) ((_pd)->data->caps & (_x)) + +#define MTK_POLL_DELAY_US 10 +#define MTK_POLL_TIMEOUT USEC_PER_SEC + +/*spm_cross_wake_m01*/ +#define WAKEUP_APU (0x1 << 0) + +/* spm_other_pwr_status*/ +#define PWR_STATUS (0x1 << 5) + +/* rpc_intf_pwr_rdy */ +#define PWR0_RDY (0x1 << 0) + +/* rpc_top_con*/ +#define SLEEP_REQ BIT(0) +#define APU_BUCK_ELS_EN BIT(3) + +/*conn_clr, conn1_clr, vcore_clr */ +#define CG_CLR (0xFFFFFFFF) + +/* mt8192 rpc_sw_type */ +#define MT8192_RPC_SW_TYPE0 (0x200) +#define MT8192_RPC_SW_TYPE1 (0x210) +#define MT8192_RPC_SW_TYPE2 (0x220) +#define MT8192_RPC_SW_TYPE3 (0x230) +#define MT8192_RPC_SW_TYPE4 (0x240) +#define MT8192_RPC_SW_TYPE6 (0x260) +#define MT8192_RPC_SW_TYPE7 (0x270) + +/* rpc_sw_type*/ +static const struct reg_sequence mt8192_rpc_sw_type[] = { + { MT8192_RPC_SW_TYPE0, 0xFF }, + { MT8192_RPC_SW_TYPE2, 0x7 }, + { MT8192_RPC_SW_TYPE3, 0x7 }, + { MT8192_RPC_SW_TYPE6, 0x3 }, +}; + +struct apu_top_domain { + u32 spm_ext_buck_iso; + u32 spm_ext_buck_iso_mask; + u32 spm_cross_wake_m01; + u32 spm_other_pwr; + u32 conn_clr; + u32 conn1_clr; + u32 vcore_clr; + u32 rpc_top_con; + u32 rpc_top_con_init_mask; + u32 rpc_top_sel; + u32 rpc_top_intf_pwr_rdy; + const struct reg_sequence *rpc_sw_type; + int rpc_sw_ntype; +}; + +static struct apu_top_domain mt8192_top_reg = { + .spm_ext_buck_iso = 0x39C, + .spm_ext_buck_iso_mask = 0x21, + .spm_cross_wake_m01 = 0x670, + .spm_other_pwr = 0x178, + .conn_clr = 0x008, + .vcore_clr = 0x008, + .rpc_top_con = 0x000, + .rpc_top_con_init_mask = 0x49E, + .rpc_top_sel = 0x004, + .rpc_top_intf_pwr_rdy = 0x044, + .rpc_sw_type = mt8192_rpc_sw_type, + .rpc_sw_ntype = ARRAY_SIZE(mt8192_rpc_sw_type), +}; + +struct apusys { + struct device *dev; + struct regmap *scpsys; + struct regmap *conn; + struct regmap *conn1; + struct regmap *vcore; + struct regmap *rpc; + struct regulator *vsram_supply; + const struct apu_pm_data *data; + struct genpd_onecell_data pd_data; + struct generic_pm_domain *domains[]; +}; + +struct apu_domain { + struct generic_pm_domain genpd; + const struct apu_domain_data *data; + struct apusys *apusys; + struct regulator *domain_supply; + int num_clks; + struct clk_bulk_data *clks; + struct clk *clk_top_conn; + struct clk *clk_top_ipu_if; + struct clk *clk_off; + struct clk *clk_on_def; +}; + +struct apu_domain_data { + int domain_idx; + char *name; + struct apu_top_domain *topd; + u8 caps; +}; + +struct apu_pm_data { + const struct apu_domain_data *domains_data; + int num_domains; +}; + +#define to_apu_domain(gpd) container_of(gpd, struct apu_domain, genpd) + +static int apu_top_init_hw(struct apu_domain *pd) +{ + struct apusys *apusys = pd->apusys; + int ret; + + /* + * set memory type to PD or sleep group + * sw_type register for each memory group, set to PD mode default + */ + if (pd->data->topd->rpc_sw_ntype) { + ret = regmap_register_patch(apusys->rpc, + pd->data->topd->rpc_sw_type, + pd->data->topd->rpc_sw_ntype); + if (ret < 0) { + dev_err(apusys->dev, "Failed to rpc patch: %d\n", ret); + return ret; + } + } + + /* mask RPC IRQ and bypass WFI */ + regmap_set_bits(apusys->rpc, pd->data->topd->rpc_top_sel, + pd->data->topd->rpc_top_con_init_mask); + + if (APU_PD_CAPS(pd, APU_PD_RPC_AUTO_BUCK)) + regmap_set_bits(apusys->rpc, + pd->data->topd->rpc_top_con, APU_BUCK_ELS_EN); + + return 0; +} + +static const struct apu_domain_data apu_domain_data_mt8192[] = { + [MT8192_POWER_DOMAIN_APUSYS_TOP] = { + .domain_idx = 0, + .name = "apu-top", + .caps = APU_PD_IPUIF_HW_CG, + .topd = &mt8192_top_reg, + } +}; + +static const struct apu_pm_data mt8192_apu_pm_data = { + .domains_data = apu_domain_data_mt8192, + .num_domains = ARRAY_SIZE(apu_domain_data_mt8192), +}; + +static int apu_top_power_on(struct generic_pm_domain *genpd) +{ + struct apu_domain *pd = to_apu_domain(genpd); + struct apusys *apusys = pd->apusys; + int ret, tmp; + + if (apusys->vsram_supply) { + ret = regulator_enable(apusys->vsram_supply); + if (ret < 0) + return ret; + } + + if (pd->domain_supply) { + ret = regulator_enable(pd->domain_supply); + if (ret < 0) + goto err_regulator; + } + + regmap_clear_bits(apusys->scpsys, pd->data->topd->spm_ext_buck_iso, + pd->data->topd->spm_ext_buck_iso_mask); + + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + ret = clk_prepare_enable(pd->clk_top_conn); + if (ret) { + dev_err(apusys->dev, "Failed enable top_conn clk\n"); + goto err_clk; + } + + ret = clk_set_parent(pd->clk_top_ipu_if, pd->clk_on_def); + if (ret) { + dev_err(apusys->dev, "Failed set ipu_if mux\n"); + goto err_clk; + } + + /* The ipu_if clock is gatting by HW. Only enable once. */ + if (!__clk_is_enabled(pd->clk_top_ipu_if)) { + ret = clk_prepare_enable(pd->clk_top_ipu_if); + if (ret) { + dev_err(apusys->dev, "Failed enable ipu_if\n"); + goto err_clk; + } + } + } else { + ret = clk_bulk_prepare_enable(pd->num_clks, pd->clks); + if (ret) + goto err_clk; + } + + regmap_set_bits(apusys->scpsys, + pd->data->topd->spm_cross_wake_m01, WAKEUP_APU); + + ret = regmap_read_poll_timeout(apusys->scpsys, + pd->data->topd->spm_other_pwr, + tmp, (tmp & PWR_STATUS) == PWR_STATUS, + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); + if (ret < 0) { + dev_err(apusys->dev, "apu top on wait SPM PWR_ACK != 0\n"); + goto err_clk; + } + + ret = regmap_read_poll_timeout(apusys->rpc, + pd->data->topd->rpc_top_intf_pwr_rdy, + tmp, (tmp & PWR0_RDY) == PWR0_RDY, + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); + if (ret < 0) { + dev_err(apusys->dev, "apu top on wait RPC PWR_RDY != 0\n"); + goto err_clk; + } + + if (apusys->vcore) + regmap_write(apusys->vcore, pd->data->topd->vcore_clr, CG_CLR); + + if (apusys->conn) + regmap_write(apusys->conn, pd->data->topd->conn_clr, CG_CLR); + + if (apusys->conn1) + regmap_write(apusys->conn1, pd->data->topd->conn1_clr, CG_CLR); + + return 0; + +err_clk: + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + clk_disable_unprepare(pd->clk_top_conn); + clk_disable_unprepare(pd->clk_top_ipu_if); + } else { + clk_bulk_disable_unprepare(pd->num_clks, pd->clks); + } + if (pd->domain_supply) + ret = regulator_disable(pd->domain_supply); +err_regulator: + if (apusys->vsram_supply) + ret = regulator_disable(apusys->vsram_supply); + + return ret; +} + +static int apu_top_power_off(struct generic_pm_domain *genpd) +{ + struct apu_domain *pd = to_apu_domain(genpd); + struct apusys *apusys = pd->apusys; + int ret, tmp; + + if (apusys->vcore) + regmap_write(apusys->vcore, pd->data->topd->vcore_clr, CG_CLR); + + if (apusys->conn) + regmap_write(apusys->conn, pd->data->topd->conn_clr, CG_CLR); + + if (apusys->conn1) + regmap_write(apusys->conn1, pd->data->topd->conn1_clr, CG_CLR); + + regmap_clear_bits(apusys->scpsys, + pd->data->topd->spm_cross_wake_m01, WAKEUP_APU); + + regmap_set_bits(apusys->rpc, pd->data->topd->rpc_top_con, SLEEP_REQ); + + ret = regmap_read_poll_timeout(apusys->rpc, + pd->data->topd->rpc_top_intf_pwr_rdy, + tmp, (tmp & PWR0_RDY) == 0x0, + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); + if (ret < 0) { + dev_err(apusys->dev, "apu top off wait RPC PWR_RDY != 0\n"); + return ret; + } + + ret = regmap_read_poll_timeout(apusys->scpsys, + pd->data->topd->spm_other_pwr, tmp, + (tmp & PWR_STATUS) == 0x0, + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); + if (ret < 0) { + dev_err(apusys->dev, "apu top off wait SPM PWR_ACK != 0\n"); + return ret; + } + + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + clk_disable_unprepare(pd->clk_top_conn); + ret = clk_set_parent(pd->clk_top_ipu_if, pd->clk_off); + if (ret) { + dev_err(apusys->dev, "Failed set ipu_if rate\n"); + return ret; + } + } else { + clk_bulk_disable_unprepare(pd->num_clks, pd->clks); + } + + regmap_set_bits(apusys->scpsys, + pd->data->topd->spm_ext_buck_iso, + pd->data->topd->spm_ext_buck_iso_mask); + + if (apusys->vsram_supply) { + ret = regulator_disable(apusys->vsram_supply); + if (ret < 0) + return ret; + } + + if (pd->domain_supply) { + ret = regulator_disable(pd->domain_supply); + if (ret < 0) + return ret; + } + + return 0; +} + +static struct generic_pm_domain *apu_add_one_domain(struct apusys *apusys, + struct device_node *node) +{ + const struct apu_domain_data *domain_data; + struct apu_domain *pd; + int ret; + u32 id; + + ret = of_property_read_u32(node, "reg", &id); + if (ret) { + dev_dbg(apusys->dev, "%pOF: invalid reg: %d\n", node, ret); + return ERR_PTR(-EINVAL); + } + + if (id >= apusys->data->num_domains) { + dev_dbg(apusys->dev, "%pOF: invalid id %d\n", node, id); + return ERR_PTR(-EINVAL); + } + + domain_data = &apusys->data->domains_data[id]; + + pd = devm_kzalloc(apusys->dev, sizeof(*pd), GFP_KERNEL); + if (!pd) + return ERR_PTR(-ENOMEM); + + pd->data = domain_data; + pd->apusys = apusys; + + pd->domain_supply = devm_regulator_get_optional(apusys->dev, "domain"); + if (IS_ERR(pd->domain_supply)) + pd->domain_supply = NULL; + + /* + * For HW using ipu_if, the clock is switched to 26M + * when power down top domain and switch to default clock rate + * before power on. + */ + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + pd->clk_top_conn = of_clk_get_by_name(node, "clk_top_conn"); + if (IS_ERR(pd->clk_top_conn)) { + dev_err(apusys->dev, "Fail to get clk_top_conn clock\n"); + ret = PTR_ERR(pd->clk_top_conn); + goto err_put_clocks; + } + + pd->clk_top_ipu_if = of_clk_get_by_name(node, "clk_top_ipu_if"); + if (IS_ERR(pd->clk_top_ipu_if)) { + dev_err(apusys->dev, "Fail to get clk_top_ipu_if clock\n"); + ret = PTR_ERR(pd->clk_top_ipu_if); + goto err_put_clocks; + } + + pd->clk_off = of_clk_get_by_name(node, "clk_off"); + if (IS_ERR(pd->clk_off)) { + dev_err(apusys->dev, "Fail to get clk_off clock\n"); + ret = PTR_ERR(pd->clk_off); + goto err_put_clocks; + } + + pd->clk_on_def = of_clk_get_by_name(node, "clk_on_default"); + if (IS_ERR(pd->clk_on_def)) { + dev_err(apusys->dev, "Fail to get clk_on_default clock\n"); + ret = PTR_ERR(pd->clk_on_def); + goto err_put_clocks; + } + } else { + ret = devm_clk_bulk_get_all(apusys->dev, &pd->clks); + if (ret < 0) { + dev_err(apusys->dev, "failed to get clocks %d\n", ret); + return ERR_PTR(ret); + } + pd->num_clks = ret; + } + + if (apusys->domains[id]) { + ret = -EINVAL; + dev_err(apusys->dev, "domain id %d already exists\n", id); + goto err_put_clocks; + } + + /* set rpc hw init status */ + ret = apu_top_init_hw(pd); + if (ret < 0) { + dev_dbg(apusys->dev, "top init fail ret = %d\n", ret); + goto err_put_clocks; + } + + if (!pd->data->name) + pd->genpd.name = node->name; + else + pd->genpd.name = pd->data->name; + pd->genpd.power_off = apu_top_power_off; + pd->genpd.power_on = apu_top_power_on; + + /* + * Initially turn on all domains to make the domains usable + * with !CONFIG_PM and to get the hardware in sync with the + * software. The unused domains will be switched off during + * late_init time. + */ + ret = pd->genpd.power_on(&pd->genpd); + if (ret < 0) { + dev_dbg(apusys->dev, "%pOF: power on domain fail: %d\n", + node, ret); + goto err_put_clocks; + } + + pm_genpd_init(&pd->genpd, NULL, false); + + apusys->domains[id] = &pd->genpd; + + return apusys->pd_data.domains[id]; + +err_put_clocks: + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + clk_put(pd->clk_top_conn); + clk_put(pd->clk_top_ipu_if); + clk_put(pd->clk_off); + clk_put(pd->clk_on_def); + } + return ERR_PTR(ret); +} + +static void apu_remove_one_domain(struct apu_domain *pd) +{ + int ret; + + if (pd->genpd.power_off) + pd->genpd.power_off(&pd->genpd); + + /* + * We're in the error cleanup already, so we only complain, + * but won't emit another error on top of the original one. + */ + ret = pm_genpd_remove(&pd->genpd); + if (ret < 0) + dev_dbg(pd->apusys->dev, + "Remove domain '%s' : %d - state may be inconsistent\n", + pd->genpd.name, ret); + + if (APU_PD_CAPS(pd, APU_PD_IPUIF_HW_CG)) { + clk_put(pd->clk_top_conn); + clk_put(pd->clk_top_ipu_if); + clk_put(pd->clk_off); + clk_put(pd->clk_on_def); + } +} + +static void apu_domain_cleanup(struct apusys *apusys) +{ + struct generic_pm_domain *genpd; + struct apu_domain *pd; + int i; + + for (i = apusys->pd_data.num_domains - 1; i >= 0; i--) { + genpd = apusys->pd_data.domains[i]; + if (genpd) { + pd = to_apu_domain(genpd); + apu_remove_one_domain(pd); + } + } +} + +static const struct of_device_id apu_pm_of_match[] = { + { + .compatible = "mediatek,mt8192-apu-pm", + .data = &mt8192_apu_pm_data, + }, + { } +}; + +static int apu_pm_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct device_node *np = dev->of_node; + struct genpd_onecell_data *pd_data; + const struct apu_pm_data *data; + struct device_node *node; + struct apusys *apusys; + int ret; + + data = of_device_get_match_data(&pdev->dev); + if (!data) { + dev_dbg(&pdev->dev, "no power domain data\n"); + return -EINVAL; + } + + apusys = devm_kzalloc(dev, + struct_size(apusys, domains, data->num_domains), + GFP_KERNEL); + if (!apusys) + return -ENOMEM; + + apusys->dev = dev; + apusys->data = data; + apusys->pd_data.domains = apusys->domains; + apusys->pd_data.num_domains = data->num_domains; + + apusys->vsram_supply = devm_regulator_get_optional(dev, "vsram"); + if (IS_ERR(apusys->vsram_supply)) { + ret = PTR_ERR(apusys->vsram_supply); + if (ret != -EPROBE_DEFER) { + dev_err(dev, "vsram_supply fail, ret=%d", ret); + apusys->vsram_supply = NULL; + } + return ret; + } + + /* rpc */ + apusys->rpc = syscon_node_to_regmap(np); + if (IS_ERR(apusys->rpc)) { + dev_err(dev, "Unable to get rpc\n"); + return PTR_ERR(apusys->rpc); + } + + /* scpsys */ + apusys->scpsys = syscon_regmap_lookup_by_phandle(np, "mediatek,scpsys"); + if (IS_ERR(apusys->scpsys)) { + dev_err(dev, "Unable to get scpsys\n"); + return PTR_ERR(apusys->scpsys); + } + + /* apusys conn */ + apusys->conn = syscon_regmap_lookup_by_phandle_optional(np, "mediatek,apu_conn"); + if (IS_ERR(apusys->conn)) + dev_info(dev, "No optional phandle apu_conn\n"); + + /* apusys conn1 */ + apusys->conn1 = syscon_regmap_lookup_by_phandle_optional(np, "mediatek,apu_conn1"); + if (IS_ERR(apusys->conn1)) + dev_info(dev, "No optional phandle apu_conn1\n"); + + /* apusys vcore */ + apusys->vcore = syscon_regmap_lookup_by_phandle_optional(np, "mediatek,apu_vcore"); + if (IS_ERR(apusys->vcore)) + dev_info(dev, "No optional phandle apu_vcore\n"); + + for_each_available_child_of_node(np, node) { + struct generic_pm_domain *domain; + + domain = apu_add_one_domain(apusys, node); + if (IS_ERR(domain)) { + ret = PTR_ERR(domain); + of_node_put(node); + goto err_cleanup_domains; + } + } + + ret = of_genpd_add_provider_onecell(np, &apusys->pd_data); + if (ret) { + dev_dbg(dev, "failed to add provider: %d\n", ret); + goto err_cleanup_domains; + } + + pd_data = &apusys->pd_data; + + return 0; + +err_cleanup_domains: + apu_domain_cleanup(apusys); + return ret; +} + +static struct platform_driver apu_pm_driver = { + .probe = apu_pm_probe, + .driver = { + .name = "mtk-apu-pm", + .suppress_bind_attrs = true, + .of_match_table = apu_pm_of_match, + }, +}; +builtin_platform_driver(apu_pm_driver); + From patchwork Wed Apr 7 03:28:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186699 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60135C433B4 for ; Wed, 7 Apr 2021 03:41:29 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 ECEF86139E for ; Wed, 7 Apr 2021 03:41:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ECEF86139E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=WuYm8mkjY84PY3ONK7Q67jCaH8haJ0xehcj43Zvmhb0=; b=j0cFICcsVjSDwX6Ce3FEppZcD Nz4yNX0FNfv9zJLgQjGHgHbUzBbiRGboNutujmiS8uCq1DMkPFm3yyXAsZ4tPLIpK3O7VsTmSCZkN FGFISEz3A1QdOFTEeI/fvCmPfTAb4GRkKF+fhjmuE0IakTvQzWy2DohLqiHZAYJ9lv2DCpq1O5veF xLL5ff+0oKcTmdtO/TsMcB7JkfoYegx+KzKpffx1AJiZqBVnyWzuykNzg5EBpoPbmxTY6Snq4TXif XtIX3Y1aAi+Tc6Uc8hsrVzKA8jgiCISuNU5W0K7lbV90vUeKNdWhouDE4k0gl5x7TLBwSCWMGbXFj vn468e6fw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTz2b-003yKn-Lu; Wed, 07 Apr 2021 03:39:41 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTz1w-003yA9-Qv; Wed, 07 Apr 2021 03:39:06 +0000 X-UUID: 5b46f1cbe1f346049b7fc89e656da521-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=kKyBc5gfs+y08oRuu/JOon9e/1pqySWAEnnoM1STwvM=; b=PKsKV9dfTvwuz0NVrZ0G8iUMoLIrEdm2GtxFdPIbnyY1yFfvEaSnr3xSFdsgATexY+L1Ovyx9dhQvWM7OWMGqU9vpqyJofzA+WvplsEciF8inSWSCFT6HDF6TTLMkpDD4RY3A71aefgJryBOOdPSNL1YN9XSL4jg3SikFeHOoIk=; X-UUID: 5b46f1cbe1f346049b7fc89e656da521-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 340712043; Tue, 06 Apr 2021 20:38:58 -0700 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:28:59 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:57 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:57 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 7/8] arm64: dts: mt8192: Add APU node Date: Wed, 7 Apr 2021 11:28:05 +0800 Message-ID: <1617766086-5502-8-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-TM-SNTS-SMTP: A8AC9FC2B7FFA2EDBDD031EF16C6BDAD910EB044BD7A6C5ECA00AFBB50D6BC392000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043901_501628_0A30D9DB X-CRM114-Status: GOOD ( 10.10 ) 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 Add APU node to MT8192. Signed-off-by: Flora Fu --- arch/arm64/boot/dts/mediatek/mt8192.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8192.dtsi b/arch/arm64/boot/dts/mediatek/mt8192.dtsi index eb17274c3719..b1467ccbe5aa 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192.dtsi @@ -1016,6 +1016,23 @@ #clock-cells = <1>; }; + apu_mbox: apu_mbox@19000000 { + compatible = "mediatek,mt8192-apu_mbox", "syscon"; + reg = <0 0x19000000 0 0x1000>; + }; + + apu_conn: apu_conn@19020000 { + compatible = "mediatek,mt8192-apu_conn", "syscon"; + reg = <0 0x19020000 0 0x1000>; + #clock-cells = <1>; + }; + + apu_vcore: apu_vcore@19029000 { + compatible = "mediatek,mt8192-apu_vcore", "syscon"; + reg = <0 0x19029000 0 0x1000>; + #clock-cells = <1>; + }; + larb13: larb@1a001000 { compatible = "mediatek,mt8192-smi-larb"; reg = <0 0x1a001000 0 0x1000>; From patchwork Wed Apr 7 03:28:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flora Fu X-Patchwork-Id: 12186693 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 622B9C433ED for ; Wed, 7 Apr 2021 03:38:12 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 F0B4C61041 for ; Wed, 7 Apr 2021 03:38:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F0B4C61041 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=qiDX663MSqBTu5ZRs8XAACf4nJDo2OewEX4+Uf1Iv6A=; b=e0cMNhSbyuMozD5llfBc7waDc prUjb23w1f7hlbDQfo4TJUI69f4yTYgpFRQOGId8YDjV/jzjjbZSXLrag+Y9EyFGA84TWqnCKSiay 8MFSnwn21jGCigWExqiGK5EB8t7wUCF2Eu0grwNwRPy4qHqDqXVWwXqZKJ9fkLKg4cpD8ljoAa/eU Opsvc9HDFr19izIMXOF9lMqzUibbcQg+FBBblN5W6uU5wb3mnA08b99TgJCoG7kITYvmXx1r/bnlX hmOxe2uxcpaaMsOfNf6oSa59us8xsfbL7A70hsVDHgcg5h6CFSr0+P9ANCWKBXwzkNLzGNpsW92a7 xRNSyWUYg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzQ-003xYe-LQ; Wed, 07 Apr 2021 03:36:24 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lTyzC-003xVD-NG; Wed, 07 Apr 2021 03:36:13 +0000 X-UUID: fa75ab90f48f4d8fb42e7539102e9e54-20210406 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZYW7jMSCumQI7gAuhFPLbvlMWQ2oJ0DpIFk67ufHqmU=; b=FDWnuTiYiUt2khIt+o0+i00Um4bxV3K4SE0diRVq8va4jZdX/ysck2enX3jOAeCihw8F/9zbpQ5wz/xaXtk53KB7xnbkQhKavpC8xK3OSHo/NT7cjz1zSDj3W/WITA4vXKDEiw8PSao0V7KPMl5zOoWKMsQl29idll7YDD3Lo9E=; X-UUID: fa75ab90f48f4d8fb42e7539102e9e54-20210406 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1289695108; Tue, 06 Apr 2021 20:36:02 -0700 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Apr 2021 20:29:05 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 7 Apr 2021 11:28:58 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 7 Apr 2021 11:28:58 +0800 From: Flora Fu To: Rob Herring , Matthias Brugger , Michael Turquette , Stephen Boyd , Liam Girdwood , "Mark Brown" CC: Flora Fu , Pi-Cheng Chen , Chiawen Lee , Chun-Jie Chen , , , , , Subject: [PATCH 8/8] arm64: dts: mt8192: Add APU power domain node Date: Wed, 7 Apr 2021 11:28:06 +0800 Message-ID: <1617766086-5502-9-git-send-email-flora.fu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> References: <1617766086-5502-1-git-send-email-flora.fu@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_043611_265730_D77C4D4C X-CRM114-Status: GOOD ( 12.17 ) 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 Add APU power domain node to MT8192. Signed-off-by: Flora Fu --- arch/arm64/boot/dts/mediatek/mt8192-evb.dts | 7 +++++ arch/arm64/boot/dts/mediatek/mt8192.dtsi | 29 +++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8192-evb.dts b/arch/arm64/boot/dts/mediatek/mt8192-evb.dts index 1769f3a9b510..9e89efb3dc8a 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192-evb.dts +++ b/arch/arm64/boot/dts/mediatek/mt8192-evb.dts @@ -65,3 +65,10 @@ &mt6359_vrf12_ldo_reg { regulator-always-on; }; + +&apuspm { + vsram-supply = <&mt6359_vsram_md_ldo_reg>; + power-domain@MT8192_POWER_DOMAIN_APUSYS_TOP { + domain-supply = <&mt6359_vproc1_buck_reg>; + }; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8192.dtsi b/arch/arm64/boot/dts/mediatek/mt8192.dtsi index b1467ccbe5aa..546c058ef560 100644 --- a/arch/arm64/boot/dts/mediatek/mt8192.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8192.dtsi @@ -11,6 +11,7 @@ #include #include #include +#include / { compatible = "mediatek,mt8192"; @@ -1033,6 +1034,34 @@ #clock-cells = <1>; }; + apuspm: power-domain@190f0000 { + compatible = "mediatek,mt8192-apu-pm", "syscon"; + reg = <0 0x190f0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + #power-domain-cells = <1>; + mediatek,scpsys = <&scpsys>; + mediatek,apu_conn = <&apu_conn>; + mediatek,apu_vcore = <&apu_vcore>; + + power-domain@MT8192_POWER_DOMAIN_APUSYS_TOP { + reg = ; + #power-domain-cells = <0>; + clocks = <&topckgen CLK_TOP_DSP_SEL>, + <&topckgen CLK_TOP_IPU_IF_SEL>, + <&clk26m>, + <&topckgen CLK_TOP_UNIVPLL_D6_D2>; + clock-names = "clk_top_conn", + "clk_top_ipu_if", + "clk_off", + "clk_on_default"; + assigned-clocks = <&topckgen CLK_TOP_DSP_SEL>, + <&topckgen CLK_TOP_IPU_IF_SEL>; + assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, + <&topckgen CLK_TOP_UNIVPLL_D6_D2>; + }; + }; + larb13: larb@1a001000 { compatible = "mediatek,mt8192-smi-larb"; reg = <0 0x1a001000 0 0x1000>;