From mboxrd@z Thu Jan 1 00:00:00 1970 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 6D766C54E64 for ; Tue, 26 Mar 2024 02:11:35 +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:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tIwNqZv0Wly7uMhAHmqEtD3NbHsBFVQ1vnctPvxnvDw=; b=f2lmJQnKuKugzT jydCfDtnP3rRn3Ie3+t9o5Gv1KPei0Ib+wyAd37bEB0vGbUHCXiAdQB9gqRSwk8p6SX41YyDWlU1P FzgVRfx2KkxatVzb84WU8lGHLFZ/MCRmMQ2qvLFF2YsXnY7zbWCVz+RHJXOrISw8ZwvCWYm/79cW2 zLZEnTApWNL86F2fksVxIvQqZLJW80TDMVEDJFrIK2JggfiskTKy6r+yQeVsuv2Sop0kYZ1dEjjaM nxsoeZlt4YIam/mzAEr+Y6Iz0JTHBZVrzCSS+3rxVHmJnqb4pqMBXr1Auz+/YzjWiviGKBDHMqA9l FZ5J1NHDIlVgwvMN4vFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rowHU-00000002jXk-2oSU; Tue, 26 Mar 2024 02:11:16 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rowHM-00000002jWq-3zkH; Tue, 26 Mar 2024 02:11:14 +0000 X-UUID: 185210deeb1611ee96d5dfc950b7243d-20240325 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=cospy1QecdJlORL88wK3JzcSwikijLYvkIHoPtIwv0c=; b=Z6oXaauU/prCF4moNVYAuIJc0NWYozfLjt+CWsAmAcw3cid+Pnc7wxX39M2K6Fr4fG6YujMNvtNbbaaYzV+vzVdh9vH3qNkulew+7RThD1C8VFhYihGRv2xYdJt+JCImnzhJbocbCSEJTq06wfkW6DMRRVvNF+K1gUAaZRkZy8M=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.37,REQID:cc548c3e-5bc6-413b-9837-a1885f345ca4,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6f543d0,CLOUDID:84a76d85-8d4f-477b-89d2-1e3bdbef96d1,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1, SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 185210deeb1611ee96d5dfc950b7243d-20240325 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 2137495252; Mon, 25 Mar 2024 19:11:02 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Tue, 26 Mar 2024 10:00:59 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Tue, 26 Mar 2024 10:00:59 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i2Wmyuqps13Ah+d0MaqGr1hd3A8xLIRr/g7JHCIa+Lad3WJq953CfHQSC2VLOkUMnnDjK+NG4fMYilBCZr5JcARjWSkMZS20o21ymbs6LRQNyqk2ivVGg6bPzT81fSd+vQa7h61WQmfQW9PsfuJXlc5ACWbb1hJuF9UWwlI/6wvYXjYdM+6UGh0wW1tBMHIh9aWz0wdtKgPOxqziTAPgFXpMft/N0GFWCn/6qpDovQIi1Y5kSrITFSsHbR3Lj+SLNJQVCehkysBvXHR3Zk8YCqxTfZWCzdJEOsIAewePxazHi+0YHS5OD/7mggejODFe96gIhMsl0pP6i7ihQqEXVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cospy1QecdJlORL88wK3JzcSwikijLYvkIHoPtIwv0c=; b=aO/w2HPCfa7u35BCYj3ePHnUjM+MGJtTtPjW6u0HBJf3N4KgjciI3gna5Sga5Q8tx6J3fnQkWOC6lHIqaoIHEnq3Aj1hGa3sKxrNEkxO5iczeznFZnMXHL7lD9hunR9x50IbuQbY203Zb+AUPzgrCHazEX1hueskqUTVchjfeh0dwCFyk4EXRU9cPnKYXigZiMba6M5u0mORBk6mZc5RgI+KI1hmEB6at96EoJPR3oFNtLMC8cOC/s6XAu1LUEcQmlRY6VKuZyKrn4MhaIjHqLFQen+bRsngJtwTsVDznDTB0nmVMMrHKI/gZX6z4Mq/21ePyUhsO2wDho0g0cJfvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cospy1QecdJlORL88wK3JzcSwikijLYvkIHoPtIwv0c=; b=UQtwumJL08ha0kW5Af7mEduWPzpzEsrjSUE3UQK5oawapde3G/JUypmfvytJCIxv3kZwgCrithZuK0iJAhNTH51DGYzRW9EFVylVXLFOjJZRcAeya+vJaBSpFiZ/6Vuke0YmynVYpBeeLiXMM1l5hBf5oDHAXAQgKvZRVM69WEA= Received: from KL1PR03MB7366.apcprd03.prod.outlook.com (2603:1096:820:ea::9) by SEYPR03MB7663.apcprd03.prod.outlook.com (2603:1096:101:139::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.32; Tue, 26 Mar 2024 02:00:56 +0000 Received: from KL1PR03MB7366.apcprd03.prod.outlook.com ([fe80::5b3e:6643:14ad:cee7]) by KL1PR03MB7366.apcprd03.prod.outlook.com ([fe80::5b3e:6643:14ad:cee7%7]) with mapi id 15.20.7409.031; Tue, 26 Mar 2024 02:00:56 +0000 From: =?utf-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= To: "ulf.hansson@linaro.org" , "matthias.bgg@gmail.com" , "angelogioacchino.delregno@collabora.com" CC: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "linux-pm@vger.kernel.org" , =?utf-8?B?TWFuZHlKSCBMaXUgKOWKieS6uuWDlik=?= , Project_Global_Chrome_Upstream_Group , =?utf-8?B?WGl1ZmVuZyBMaSAo5p2O56eA5bOwKQ==?= , "linux-arm-kernel@lists.infradead.org" , =?utf-8?B?RmFuIENoZW4gKOmZs+WHoSk=?= Subject: Re: [PATCH 2/2] soc: mediatek: pm-domains: support smi clamp protection Thread-Topic: [PATCH 2/2] soc: mediatek: pm-domains: support smi clamp protection Thread-Index: AQHafq7L9qEImjjsEkOwyNX0o5w6YrFIbPEAgADYkYA= Date: Tue, 26 Mar 2024 02:00:56 +0000 Message-ID: References: <20240325121908.3958-1-yu-chang.lee@mediatek.com> <20240325121908.3958-3-yu-chang.lee@mediatek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: KL1PR03MB7366:EE_|SEYPR03MB7663:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3XIDboHkOxzOduKlsG8PTL/QcQ9UNipCJG4EVmgGofDrRhiQMN8KcN1/+QWkJFWhn7LKQ7oPHJ/QHYIiM5fsJ9K/WxDDG0MAOElf6hfy2x9skPMy0aa60KSJ/6WLoeUvf7G8DiV3p8nQnQQxJkiuqvIgW/3AI/WmKLGSon1quU0ukEc568zBnjQzS25E3sUHpBEkcKcgRjJK6MNvssQwtAsC+PfzHuHeIvn3ffeoCAdY6K6k0BL113RTwZqTACGNzphzbOe956sg1H/fcAa/8qgvNJ14lPP0HlVbDLBfdXphS+/Xy17fHHy1WWiPQ8SCrKkF2spxCoD/KB/MgLU9WhFA4dYcWsd7cpiZweNj8Hi+54A6pD7u4yyN4LCZn5znoNV749MU5O7iY0zjjqqRhQVukO1nl9d4IA4DUv3qPd9MmSOhy5tvD/qPvuIqjx0Nx4f6FAmbPpdwPtFex760jKILhSJXrHj82aZZmWpxUG201R/sxNifRv3IQ7fkM0lBecImJvKvSKbjzN8JHxh3kk/2sPq0UnG9+405RPAkDXgy5hXk8yp7jaoIJHW++AV/fROgmUSet+Bbio1Af+4rt67QULqMWNdJoNEtAOXZq9EtaRY0qvJSk9gX7MKOAgtu94kKCzqSu7hXgRhZjpd1C2EMBpKrpkIsiwfCI5Leo4w= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR03MB7366.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDVINTBZRnJCUzVWU1RqV2tkVjQ0RGhIcU1HY2lwQ3Mwdkxqd214RDVmZ3FX?= =?utf-8?B?Z3RMUVE4MHRVOGo0RUVrVHIxZWtaWVl3TXNGdDFUVTgzNGtlT09WZ3NvSlFn?= =?utf-8?B?NXl1aEx1OTJkOUMyL1hkQzE4UkE0UEhqMm11bWJES1NIL1ZMZkpYNXl1ZDR2?= =?utf-8?B?c09pWGF0NUxkM3hVM3F2dk9OMTYvdlZEbVdwdXM3MGJEY0w2M25idDYrUy9o?= =?utf-8?B?MGZQUm1jald1dkhVMHdKNjJNanVMbnR2d3VQTkViSWpsZVVXVE5yMWkxYUxa?= =?utf-8?B?a0hPaU5uQitNdDl4MW5qUk1pWldjZFlYbGd1b0s3d0ZSdUdUN1BZM0dqUkE3?= =?utf-8?B?bGt1UlpJOE9kdkw3T1A2Q3lxNWtkc2lYWmF1SGEvM2ViTzlOQllBRTNKSE1U?= =?utf-8?B?UlR0b0VJUy9CbmdQRXh6UDlPV0ZiS040aWtKWWEzUmpmTHo5YzBHZ2x1cGEr?= =?utf-8?B?ZUp0Qys1MS80SE10TFAyU3owZjNhTGJidkRtR1dUbjlqR1cvUmJ1eFhKTDgr?= =?utf-8?B?OE9lb203UjhLMDV6WlB3dWQ0SVZpRW9Wb1ErUS9TZk91am5hcVZ4Q2pYM0JV?= =?utf-8?B?dGo2eEJvbjdjc01JaGtXU2lSUnRTaXJWUVhsRmhrQ0VzNTAzWW1CTGZ4Vkt3?= =?utf-8?B?YzdUTWlLZllUYTdwUkoxbUs5V1ZCcUlmWFFZejV5eUV0cjE2aEFQa3pnWXFO?= =?utf-8?B?SVF2bERaVHYvV0dXMXFrSVV0a01hcnNRU1dLZncrYnlwZ2JWZ1NUek0yNTlB?= =?utf-8?B?MVQ1ZkRnc2c0a2QveXZvdE5wenpwREdYNnlwSW9ncW5rUStFYVJ5ajRnczBN?= =?utf-8?B?b0FndCtGbllvZTBUUUhKK1VkMExFbmJ2MXNhTkpvSmJxRGg4Ri9ydTYrVG5i?= =?utf-8?B?NUNJTDRhRjdhRHpoQThhSzRrZ3dndFVabUpBOUR1cyt5UVpEN2FnQ0RtRnEz?= =?utf-8?B?UnlVekN5U3MvVy9MT0FmVnNGWkM1Si9KNlVyQUNmWGY0QW1pYnZpRmZSZE9L?= =?utf-8?B?UGk3Z0dwME9IYkNjdFV6dlFoeEZkT05EaVJvZ1paQ3dCMCtIQlM1ei9RYTZR?= =?utf-8?B?Mk42OE9xSzR0aXhJdGk3VmkvMldZQWlqNE11VGJFclNOdWdvZmxBQjhxVGw3?= =?utf-8?B?aUEySFFmKzUzVWJLSjdPR2JmMDVLNHRIS0tCOE9ia2hUSkxpZ0JQcGpiYk1z?= =?utf-8?B?YzdFQUxCTFNrWlVXaHpUN3FuUTZxZVo2V28yajNtL2tJa3dRUzAvM203UnBk?= =?utf-8?B?SkY1ZkMrakRyUHRubDRSN20yL1JGWDZKaGtpWUtldVA3K3dLZVZLZU9xT1ph?= =?utf-8?B?SVhLcDlhQWo4RGJZT2VQazFYQU5qamE0VXJCdElIcCttd0VRVWtobkxrZ0Vk?= =?utf-8?B?c0RCV1hWSkxrazdLTTArT3YzbVErUjN0S1BrQWdhdU8wWXI5b01XYVpiWUJu?= =?utf-8?B?VzA5VHAwcFFobzQ4Y09yNjI3Z0pValJTRDlBTnVxSUVldmthcWJtaWRMR2RD?= =?utf-8?B?ZS9nQnc4Q2NlU3o0cHpocnM2djZoWDFGQ1l5Y2o5anRPMmNscmJtVkovMEtL?= =?utf-8?B?MXhJd2lLU0s3Nlg2SEhkM21MODNsWFVac210QlVMTm5GYzNxUytCdkZ3R2RT?= =?utf-8?B?U2lUeFNIL0xySkxOWU8xNFg2K3hmT3RIK2kzVUo3bEtIZS8zKzNINUM4cTMv?= =?utf-8?B?NCt6MzhXeTRqWmJCbkJSVGFvZ1kySk5TREVNT2IyVEtkSW1IRThGTHNpNG5Q?= =?utf-8?B?OFhvYTVQb0ZHNGNuL3lOU2tRU2gxaDVlNm5yM05VWFVsSzU2SHoydURERGtm?= =?utf-8?B?UkJQS2ZXQy9FTms1WXRmN0YzVzRXN2ZjVmU3WFFzNTNZazJTdG9lL1RpL1JQ?= =?utf-8?B?UzRwSHdraHRQczZVRG5vMkJpUzhLTWF1eHNrbDJlYmc0QU93L3V1QXlnSUtj?= =?utf-8?B?dkFYeTJ4cG1DSHE2MU1jbHh0WTB5eFlEZmdPMzRlSnlqUUJ5QXVoc25TWTI2?= =?utf-8?B?RHhGaTh5TXVlYjFTVWovUkQ4b0VFN0NnZkxab2tXcFFJSWloSW55NmFOMDVo?= =?utf-8?B?YlJ0dERGbm5td0Z1MGRLMklqT2pRT3poWFZ5T3p2V2JRQys3Rk5yQUhNMWVT?= =?utf-8?B?c3BUdWJrL2Z1R0s3U2dkQ2FsZytaNFVUNmg3eGFtTXFLMGpEMkxINWErZnhF?= =?utf-8?B?SHc9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: KL1PR03MB7366.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a52c5cf3-4702-4654-2452-08dc4d38931b X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2024 02:00:56.1064 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WUnZMgvTukThdMQETbYmfbWEVg1GyhSn4wZiNsUgDprOo5sVRk808gPblK+knYt1lrj7AlgXHv8RL+m3GVBIMlknzmYlo5oudT4M7LuUIXw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR03MB7663 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--22.932500-8.000000 X-TMASE-MatchedRID: c/HXCguHooHUL3YCMmnG4t7SWiiWSV/1YefZ7F9kLgsNcckEPxfz2OLB DcjMHcx7UmsNbSHn8eDxtGv8tjTwDg+/n/431GMSh2VzUlo4HVNKPIx+MJF9o99RlPzeVuQQ3oz JRX7b4Nnbd7qBrTlNp7y36/a6dIh81g7G5VLnDf73yyqfyQre4Q48ME9K+hF0q8z7POX8FJOa1x DavWicTLDaeSzaA/pBH1GIF/ppwof7JRM8lnRNU7xygpRxo469MVx/3ZYby7+gtbAbUC6MPvFoO DtDoX2QmCgFboNAgxCRk6XtYogiatLvsKjhs0ldVnRXm1iHN1bEQdG7H66TyBVBSZtgeh/R X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--22.932500-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 3094C53CCFA689D7E1269C5C8679B9C01918CBE6D2B8AEBB6216C5109185405F2000:8 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240325_191113_482330_A15C1E95 X-CRM114-Status: GOOD ( 14.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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, 2024-03-25 at 14:05 +0100, AngeloGioacchino Del Regno wrote: > Il 25/03/24 13:19, yu-chang.lee ha scritto: > > In order to avoid power glitch, this patch use smi clamp > > to disable/enable smi common port. > > > > Signed-off-by: yu-chang.lee > > --- > > drivers/pmdomain/mediatek/mt8188-pm-domains.h | 41 ++++- > > drivers/pmdomain/mediatek/mtk-pm-domains.c | 147 > > ++++++++++++++---- > > drivers/pmdomain/mediatek/mtk-pm-domains.h | 1 + > > 3 files changed, 156 insertions(+), 33 deletions(-) > > > > diff --git a/drivers/pmdomain/mediatek/mt8188-pm-domains.h > > b/drivers/pmdomain/mediatek/mt8188-pm-domains.h > > index 7bbba4d56a77..39f057dca92c 100644 > > --- a/drivers/pmdomain/mediatek/mt8188-pm-domains.h > > +++ b/drivers/pmdomain/mediatek/mt8188-pm-domains.h > > @@ -573,6 +573,18 @@ static const struct scpsys_domain_data > > scpsys_domain_data_mt8188[] = { > > .pwr_sta2nd_offs = 0x170, > > .sram_pdn_bits = BIT(8), > > .sram_pdn_ack_bits = BIT(12), > > + .bp_cfg = { > > + BUS_PROT_WR(SMI, > > + MT8188_SMI_COMMON_SMI_CLAMP_DIP_TO_ > > VDO0, > > + MT8188_SMI_COMMON_CLAMP_EN_SET, > > + MT8188_SMI_COMMON_CLAMP_EN_CLR, > > + MT8188_SMI_COMMON_CLAMP_EN_STA), > > + BUS_PROT_WR(SMI, > > + MT8188_SMI_COMMON_SMI_CLAMP_DIP_TO_ > > VPP1, > > + MT8188_SMI_COMMON_CLAMP_EN_SET, > > + MT8188_SMI_COMMON_CLAMP_EN_CLR, > > + MT8188_SMI_COMMON_CLAMP_EN_STA), > > + }, > > .reset_smi = { > > SMI_RESET_WR(MT8188_SMI_LARB10_RESET, > > MT8188_SMI_LARB10_RESET_ADDR), > > @@ -585,7 +597,7 @@ static const struct scpsys_domain_data > > scpsys_domain_data_mt8188[] = { > > SMI_RESET_WR(MT8188_SMI_LARB15_RESET, > > MT8188_SMI_LARB15_RESET_ADDR), > > }, > > - .caps = MTK_SCPD_KEEP_DEFAULT_OFF, > > + .caps = MTK_SCPD_KEEP_DEFAULT_OFF | > > MTK_SCPD_CLAMP_PROTECTION, > > }, > > [MT8188_POWER_DOMAIN_IPE] = { > > .name = "ipe", > > @@ -595,11 +607,18 @@ static const struct scpsys_domain_data > > scpsys_domain_data_mt8188[] = { > > .pwr_sta2nd_offs = 0x170, > > .sram_pdn_bits = BIT(8), > > .sram_pdn_ack_bits = BIT(12), > > + .bp_cfg = { > > + BUS_PROT_WR(SMI, > > + MT8188_SMI_COMMON_SMI_CLAMP_IPE_TO_ > > VPP1, > > + MT8188_SMI_COMMON_CLAMP_EN_SET, > > + MT8188_SMI_COMMON_CLAMP_EN_CLR, > > + MT8188_SMI_COMMON_CLAMP_EN_STA), > > + }, > > .reset_smi = { > > SMI_RESET_WR(MT8188_SMI_LARB12_RESET, > > MT8188_SMI_LARB12_RESET_ADDR), > > }, > > - .caps = MTK_SCPD_KEEP_DEFAULT_OFF, > > + .caps = MTK_SCPD_KEEP_DEFAULT_OFF | > > MTK_SCPD_CLAMP_PROTECTION, > > }, > > [MT8188_POWER_DOMAIN_CAM_VCORE] = { > > .name = "cam_vcore", > > @@ -676,13 +695,20 @@ static const struct scpsys_domain_data > > scpsys_domain_data_mt8188[] = { > > .pwr_sta2nd_offs = 0x170, > > .sram_pdn_bits = BIT(8), > > .sram_pdn_ack_bits = BIT(12), > > + .bp_cfg = { > > + BUS_PROT_WR(SMI, > > + MT8188_SMI_COMMON_SMI_CLAMP_IPE_TO_ > > VPP1, > > + MT8188_SMI_COMMON_CLAMP_EN_SET, > > + MT8188_SMI_COMMON_CLAMP_EN_CLR, > > + MT8188_SMI_COMMON_CLAMP_EN_STA), > > + }, > > .reset_smi = { > > SMI_RESET_WR(MT8188_SMI_LARB16A_RESET, > > MT8188_SMI_LARB16A_RESET_ADDR), > > SMI_RESET_WR(MT8188_SMI_LARB17A_RESET, > > MT8188_SMI_LARB17A_RESET_ADDR), > > }, > > - .caps = MTK_SCPD_KEEP_DEFAULT_OFF, > > + .caps = MTK_SCPD_KEEP_DEFAULT_OFF | > > MTK_SCPD_CLAMP_PROTECTION, > > }, > > [MT8188_POWER_DOMAIN_CAM_SUBB] = { > > .name = "cam_subb", > > @@ -692,13 +718,20 @@ static const struct scpsys_domain_data > > scpsys_domain_data_mt8188[] = { > > .pwr_sta2nd_offs = 0x170, > > .sram_pdn_bits = BIT(8), > > .sram_pdn_ack_bits = BIT(12), > > + .bp_cfg = { > > + BUS_PROT_WR(SMI, > > + MT8188_SMI_COMMON_SMI_CLAMP_CAM_SUB > > B_TO_VDO0, > > + MT8188_SMI_COMMON_CLAMP_EN_SET, > > + MT8188_SMI_COMMON_CLAMP_EN_CLR, > > + MT8188_SMI_COMMON_CLAMP_EN_STA), > > + }, > > .reset_smi = { > > SMI_RESET_WR(MT8188_SMI_LARB16B_RESET, > > MT8188_SMI_LARB16B_RESET_ADDR), > > SMI_RESET_WR(MT8188_SMI_LARB17B_RESET, > > MT8188_SMI_LARB17B_RESET_ADDR), > > }, > > - .caps = MTK_SCPD_KEEP_DEFAULT_OFF, > > + .caps = MTK_SCPD_KEEP_DEFAULT_OFF | > > MTK_SCPD_CLAMP_PROTECTION, > > }, > > }; > > > > diff --git a/drivers/pmdomain/mediatek/mtk-pm-domains.c > > b/drivers/pmdomain/mediatek/mtk-pm-domains.c > > index 9ab6fa105c8c..3c797e136c0e 100644 > > --- a/drivers/pmdomain/mediatek/mtk-pm-domains.c > > +++ b/drivers/pmdomain/mediatek/mtk-pm-domains.c > > @@ -47,9 +47,10 @@ struct scpsys_domain { > > struct clk_bulk_data *subsys_clks; > > struct regmap *infracfg_nao; > > struct regmap *infracfg; > > - struct regmap *smi; > > + struct regmap **smi; > > struct regmap **larb; > > int num_larb; > > + int num_smi; > > struct regulator *supply; > > }; > > > > @@ -122,29 +123,19 @@ static int scpsys_sram_disable(struct > > scpsys_domain *pd) > > MTK_POLL_TIMEOUT); > > } > > > > -static struct regmap *scpsys_bus_protect_get_regmap(struct > > scpsys_domain *pd, > > - const struct > > scpsys_bus_prot_data *bpd) > > -{ > > - if (bpd->flags & BUS_PROT_COMPONENT_SMI) > > - return pd->smi; > > - else > > - return pd->infracfg; > > -} > > - > > static struct regmap *scpsys_bus_protect_get_sta_regmap(struct > > scpsys_domain *pd, > > const struct > > scpsys_bus_prot_data *bpd) > > { > > if (bpd->flags & BUS_PROT_STA_COMPONENT_INFRA_NAO) > > return pd->infracfg_nao; > > else > > - return scpsys_bus_protect_get_regmap(pd, bpd); > > + return pd->infracfg; > > } > > > > static int scpsys_bus_protect_clear(struct scpsys_domain *pd, > > - const struct scpsys_bus_prot_data > > *bpd) > > + const struct scpsys_bus_prot_data > > *bpd, > > + struct regmap *sta_regmap, > > struct regmap *regmap) > > { > > - struct regmap *sta_regmap = > > scpsys_bus_protect_get_sta_regmap(pd, bpd); > > - struct regmap *regmap = scpsys_bus_protect_get_regmap(pd, bpd); > > u32 sta_mask = bpd->bus_prot_sta_mask; > > u32 expected_ack; > > u32 val; > > @@ -165,10 +156,9 @@ static int scpsys_bus_protect_clear(struct > > scpsys_domain *pd, > > } > > > > static int scpsys_bus_protect_set(struct scpsys_domain *pd, > > - const struct scpsys_bus_prot_data > > *bpd) > > + const struct scpsys_bus_prot_data > > *bpd, > > + struct regmap *sta_regmap, struct > > regmap *regmap) > > { > > - struct regmap *sta_regmap = > > scpsys_bus_protect_get_sta_regmap(pd, bpd); > > - struct regmap *regmap = scpsys_bus_protect_get_regmap(pd, bpd); > > u32 sta_mask = bpd->bus_prot_sta_mask; > > u32 val; > > > > @@ -182,19 +172,32 @@ static int scpsys_bus_protect_set(struct > > scpsys_domain *pd, > > MTK_POLL_DELAY_US, > > MTK_POLL_TIMEOUT); > > } > > > > -static int scpsys_bus_protect_enable(struct scpsys_domain *pd) > > +static int _scpsys_clamp_bus_protection_enable(struct > > scpsys_domain *pd, bool is_smi) > > { > > + int smi_count = 0; > > + > > for (int i = 0; i < SPM_MAX_BUS_PROT_DATA; i++) { > > const struct scpsys_bus_prot_data *bpd = &pd->data- > > >bp_cfg[i]; > > + struct regmap *sta_regmap, *regmap; > > + bool is_smi = bpd->flags & BUS_PROT_COMPONENT_SMI; > > int ret; > > > > if (!bpd->bus_prot_set_clr_mask) > > break; > > > > + if (is_smi) { > > + sta_regmap = pd->smi[smi_count]; > > + regmap = pd->smi[smi_count]; > > + smi_count++; > > + } else { > > + sta_regmap = > > scpsys_bus_protect_get_sta_regmap(pd, bpd); > > + regmap = pd->infracfg; > > + } > > + > > if (bpd->flags & BUS_PROT_INVERTED) > > - ret = scpsys_bus_protect_clear(pd, bpd); > > + ret = scpsys_bus_protect_clear(pd, bpd, > > sta_regmap, regmap); > > else > > - ret = scpsys_bus_protect_set(pd, bpd); > > + ret = scpsys_bus_protect_set(pd, bpd, > > sta_regmap, regmap); > > if (ret) > > return ret; > > } > > @@ -202,19 +205,32 @@ static int scpsys_bus_protect_enable(struct > > scpsys_domain *pd) > > return 0; > > } > > > > -static int scpsys_bus_protect_disable(struct scpsys_domain *pd) > > +static int _scpsys_clamp_bus_protection_disable(struct > > scpsys_domain *pd, bool is_smi) > > { > > + int smi_count = pd->num_smi - 1; > > + > > for (int i = SPM_MAX_BUS_PROT_DATA - 1; i >= 0; i--) { > > const struct scpsys_bus_prot_data *bpd = &pd->data- > > >bp_cfg[i]; > > + struct regmap *sta_regmap, *regmap; > > + bool is_smi = bpd->flags & BUS_PROT_COMPONENT_SMI; > > int ret; > > > > if (!bpd->bus_prot_set_clr_mask) > > continue; > > > > + if (is_smi) { > > + sta_regmap = pd->smi[smi_count]; > > + regmap = pd->smi[smi_count]; > > + smi_count--; > > + } else { > > + sta_regmap = > > scpsys_bus_protect_get_sta_regmap(pd, bpd); > > + regmap = pd->infracfg; > > + } > > + > > if (bpd->flags & BUS_PROT_INVERTED) > > - ret = scpsys_bus_protect_set(pd, bpd); > > + ret = scpsys_bus_protect_set(pd, bpd, > > sta_regmap, regmap); > > else > > - ret = scpsys_bus_protect_clear(pd, bpd); > > + ret = scpsys_bus_protect_clear(pd, bpd, > > sta_regmap, regmap); > > if (ret) > > return ret; > > } > > @@ -222,6 +238,50 @@ static int scpsys_bus_protect_disable(struct > > scpsys_domain *pd) > > return 0; > > } > > > > +static int scpsys_clamp_protection(struct scpsys_domain *pd) > > +{ > > + int ret; > > + > > You can directly call _scpsys_clamp_bus_protection_enable(), no need > for a helper. > > > + ret = _scpsys_clamp_bus_protection_enable(pd, true); > > + if (ret) > > + return ret; > > + > > + return 0; > > +} > > + > > +static int scpsys_clamp_protection_disable(struct scpsys_domain > > *pd) > > +{ > > + int ret; > > + > > + ret = _scpsys_clamp_bus_protection_disable(pd, true); > > + if (ret) > > + return ret; > > + > > + return 0; > > +} > > + > > +static int scpsys_bus_protect_enable(struct scpsys_domain *pd) > > Unused function, please remove. I think this is used in scpsys_power_off function. Do you mean I should directly call _scpsys_clamp_bus_protection_disable? > > > +{ > > + int ret; > > + > > + ret = _scpsys_clamp_bus_protection_enable(pd, false); > > + if (ret) > > + return ret; > > + > > + return 0; > > +} > > + > > +static int scpsys_bus_protect_disable(struct scpsys_domain *pd) > > +{ > > Unused function, please remove. Same here, I think this is used in scpsys_power_on function. > > > + int ret; > > + > > + ret = _scpsys_clamp_bus_protection_disable(pd, false); > > + if (ret) > > + return ret; > > + > > + return 0; > > +} > > + > > static int scpsys_regulator_enable(struct regulator *supply) > > { > > return supply ? regulator_enable(supply) : 0; > > @@ -272,6 +332,12 @@ static int scpsys_power_on(struct > > generic_pm_domain *genpd) > > bool tmp; > > int ret; > > > > + if (MTK_SCPD_CAPS(pd, MTK_SCPD_CLAMP_PROTECTION)) { > > + ret = scpsys_clamp_protection(pd); > > ret = scpsys_clamp_bus_protection_enable(pd, true); > > > + if (ret) > > + return ret; > > + } > > + > > ret = scpsys_regulator_enable(pd->supply); > > if (ret) > > return ret; > > @@ -318,6 +384,12 @@ static int scpsys_power_on(struct > > generic_pm_domain *genpd) > > if (ret < 0) > > goto err_disable_subsys_clks; > > > > + if (MTK_SCPD_CAPS(pd, MTK_SCPD_CLAMP_PROTECTION)) { > > + ret = scpsys_clamp_protection_disable(pd); > > ret = scpsys_clamp_bus_protection_disable(pd, true); > > > + if (ret) > > + return ret; > > + } > > + > > ret = scpsys_bus_protect_disable(pd); > > if (ret < 0) > > goto err_disable_sram; > > @@ -353,6 +425,12 @@ static int scpsys_power_off(struct > > generic_pm_domain *genpd) > > bool tmp; > > int ret; > > > > + if (MTK_SCPD_CAPS(pd, MTK_SCPD_CLAMP_PROTECTION)) { > > + ret = scpsys_clamp_protection(pd); > > ret = scpsys_clamp_bus_protection_enable(pd, true); > > > + if (ret) > > + return ret; > > + } > > + > > ret = scpsys_bus_protect_enable(pd); > > if (ret < 0) > > return ret; > > Regards, > Angelo > Best Regards, yu-chang.lee _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel