From patchwork Thu Nov 26 09:21:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongtao Jia X-Patchwork-Id: 548978 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 858321402DD for ; Thu, 26 Nov 2015 20:29:24 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 5D4241A0A15 for ; Thu, 26 Nov 2015 20:29:24 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0119.outbound.protection.outlook.com [157.56.111.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id E66871A01D2 for ; Thu, 26 Nov 2015 20:28:26 +1100 (AEDT) Received: from CH1PR03CA005.namprd03.prod.outlook.com (10.255.156.150) by BN3PR03MB1478.namprd03.prod.outlook.com (10.163.35.141) with Microsoft SMTP Server (TLS) id 15.1.331.20; Thu, 26 Nov 2015 09:28:20 +0000 Received: from BL2FFO11OLC014.protection.gbl (10.255.156.132) by CH1PR03CA005.outlook.office365.com (10.255.156.150) with Microsoft SMTP Server (TLS) id 15.1.331.20 via Frontend Transport; Thu, 26 Nov 2015 09:28:19 +0000 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: PermError (protection.outlook.com: domain of freescale.com used an invalid SPF mechanism) Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11OLC014.mail.protection.outlook.com (10.173.160.144) with Microsoft SMTP Server (TLS) id 15.1.331.11 via Frontend Transport; Thu, 26 Nov 2015 09:28:20 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id tAQ9SF7n028228; Thu, 26 Nov 2015 02:28:16 -0700 From: Jia Hongtao To: , Subject: [PATCH V3] cpufreq: qoriq: Register cooling device based on device tree Date: Thu, 26 Nov 2015 17:21:11 +0800 Message-ID: <1448529671-48216-1-git-send-email-hongtao.jia@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC014; 1:0opNFyj66gfa6eeBrhIRe8Nq6iXfZhqqveSvRQLIJIwDPjHwftvk3YAS1mCX4FUWYzRUI1t5OSmsb40MFmo+nujxtB6fmww0kQ+n2l7pB4vSklR6F9bzGlg32WxuWS0fwgJ0wggX4errsqL8HdHDkvvdOlxVLQAKsRM0ZREgmrf+zJvlxaiXxvcV/gc0jctZFDszClfr2/K4i5bq9Kky0RuHTAPldUgnKaELzFDKEZ7Lv8RD3JUrR/yislXs5Zq83U5sKjW7p61tZzwMe50bacNCiU5UZ6p77IhPC0vy6MWcfjj+2ECDk+Os0hnzDRjFgF0mS1/u0UsUreTxVW9nvgqcE8v5DXcff90zg5va+beq5deyQfsmwtU2wAeH2hn/Rd3L/g/wjoUx0rE3NiRg/ip6XmyVIDJurHHRfsXesac= X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(448002)(189002)(199003)(36756003)(86362001)(5001770100001)(85326001)(586003)(50226001)(77096005)(1096002)(6806005)(104016004)(87936001)(5008740100001)(97736004)(50466002)(47776003)(50986999)(5001960100002)(189998001)(48376002)(229853001)(92566002)(106466001)(69596002)(1220700001)(33646002)(4001430100002)(5003940100001)(81156007)(19580395003)(19580405001)(107886002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR03MB1478; H:az84smr01.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1478; 2:cRBsf+Kpe9sJKC9OJO8reJ+aUqwZ8FBs1W+VT0bHgbTgjombOv2O6T4i+TpmsYhpokzZ5Cmi4JwG14LTb47CnaKJRg4MsEQ/qZLrpdORIBf2GuYoFwPA4bgRBp3/XcDNQ+Uz2hGPJpEFhdTOwDJm+w==; 3:eeG7rzKxH7mjdes9G83CcA6o/vA78za8L81Q3+t4hS6OCeNTsdyQT+9mVyyCgpQYFBAhrfa2FVXydE1DOWevVYGGNE0MoJ4cT9bif8P1Rjrp7UTQMidyHZJZYFqLw/xn5zYKFjv1RM4VnH24NYsf+0X7nb9eDFif90pVXQrwwpBC5eLARWwiajEen5fvLsAptTHE8BHMgNgp2+8MFROI5ij/7IJ0wyPYftayMsZV4T4=; 25:xsl/qIjiOmUhQsrPsCI9v4HMm5jWB9++kHcAEZOTpb9kVAb35NjUNNUIyenxAivDvin4/5prLNqPspcHG/Z24R3hfYdbcs7c2y82BxRyyCJ5uyN98/H4RXzz84/HZ6OAQ4RpJqujDjpNN+USTTpVeS45wQCO0v60u3Ex6O8em2uTE8XYzH0L8wcKprQrwmoi7CHrjM1La0AJs3msRR53LFYUYHIF/065y6OzNXIT/lPCRrA33mc0TCvbGlT2QGNu3gFfEf9eDuAaGOxvz4QGAg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1478; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1478; 20:/UnFm5GVxanv+zkHWCiBnkoixoTa7miRkCrxXxnByjPb3yBGHVuQoVVTsxBJ6CYwWKvK7p0but50JngrvWmt/RXrz2z0S7sRe9R/qhjwrHFRq3RN8V3AnQB3U1qCjbuL3hno7Ovij7h6RqXd7DTelA/PvwXT2qLb/+oeZGdEc17G7gHVBIA+kF+vS9mdKcXWhsVTGIZfi+rH8GgM3v3Etm7zBOrO5uroBNy0V+Xc8db/yjmzNu2GipzZKhZXEkBZ28439kWdZqcf0PJX4rfQfxlAykP2ddnFHDdUtr+KBj17Bx86nvZGPQKDT6+6XHPeWf2YfpqdKOO20H4oJW39PX23z9kjN8Lq2lk2Ai4bJDQ=; 4:T3/njRSPfTyKR3JRMgNCGEWB32glA/huPGXGYK65X3KcLIT35y2nYZFAbqErpHyXgUZ6Z7eBqycnGLQWY1aGIaYrp8CZ0z8wZgygYoz8ympPa3G1v18XxQvzRyTqEVCXtIYrAq2IUYWLovibS3TU5+AnfZv57mZ8tDc3kdx+/Quojs7nJ2bnPf+h0XrXduFGzIBVfH12bRye75qg0UZMiRKvVdMzkvzMJkm4W2uKcSA+I4W5l/A4wfyzvV47+z6hHOiiXQjyyOS1mme6tQl2WyQ0uVR1Gp//yvNmY9Q5slIPeKYWZ8rQRXPlA9cVEMjkHOOKNDrNRqJWxJrdF5TIYdfv1x2vG2VUfHC6S+al6RtzE/x15lQmp8j6cVBXG9OYF/DksAylw1sC4kUvKsdWwX5J1EvloZUA0Wm+fxg37Z+eNH4Q7QcnByQ0EpOdJXWP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(10201501046); SRVR:BN3PR03MB1478; BCL:0; PCL:0; RULEID:; SRVR:BN3PR03MB1478; X-Forefront-PRVS: 0772E5DAD5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB1478; 23:pX/hKr80GXxRnKsjkw5qwT2psVsVBYoEfMrTnLhL6?= =?us-ascii?Q?EQzSJmWXKo4oNBCwh6GbafN0zPgpG2WyeJNI29tlrhK85sdyfakRPVbCx+mc?= =?us-ascii?Q?e0br8LMc5edu3Fa5YG+dgxqnGvyG7b+sJcEnbslXHGuXVq5E3bLaFK+84YMV?= =?us-ascii?Q?tx4oqx9C/OX8m2lXXHP3fGWo98mgVJPjM08rYYU8Wp1EYnKnPlb73AwSz4H0?= =?us-ascii?Q?qLPYriZ9SwdNMOumzUJ9HcENF8b4q590WEdYXe5GuMIk4ybW6atWbKPxsON0?= =?us-ascii?Q?OF8KpRytSEyxacXChsOMGkiyO5Rz5d0OuWjz37CyWgOkc3eqYfgbVvQcFWJp?= =?us-ascii?Q?YklNyEBa2GMSsGRrUvZCM7XOXteBczX/22LqHqtWjOeDRiz7ce/s8Erq4fdJ?= =?us-ascii?Q?tvgIazWG4h/c5BBWQCGgzxQxOn4Za5GKB/lVmdoLVG21q8uxz8Lnd6+ZQNMk?= =?us-ascii?Q?/RlYBI8wi84XSnRVbIJH8pHecckhpvPgMfWfdCMaryV9NYSnyJ/l7D70VwLq?= =?us-ascii?Q?6UuEBZMtRz/ifLfJc+LN6FGjWi4ccYpT56AdaB6bhSrhrE7VppSDndplf7Fj?= =?us-ascii?Q?3sB8f36CGPPUGZ0fxn1wGpStb0t0Sbukq8K1yq5a4rVJzrrWjpuT6MBl+FuI?= =?us-ascii?Q?smdJPiz+A0B4Xx7f4IOCEwkU9fgE7mAJNiOimXzmRTZEeUE9PmrKFsRL+gAq?= =?us-ascii?Q?8EsdqvI7mBeHIuMidTG55A+Utg98XPegrC6mO+lHD021ZFH/zq3rZOkfRYIM?= =?us-ascii?Q?BPtquwWkgBVSWYgbnmnNzET0Tm6zrSgvBV6RCQsriGFU4Zk0M0MYOgWbIKKA?= =?us-ascii?Q?6/2ywdlYeV+uhrFgKw6y1yXlY919bQoX8DZGPGcTSVElx/YSQGLPZxo7qZf3?= =?us-ascii?Q?S57EAb7siXP7DHbPTq2un2TTwx3si2cutsogQUCZrKTlvznfs3iyGBq4CsyZ?= =?us-ascii?Q?sfl+fCTBgm0XZmjfb2y7CMyVLjV69Kuz9yVWfSGTv8c2JrtWU/5GB1vYIC5g?= =?us-ascii?Q?NU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1478; 5:UFN+McwhCTadZ7z3C6aHXzrj7Xc1OG2LDvKydheXdEmtquBBiRWjQ9t+8kKcewcM/ZThHwIAKiw0Cc4Wk3DWWHrf8/+Yv/bFiFVZcMXWkRCyq9NqwJOmjzu2VWMRI8FAzrpklH9hswcAKpih4SpxLQ==; 24:6ARxqGNjy32gnmTb2IYgzx+82P+p9Y1IFLFiEKVTjVbC9KEvO8qiqemYUXWs6FwVmQGyA59ratOmjJZIlg0eKPreOdqcMUVaiWCoBlNArSI= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2015 09:28:20.0562 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1478 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: scottwood@freescale.com, devicetree@vger.kernel.org, hongtao.jia@freescale.com, linuxppc-dev@lists.ozlabs.org, linux-pm@vger.kernel.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" Register the qoriq cpufreq driver as a cooling device, based on the thermal device tree framework. When temperature crosses the passive trip point cpufreq is used to throttle CPUs. Signed-off-by: Jia Hongtao Reviewed-by: Viresh Kumar --- Changes for V3: * Removed unnecessary cpu node NULL check. Changes for V2: * Using ->ready callback for cpu cooling device registering. drivers/cpufreq/qoriq-cpufreq.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c index 4f53fa2..cb6a62c 100644 --- a/drivers/cpufreq/qoriq-cpufreq.c +++ b/drivers/cpufreq/qoriq-cpufreq.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -33,6 +34,7 @@ struct cpu_data { struct clk **pclk; struct cpufreq_frequency_table *table; + struct thermal_cooling_device *cdev; }; /* @@ -260,6 +262,27 @@ static int qoriq_cpufreq_target(struct cpufreq_policy *policy, return clk_set_parent(policy->clk, parent); } + +static void qoriq_cpufreq_ready(struct cpufreq_policy *policy) +{ + struct cpu_data *cpud = policy->driver_data; + struct device_node *np = of_get_cpu_node(policy->cpu, NULL); + + if (of_find_property(np, "#cooling-cells", NULL)) { + cpud->cdev = of_cpufreq_cooling_register(np, + policy->related_cpus); + + if (IS_ERR(cpud->cdev)) { + pr_err("Failed to register cooling device cpu%d: %ld\n", + policy->cpu, PTR_ERR(cpud->cdev)); + + cpud->cdev = NULL; + } + } + + of_node_put(np); +} + static struct cpufreq_driver qoriq_cpufreq_driver = { .name = "qoriq_cpufreq", .flags = CPUFREQ_CONST_LOOPS, @@ -268,6 +291,7 @@ static struct cpufreq_driver qoriq_cpufreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = qoriq_cpufreq_target, .get = cpufreq_generic_get, + .ready = qoriq_cpufreq_ready, .attr = cpufreq_generic_attr, };