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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,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 4A6ACC2D0C6 for ; Fri, 27 Dec 2019 09:06:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16347208C4 for ; Fri, 27 Dec 2019 09:06:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="fK6pEAJ7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727044AbfL0JGD (ORCPT ); Fri, 27 Dec 2019 04:06:03 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:17938 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726495AbfL0JGA (ORCPT ); Fri, 27 Dec 2019 04:06:00 -0500 X-UUID: 344832fee3074a219458965a6f191b5e-20191227 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=QXD1kl9Eu+Eq78WG0AJdM2CXyVFW/bQeIIWr1UnaH7o=; b=fK6pEAJ787qFSPakHIZtcuHoteUL36TxcM9SHuLLJUuPYCtEACjnqYxdAVLZ0b088PFVZs9jticFa6bAnWP7Wxk80DfaTXOJnzXUIuyHB+SGRjPaPKggpCL0ZMYvbTxzppsg8qLeawpyVdcxyGTckMRcwp0hlnEyF+2Y1KoCDqM=; X-UUID: 344832fee3074a219458965a6f191b5e-20191227 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1386314719; Fri, 27 Dec 2019 17:05:53 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 27 Dec 2019 17:05:10 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 27 Dec 2019 17:05:19 +0800 From: Jiaxin Yu To: , , , , , , , , , , , CC: , , Jiaxin Yu Subject: [PATCH v7 2/2] watchdog: mtk_wdt: mt8183: Add reset controller Date: Fri, 27 Dec 2019 17:04:54 +0800 Message-ID: <1577437494-738-3-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1577437494-738-1-git-send-email-jiaxin.yu@mediatek.com> References: <1577437494-738-1-git-send-email-jiaxin.yu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWRkIHJlc2V0IGNvbnRyb2xsZXIgQVBJIGluIHdhdGNoZG9nIGRyaXZlci4NCkJlc2lkZXMgd2F0 Y2hkb2csIE1USyB0b3ByZ3UgbW9kdWxlIGFsc2EgcHJvdmlkZSBzdWItc3lzdGVtIChlZywgYXVk aW8sDQpjYW1lcmEsIGNvZGVjIGFuZCBjb25uZWN0aXZpdHkpIHNvZnR3YXJlIHJlc2V0IGZ1bmN0 aW9uYWxpdHkuDQoNClNpZ25lZC1vZmYtYnk6IHlvbmcubGlhbmcgPHlvbmcubGlhbmdAbWVkaWF0 ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogSmlheGluIFl1IDxqaWF4aW4ueXVAbWVkaWF0ZWsuY29t Pg0KUmV2aWV3ZWQtYnk6IFlpbmdqb2UgQ2hlbiA8eWluZ2pvZS5jaGVuQG1lZGlhdGVrLmNvbT4N Ci0tLQ0KIGRyaXZlcnMvd2F0Y2hkb2cvbXRrX3dkdC5jIHwgMTA1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0NCiAxIGZpbGUgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvbXRrX3dkdC5j IGIvZHJpdmVycy93YXRjaGRvZy9tdGtfd2R0LmMNCmluZGV4IDljM2QwMDMzMjYwZC4uYzFiYzE5 YWI2MjhlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy93YXRjaGRvZy9tdGtfd2R0LmMNCisrKyBiL2Ry aXZlcnMvd2F0Y2hkb2cvbXRrX3dkdC5jDQpAQCAtOSw2ICs5LDkgQEANCiAgKiBCYXNlZCBvbiBz dW54aV93ZHQuYw0KICAqLw0KIA0KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC1jb250cm9s bGVyL210MjcxMi1yZXNldHMuaD4NCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQtY29udHJv bGxlci9tdDgxODMtcmVzZXRzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQogI2luY2x1 ZGUgPGxpbnV4L2Vyci5oPg0KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQogI2luY2x1ZGUgPGxp bnV4L2lvLmg+DQpAQCAtMTYsMTAgKzE5LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pg0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPg0KICNpbmNsdWRlIDxsaW51eC9vZi5o Pg0KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCiAjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xsZXIuaD4NCiAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4NCiAjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4NCi0jaW5j bHVkZSA8bGludXgvZGVsYXkuaD4NCiANCiAjZGVmaW5lIFdEVF9NQVhfVElNRU9VVAkJMzENCiAj ZGVmaW5lIFdEVF9NSU5fVElNRU9VVAkJMQ0KQEAgLTQ0LDYgKzQ4LDkgQEANCiAjZGVmaW5lIFdE VF9TV1JTVAkJMHgxNA0KICNkZWZpbmUgV0RUX1NXUlNUX0tFWQkJMHgxMjA5DQogDQorI2RlZmlu ZSBXRFRfU1dTWVNSU1QJCTB4MThVDQorI2RlZmluZSBXRFRfU1dTWVNfUlNUX0tFWQkweDg4MDAw MDAwDQorDQogI2RlZmluZSBEUlZfTkFNRQkJIm10ay13ZHQiDQogI2RlZmluZSBEUlZfVkVSU0lP TgkJIjEuMCINCiANCkBAIC01Myw4ICs2MCw5NCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRpbWVv dXQ7DQogc3RydWN0IG10a193ZHRfZGV2IHsNCiAJc3RydWN0IHdhdGNoZG9nX2RldmljZSB3ZHRf ZGV2Ow0KIAl2b2lkIF9faW9tZW0gKndkdF9iYXNlOw0KKwlzcGlubG9ja190IGxvY2s7IC8qIHBy b3RlY3RzIFdEVF9TV1NZU1JTVCByZWcgKi8NCisJc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2 IHJjZGV2Ow0KK307DQorDQorc3RydWN0IG10a193ZHRfZGF0YSB7DQorCWludCB0b3ByZ3Vfc3df cnN0X251bTsNCiB9Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3dkdF9kYXRhIG10Mjcx Ml9kYXRhID0gew0KKwkudG9wcmd1X3N3X3JzdF9udW0gPSBNVDI3MTJfVE9QUkdVX1NXX1JTVF9O VU0sDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a193ZHRfZGF0YSBtdDgxODNfZGF0 YSA9IHsNCisJLnRvcHJndV9zd19yc3RfbnVtID0gTVQ4MTgzX1RPUFJHVV9TV19SU1RfTlVNLA0K K307DQorDQorc3RhdGljIGludCB0b3ByZ3VfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9jb250 cm9sbGVyX2RldiAqcmNkZXYsDQorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQsIGJvb2wgYXNz ZXJ0KQ0KK3sNCisJdW5zaWduZWQgaW50IHRtcDsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJ c3RydWN0IG10a193ZHRfZGV2ICpkYXRhID0NCisJCSBjb250YWluZXJfb2YocmNkZXYsIHN0cnVj dCBtdGtfd2R0X2RldiwgcmNkZXYpOw0KKw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGF0YS0+bG9j aywgZmxhZ3MpOw0KKw0KKwl0bXAgPSByZWFkbChkYXRhLT53ZHRfYmFzZSArIFdEVF9TV1NZU1JT VCk7DQorCWlmIChhc3NlcnQpDQorCQl0bXAgfD0gQklUKGlkKTsNCisJZWxzZQ0KKwkJdG1wICY9 IH5CSVQoaWQpOw0KKwl0bXAgfD0gV0RUX1NXU1lTX1JTVF9LRVk7DQorCXdyaXRlbCh0bXAsIGRh dGEtPndkdF9iYXNlICsgV0RUX1NXU1lTUlNUKTsNCisNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGF0YS0+bG9jaywgZmxhZ3MpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGlu dCB0b3ByZ3VfcmVzZXRfYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYs DQorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQpDQorew0KKwlyZXR1cm4gdG9wcmd1X3Jlc2V0 X3VwZGF0ZShyY2RldiwgaWQsIHRydWUpOw0KK30NCisNCitzdGF0aWMgaW50IHRvcHJndV9yZXNl dF9kZWFzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LA0KKwkJCQkgdW5z aWduZWQgbG9uZyBpZCkNCit7DQorCXJldHVybiB0b3ByZ3VfcmVzZXRfdXBkYXRlKHJjZGV2LCBp ZCwgZmFsc2UpOw0KK30NCisNCitzdGF0aWMgaW50IHRvcHJndV9yZXNldChzdHJ1Y3QgcmVzZXRf Y29udHJvbGxlcl9kZXYgKnJjZGV2LA0KKwkJCXVuc2lnbmVkIGxvbmcgaWQpDQorew0KKwlpbnQg cmV0Ow0KKw0KKwlyZXQgPSB0b3ByZ3VfcmVzZXRfYXNzZXJ0KHJjZGV2LCBpZCk7DQorCWlmIChy ZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwlyZXR1cm4gdG9wcmd1X3Jlc2V0X2RlYXNzZXJ0KHJj ZGV2LCBpZCk7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzZXRfY29udHJvbF9vcHMg dG9wcmd1X3Jlc2V0X29wcyA9IHsNCisJLmFzc2VydCA9IHRvcHJndV9yZXNldF9hc3NlcnQsDQor CS5kZWFzc2VydCA9IHRvcHJndV9yZXNldF9kZWFzc2VydCwNCisJLnJlc2V0ID0gdG9wcmd1X3Jl c2V0LA0KK307DQorDQorc3RhdGljIGludCB0b3ByZ3VfcmVnaXN0ZXJfcmVzZXRfY29udHJvbGxl cihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KKwkJCQkJICAgIGludCByc3RfbnVtKQ0K K3sNCisJaW50IHJldDsNCisJc3RydWN0IG10a193ZHRfZGV2ICptdGtfd2R0ID0gcGxhdGZvcm1f Z2V0X2RydmRhdGEocGRldik7DQorDQorCXNwaW5fbG9ja19pbml0KCZtdGtfd2R0LT5sb2NrKTsN CisNCisJbXRrX3dkdC0+cmNkZXYub3duZXIgPSBUSElTX01PRFVMRTsNCisJbXRrX3dkdC0+cmNk ZXYubnJfcmVzZXRzID0gcnN0X251bTsNCisJbXRrX3dkdC0+cmNkZXYub3BzID0gJnRvcHJndV9y ZXNldF9vcHM7DQorCW10a193ZHQtPnJjZGV2Lm9mX25vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsN CisJcmV0ID0gZGV2bV9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKCZwZGV2LT5kZXYsICZtdGtf d2R0LT5yY2Rldik7DQorCWlmIChyZXQgIT0gMCkNCisJCWRldl9lcnIoJnBkZXYtPmRldiwNCisJ CQkiY291bGRuJ3QgcmVnaXN0ZXIgd2R0IHJlc2V0IGNvbnRyb2xsZXI6ICVkXG4iLCByZXQpOw0K KwlyZXR1cm4gcmV0Ow0KK30NCisNCiBzdGF0aWMgaW50IG10a193ZHRfcmVzdGFydChzdHJ1Y3Qg d2F0Y2hkb2dfZGV2aWNlICp3ZHRfZGV2LA0KIAkJCSAgIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2 b2lkICpkYXRhKQ0KIHsNCkBAIC0xNTUsNiArMjQ4LDcgQEAgc3RhdGljIGludCBtdGtfd2R0X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogew0KIAlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2Ow0KIAlzdHJ1Y3QgbXRrX3dkdF9kZXYgKm10a193ZHQ7DQorCXN0cnVj dCBtdGtfd2R0X2RhdGEgKndkdF9kYXRhOw0KIAlpbnQgZXJyOw0KIA0KIAltdGtfd2R0ID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZW9mKCptdGtfd2R0KSwgR0ZQX0tFUk5FTCk7DQpAQCAtMTkwLDYg KzI4NCwxMyBAQCBzdGF0aWMgaW50IG10a193ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCiAJZGV2X2luZm8oZGV2LCAiV2F0Y2hkb2cgZW5hYmxlZCAodGltZW91dD0lZCBz ZWMsIG5vd2F5b3V0PSVkKVxuIiwNCiAJCSBtdGtfd2R0LT53ZHRfZGV2LnRpbWVvdXQsIG5vd2F5 b3V0KTsNCiANCisJd2R0X2RhdGEgPSAoc3RydWN0IG10a193ZHRfZGF0YSAqKW9mX2RldmljZV9n ZXRfbWF0Y2hfZGF0YShkZXYpOw0KKwlpZiAod2R0X2RhdGEpIHsNCisJCWVyciA9IHRvcHJndV9y ZWdpc3Rlcl9yZXNldF9jb250cm9sbGVyKHBkZXYsDQorCQkJCQkJICAgICAgIHdkdF9kYXRhLT50 b3ByZ3Vfc3dfcnN0X251bSk7DQorCQlpZiAoZXJyKQ0KKwkJCXJldHVybiBlcnI7DQorCX0NCiAJ cmV0dXJuIDA7DQogfQ0KIA0KQEAgLTIxOCw3ICszMTksOSBAQCBzdGF0aWMgaW50IG10a193ZHRf cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikNCiAjZW5kaWYNCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCBtdGtfd2R0X2R0X2lkc1tdID0gew0KKwl7IC5jb21wYXRpYmxlID0g Im1lZGlhdGVrLG10MjcxMi13ZHQiLCAuZGF0YSA9ICZtdDI3MTJfZGF0YSB9LA0KIAl7IC5jb21w YXRpYmxlID0gIm1lZGlhdGVrLG10NjU4OS13ZHQiIH0sDQorCXsgLmNvbXBhdGlibGUgPSAibWVk aWF0ZWssbXQ4MTgzLXdkdCIsIC5kYXRhID0gJm10ODE4M19kYXRhIH0sDQogCXsgLyogc2VudGlu ZWwgKi8gfQ0KIH07DQogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXRrX3dkdF9kdF9pZHMpOw0K LS0gDQoyLjE4LjANCg== 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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,UNWANTED_LANGUAGE_BODY, 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 EB0A2C2D0C6 for ; Fri, 27 Dec 2019 09:06:42 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id C1E2220828 for ; Fri, 27 Dec 2019 09:06:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cNMl/tXp"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="fK6pEAJ7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C1E2220828 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-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FbcDXZ1jgCK1hL76uRXEx9mBpz6SucmUqFtHwzitO2Y=; b=cNMl/tXpLCrsUr e/T6vPLsoZTdPkU/3dZHxuxZnHteiypUOGOKLQrK0p3KUo9Lq3qou5QKZ9XuPqjTVQEgpxAsAA6K9 mobav9e2tDUVKRIQXpFYAnzbPFIxEi9HG2FEOHPUxPZMs5W7MrH+qXxAQasUfFkDGuThD+vDXsBgf 9chXji18YjgXBkZDzkJbdWL8sF6YAxjzYzCkgrJMn8V9wp90GIA5r1OMZwQRJWBnEqhdtKJmBmFad 0EyUq9mIyWGaQgVFfgrBqy3Vuk7zwnSwnsPDLv0EWL74Ptx+6ZC7AI6Hi9+IgHXittRpFasjH+/sV 3PJrkMep1V1ny8TV57Rg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iklZy-0006Yv-9J; Fri, 27 Dec 2019 09:06:42 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iklZu-0006WX-1O; Fri, 27 Dec 2019 09:06:39 +0000 X-UUID: d3e88caa31604eeaa9852467a20a0bf3-20191227 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=QXD1kl9Eu+Eq78WG0AJdM2CXyVFW/bQeIIWr1UnaH7o=; b=fK6pEAJ787qFSPakHIZtcuHoteUL36TxcM9SHuLLJUuPYCtEACjnqYxdAVLZ0b088PFVZs9jticFa6bAnWP7Wxk80DfaTXOJnzXUIuyHB+SGRjPaPKggpCL0ZMYvbTxzppsg8qLeawpyVdcxyGTckMRcwp0hlnEyF+2Y1KoCDqM=; X-UUID: d3e88caa31604eeaa9852467a20a0bf3-20191227 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1470963012; Fri, 27 Dec 2019 01:06:33 -0800 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.1395.4; Fri, 27 Dec 2019 01:06:01 -0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 27 Dec 2019 17:05:10 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 27 Dec 2019 17:05:19 +0800 From: Jiaxin Yu To: , , , , , , , , , , , Subject: [PATCH v7 2/2] watchdog: mtk_wdt: mt8183: Add reset controller Date: Fri, 27 Dec 2019 17:04:54 +0800 Message-ID: <1577437494-738-3-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1577437494-738-1-git-send-email-jiaxin.yu@mediatek.com> References: <1577437494-738-1-git-send-email-jiaxin.yu@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-20191227_010638_085830_A4E94602 X-CRM114-Status: GOOD ( 12.32 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: sboyd@kernel.org, yingjoe.chen@mediatek.com, Jiaxin Yu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Add reset controller API in watchdog driver. Besides watchdog, MTK toprgu module alsa provide sub-system (eg, audio, camera, codec and connectivity) software reset functionality. Signed-off-by: yong.liang Signed-off-by: Jiaxin Yu Reviewed-by: Yingjoe Chen --- drivers/watchdog/mtk_wdt.c | 105 ++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index 9c3d0033260d..c1bc19ab628e 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -9,6 +9,9 @@ * Based on sunxi_wdt.c */ +#include +#include +#include #include #include #include @@ -16,10 +19,11 @@ #include #include #include +#include #include +#include #include #include -#include #define WDT_MAX_TIMEOUT 31 #define WDT_MIN_TIMEOUT 1 @@ -44,6 +48,9 @@ #define WDT_SWRST 0x14 #define WDT_SWRST_KEY 0x1209 +#define WDT_SWSYSRST 0x18U +#define WDT_SWSYS_RST_KEY 0x88000000 + #define DRV_NAME "mtk-wdt" #define DRV_VERSION "1.0" @@ -53,8 +60,94 @@ static unsigned int timeout; struct mtk_wdt_dev { struct watchdog_device wdt_dev; void __iomem *wdt_base; + spinlock_t lock; /* protects WDT_SWSYSRST reg */ + struct reset_controller_dev rcdev; +}; + +struct mtk_wdt_data { + int toprgu_sw_rst_num; }; +static const struct mtk_wdt_data mt2712_data = { + .toprgu_sw_rst_num = MT2712_TOPRGU_SW_RST_NUM, +}; + +static const struct mtk_wdt_data mt8183_data = { + .toprgu_sw_rst_num = MT8183_TOPRGU_SW_RST_NUM, +}; + +static int toprgu_reset_update(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) +{ + unsigned int tmp; + unsigned long flags; + struct mtk_wdt_dev *data = + container_of(rcdev, struct mtk_wdt_dev, rcdev); + + spin_lock_irqsave(&data->lock, flags); + + tmp = readl(data->wdt_base + WDT_SWSYSRST); + if (assert) + tmp |= BIT(id); + else + tmp &= ~BIT(id); + tmp |= WDT_SWSYS_RST_KEY; + writel(tmp, data->wdt_base + WDT_SWSYSRST); + + spin_unlock_irqrestore(&data->lock, flags); + + return 0; +} + +static int toprgu_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return toprgu_reset_update(rcdev, id, true); +} + +static int toprgu_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return toprgu_reset_update(rcdev, id, false); +} + +static int toprgu_reset(struct reset_controller_dev *rcdev, + unsigned long id) +{ + int ret; + + ret = toprgu_reset_assert(rcdev, id); + if (ret) + return ret; + + return toprgu_reset_deassert(rcdev, id); +} + +static const struct reset_control_ops toprgu_reset_ops = { + .assert = toprgu_reset_assert, + .deassert = toprgu_reset_deassert, + .reset = toprgu_reset, +}; + +static int toprgu_register_reset_controller(struct platform_device *pdev, + int rst_num) +{ + int ret; + struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); + + spin_lock_init(&mtk_wdt->lock); + + mtk_wdt->rcdev.owner = THIS_MODULE; + mtk_wdt->rcdev.nr_resets = rst_num; + mtk_wdt->rcdev.ops = &toprgu_reset_ops; + mtk_wdt->rcdev.of_node = pdev->dev.of_node; + ret = devm_reset_controller_register(&pdev->dev, &mtk_wdt->rcdev); + if (ret != 0) + dev_err(&pdev->dev, + "couldn't register wdt reset controller: %d\n", ret); + return ret; +} + static int mtk_wdt_restart(struct watchdog_device *wdt_dev, unsigned long action, void *data) { @@ -155,6 +248,7 @@ static int mtk_wdt_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct mtk_wdt_dev *mtk_wdt; + struct mtk_wdt_data *wdt_data; int err; mtk_wdt = devm_kzalloc(dev, sizeof(*mtk_wdt), GFP_KERNEL); @@ -190,6 +284,13 @@ static int mtk_wdt_probe(struct platform_device *pdev) dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout); + wdt_data = (struct mtk_wdt_data *)of_device_get_match_data(dev); + if (wdt_data) { + err = toprgu_register_reset_controller(pdev, + wdt_data->toprgu_sw_rst_num); + if (err) + return err; + } return 0; } @@ -218,7 +319,9 @@ static int mtk_wdt_resume(struct device *dev) #endif static const struct of_device_id mtk_wdt_dt_ids[] = { + { .compatible = "mediatek,mt2712-wdt", .data = &mt2712_data }, { .compatible = "mediatek,mt6589-wdt" }, + { .compatible = "mediatek,mt8183-wdt", .data = &mt8183_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids); -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,UNWANTED_LANGUAGE_BODY, 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 EFA95C2D0C6 for ; Fri, 27 Dec 2019 09:06:47 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id C225B20828 for ; Fri, 27 Dec 2019 09:06:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TBErF54p"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="fK6pEAJ7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C225B20828 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+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=IXNKk/skV47xYvZC1D5gHIDDlVc9qaWQf5DOLWjg2/A=; b=TBErF54p9zGyEz YBeahNHQGmoAr29pxHD8zmmSQuvSGDjlHkhBlHZh0UfzAoPrm7aGDXwBOkyRsbd9TklhJKz6q7Sct sfR7/EuKKhH8UIFr/087WwtT1HC80b479kc+adG9DK064+EUrWtliZGg6NXJlEfCXslhpdPf02msV sOM9Kz9UVGVYupeI1usgs2KcwHcFeXya17ekzgXM4esed+YbWWlUqgDSZVu3vWkacR1oHLCvCNPl0 opvb+xRMJX4l6MK0fttLJaNgAkX1DnTI6MC5jDObRzpsFYzpIM/W2ce/gzbN4Lk8doqFPGNIXc6d+ aIu4OzeXO+zewRuJYHcA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ikla2-0006aF-J8; Fri, 27 Dec 2019 09:06:46 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iklZu-0006WX-1O; Fri, 27 Dec 2019 09:06:39 +0000 X-UUID: d3e88caa31604eeaa9852467a20a0bf3-20191227 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=QXD1kl9Eu+Eq78WG0AJdM2CXyVFW/bQeIIWr1UnaH7o=; b=fK6pEAJ787qFSPakHIZtcuHoteUL36TxcM9SHuLLJUuPYCtEACjnqYxdAVLZ0b088PFVZs9jticFa6bAnWP7Wxk80DfaTXOJnzXUIuyHB+SGRjPaPKggpCL0ZMYvbTxzppsg8qLeawpyVdcxyGTckMRcwp0hlnEyF+2Y1KoCDqM=; X-UUID: d3e88caa31604eeaa9852467a20a0bf3-20191227 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1470963012; Fri, 27 Dec 2019 01:06:33 -0800 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.1395.4; Fri, 27 Dec 2019 01:06:01 -0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 27 Dec 2019 17:05:10 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 27 Dec 2019 17:05:19 +0800 From: Jiaxin Yu To: , , , , , , , , , , , Subject: [PATCH v7 2/2] watchdog: mtk_wdt: mt8183: Add reset controller Date: Fri, 27 Dec 2019 17:04:54 +0800 Message-ID: <1577437494-738-3-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1577437494-738-1-git-send-email-jiaxin.yu@mediatek.com> References: <1577437494-738-1-git-send-email-jiaxin.yu@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-20191227_010638_085830_A4E94602 X-CRM114-Status: GOOD ( 12.32 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: sboyd@kernel.org, yingjoe.chen@mediatek.com, Jiaxin Yu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add reset controller API in watchdog driver. Besides watchdog, MTK toprgu module alsa provide sub-system (eg, audio, camera, codec and connectivity) software reset functionality. Signed-off-by: yong.liang Signed-off-by: Jiaxin Yu Reviewed-by: Yingjoe Chen --- drivers/watchdog/mtk_wdt.c | 105 ++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index 9c3d0033260d..c1bc19ab628e 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -9,6 +9,9 @@ * Based on sunxi_wdt.c */ +#include +#include +#include #include #include #include @@ -16,10 +19,11 @@ #include #include #include +#include #include +#include #include #include -#include #define WDT_MAX_TIMEOUT 31 #define WDT_MIN_TIMEOUT 1 @@ -44,6 +48,9 @@ #define WDT_SWRST 0x14 #define WDT_SWRST_KEY 0x1209 +#define WDT_SWSYSRST 0x18U +#define WDT_SWSYS_RST_KEY 0x88000000 + #define DRV_NAME "mtk-wdt" #define DRV_VERSION "1.0" @@ -53,8 +60,94 @@ static unsigned int timeout; struct mtk_wdt_dev { struct watchdog_device wdt_dev; void __iomem *wdt_base; + spinlock_t lock; /* protects WDT_SWSYSRST reg */ + struct reset_controller_dev rcdev; +}; + +struct mtk_wdt_data { + int toprgu_sw_rst_num; }; +static const struct mtk_wdt_data mt2712_data = { + .toprgu_sw_rst_num = MT2712_TOPRGU_SW_RST_NUM, +}; + +static const struct mtk_wdt_data mt8183_data = { + .toprgu_sw_rst_num = MT8183_TOPRGU_SW_RST_NUM, +}; + +static int toprgu_reset_update(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) +{ + unsigned int tmp; + unsigned long flags; + struct mtk_wdt_dev *data = + container_of(rcdev, struct mtk_wdt_dev, rcdev); + + spin_lock_irqsave(&data->lock, flags); + + tmp = readl(data->wdt_base + WDT_SWSYSRST); + if (assert) + tmp |= BIT(id); + else + tmp &= ~BIT(id); + tmp |= WDT_SWSYS_RST_KEY; + writel(tmp, data->wdt_base + WDT_SWSYSRST); + + spin_unlock_irqrestore(&data->lock, flags); + + return 0; +} + +static int toprgu_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return toprgu_reset_update(rcdev, id, true); +} + +static int toprgu_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return toprgu_reset_update(rcdev, id, false); +} + +static int toprgu_reset(struct reset_controller_dev *rcdev, + unsigned long id) +{ + int ret; + + ret = toprgu_reset_assert(rcdev, id); + if (ret) + return ret; + + return toprgu_reset_deassert(rcdev, id); +} + +static const struct reset_control_ops toprgu_reset_ops = { + .assert = toprgu_reset_assert, + .deassert = toprgu_reset_deassert, + .reset = toprgu_reset, +}; + +static int toprgu_register_reset_controller(struct platform_device *pdev, + int rst_num) +{ + int ret; + struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); + + spin_lock_init(&mtk_wdt->lock); + + mtk_wdt->rcdev.owner = THIS_MODULE; + mtk_wdt->rcdev.nr_resets = rst_num; + mtk_wdt->rcdev.ops = &toprgu_reset_ops; + mtk_wdt->rcdev.of_node = pdev->dev.of_node; + ret = devm_reset_controller_register(&pdev->dev, &mtk_wdt->rcdev); + if (ret != 0) + dev_err(&pdev->dev, + "couldn't register wdt reset controller: %d\n", ret); + return ret; +} + static int mtk_wdt_restart(struct watchdog_device *wdt_dev, unsigned long action, void *data) { @@ -155,6 +248,7 @@ static int mtk_wdt_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct mtk_wdt_dev *mtk_wdt; + struct mtk_wdt_data *wdt_data; int err; mtk_wdt = devm_kzalloc(dev, sizeof(*mtk_wdt), GFP_KERNEL); @@ -190,6 +284,13 @@ static int mtk_wdt_probe(struct platform_device *pdev) dev_info(dev, "Watchdog enabled (timeout=%d sec, nowayout=%d)\n", mtk_wdt->wdt_dev.timeout, nowayout); + wdt_data = (struct mtk_wdt_data *)of_device_get_match_data(dev); + if (wdt_data) { + err = toprgu_register_reset_controller(pdev, + wdt_data->toprgu_sw_rst_num); + if (err) + return err; + } return 0; } @@ -218,7 +319,9 @@ static int mtk_wdt_resume(struct device *dev) #endif static const struct of_device_id mtk_wdt_dt_ids[] = { + { .compatible = "mediatek,mt2712-wdt", .data = &mt2712_data }, { .compatible = "mediatek,mt6589-wdt" }, + { .compatible = "mediatek,mt8183-wdt", .data = &mt8183_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids); -- 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel