From patchwork Thu Nov 26 06:27:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongtao Jia X-Patchwork-Id: 548935 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 8E3A11402B8 for ; Thu, 26 Nov 2015 17:35:42 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 5DE261A0B84 for ; Thu, 26 Nov 2015 17:35:42 +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-bn1on0119.outbound.protection.outlook.com [157.56.110.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 83F3D1A01D2 for ; Thu, 26 Nov 2015 17:34:45 +1100 (AEDT) Received: from BN3PR0301CA0077.namprd03.prod.outlook.com (10.160.152.173) by CY1PR03MB1487.namprd03.prod.outlook.com (10.163.17.17) with Microsoft SMTP Server (TLS) id 15.1.331.20; Thu, 26 Nov 2015 06:34:38 +0000 Received: from BY2FFO11FD023.protection.gbl (2a01:111:f400:7c0c::138) by BN3PR0301CA0077.outlook.office365.com (2a01:111:e400:401e::45) with Microsoft SMTP Server (TLS) id 15.1.331.20 via Frontend Transport; Thu, 26 Nov 2015 06:34:37 +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 BY2FFO11FD023.mail.protection.outlook.com (10.1.15.212) with Microsoft SMTP Server (TLS) id 15.1.331.11 via Frontend Transport; Thu, 26 Nov 2015 06:34:37 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id tAQ6YXBo017437; Wed, 25 Nov 2015 23:34:34 -0700 From: Jia Hongtao To: , Subject: [PATCH V2] cpufreq: qoriq: Register cooling device based on device tree Date: Thu, 26 Nov 2015 14:27:29 +0800 Message-ID: <1448519249-11449-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; BY2FFO11FD023; 1:i+ZwPYEJpTMI6ZqCiVu4xjWaiEKps0fsMX+tMx6Mk4P5+cVYV9Q+Fz09SAhY6gX9mZcLM6j+tg7JX23Awp1xJe1Z00FPh9FmumRgniNYZG6Ij7iFVmqsWW8feq94JDKvFgrqPrfFTbJmnzSAnUbAfpmZBr9QmAa8P1Avs7inArd9PnGVmySC1jJfBCgtDUyXq+61Ezp3wCGtnP6kp8zO58L14BD3hHEydrMZgMEjqXUMP7UhkXzKyAD2LTC1FV6vysN4tjC7kf1dvyfCORK0b2hMYJ7qi4Vd5ot32UstSoQayqoWl/ALS5QYqpAQlB3hnIF/H1AkfeA6jPS0dQUK9qdh8Qf8HGPuab9zuvFrQ0gCbgs9OjcEBxeGXWOoFmvjOpvZcH0mFTPpbgBrQAa4/IBRNfJk+pOZ8QFoc1W5pNY= X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(448002)(199003)(189002)(106466001)(86362001)(229853001)(50226001)(92566002)(1220700001)(77096005)(1096002)(85326001)(33646002)(87936001)(5001960100002)(97736004)(81156007)(47776003)(19580395003)(69596002)(6806005)(586003)(19580405001)(50986999)(36756003)(48376002)(189998001)(4001430100002)(50466002)(5008740100001)(5001770100001)(104016004)(11100500001)(107886002)(5003940100001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR03MB1487; H:az84smr01.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB1487; 2:PWuqItRzokd5QMF9iVT78PgYyGfWH/sU6/FAs6uUYN4oDekkJOS4fApG7V+/HQXQAjHGCwtMBSVuFl/wJ+YFsAb/RuiziY6k/Xe0xu8SLs7YUSM32O/mF51q6DCYoHnnjtLwMXZC7wJESTOQcrgwHg==; 3:5qmpGd1glJqeywIqglTb0bkY/6UOlxizppIWWf/G2HMCmqFpTkNAgaR9bjGcW2fDHiuD09OkRt8yT+e8dhMMQTT+Jd8ghcQ3855waaEl0Z+yHrUSAFs32EW0BKeaJUrpwTw3BSohWjqE14UcczMirjLfWR0xxwptQbMAR36W5NASvZTLUHfTa6aJLvGNS1yRRP8nopCtrqvLl3cMj6n+8lBRvT/m4cSSmv/wyTqEYYs=; 25:qSMeQR4wVjxbNDvOtW4976C+JNRff+YjH7z7PSxft2GLrhJbh18kwhEQrSpWsu210Zguz6RXFCd/hH4767or0b6q552/UwWLyTacujJ9fJSYfYbEW+EEW3UsIEfhWX4rndYVF/8dKWXNpPPS1Iowjps4Wknp8Ee55ipUYHrTOsOQ9gGa3rDy1SMYpf00SUnoXGpJ94tUtnA9twIMaB4Itkeg344DQByP/Q1yjIyu3Z2xMUwu4Ye1KgGbHs7MUQ4IS0tLy/BjGKkPrqAjKYBI9g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1487; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB1487; 20:tCM0RF2AlBgL5Ok67B1/znxZfzfrLwOlIj+lUre+kcsq/wDc7/cMSLgPDFyfjvASyR3ulGqcaIv+imgyQjfRm+2uv1aLpyPOG8vuAVRWK01ppVwV9XDILbtEZkitrmAUULQTbOIB+5SLMi5Ns8nD/MNVANBTZUhZv2mXlz5D1sqJZlChw3Hr1E2TeGOJ24mvKIf/CSzuxL0Ldul6SbMgzLIADvGZOcRBvXe6V2ItBvDAu5rN/+ZGwlK/eLrX0BgGruG0od+d2cOov7yfdKbvDzyXUVLhhwVywgWklwR54flCVbxGMGQ8aLifPGLMMhQw4Vj9WIQLuynQEE+9mJ8AqUjiCTY4cf8WKx13GK484II=; 4:143CeS4Q56RlmapgSoUApFe0bXcE/YuF07XN4LV4fvBxnoWcyfzGIm9v4j1vP4YEi2MBKgCC+BJxUm9irwvfIGBELPb650/bFnUZAch9IUn8GwSsn7NB36TzywtWihPKJydGqJJSW9BlBmkLc/TvFtE3m2tuj+ny5uaHDdlU5n7ZCuFC3EU0xzgzjAtc/tN9tTGm3MufTPwrJyrqeRrZ9YhpMIRWpbIm41ol6hpKzXr0vsFnvSGwLQfzr14EmA65As3Zs3S1FT4bVtxB2xS659SJQL1Fs3vc8qeoCFYZea9wUYc7Ajgv2E4huWowzfUdYCyjKqpjGHjSZAbhvSTEFYxD06rGyekneXc/rc/SIAu1mIhnNLmIeIydyq1oeGqCpwwhm3dQf+xbtcS2ItoKRhAsAvBilHeqeSgQK5jNz8hAJa45/dSxTQs5OfV08sK4 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001); SRVR:CY1PR03MB1487; BCL:0; PCL:0; RULEID:; SRVR:CY1PR03MB1487; X-Forefront-PRVS: 0772E5DAD5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB1487; 23:auiuhyUkiXu5Mq2VAMcMZl6r4mkE9TXnAdW4qwXnJ?= =?us-ascii?Q?6/+u4q4wQ03dO96qktHFzgMf8+zoLHDGU7cCoOA2kSIljRLqPNMwx1Kc462b?= =?us-ascii?Q?/cCrTMifdE25cNad//bk/jUwmP6ymW/2JcPmhi7A7fsEG872ZZf+rXImEUzR?= =?us-ascii?Q?K6d1digE8Gr4iaa9k3m5Z+xfbEnGy/5wpxdLSQdkE+/ZyBK+VwwU8CgYXmHY?= =?us-ascii?Q?xALYJkdipeLwW4rOv023GnmhdjB0IqDxsLXKc4QoI153XVfs0coto/mqZMEk?= =?us-ascii?Q?4hm6yez1qg1Y0/XuF/yS6Hiyu1g/IpcAYjb6+SfhiKXGhM6WDrpYRG+WzDOx?= =?us-ascii?Q?WMPbKjZCL6le3ZKGPAS6FlKQRrCpiVeRPr2lLiYz4UUEdGpG6Mymqk+qlI8k?= =?us-ascii?Q?x1pLE2ZAxaWFHRCLF2V44fwCp7qDkm8tG/NlXDBAFTtP8O0WoACUSOVt3Rxy?= =?us-ascii?Q?w3dfdoiXgTCBXRRk0W3hAMY4nGioSsFCoWN8bkCtGKLWVUByEUxgL60KBMAe?= =?us-ascii?Q?j3Si5z63tHRtSSxkHb0M7o6beJ1SjXh1h+40Dz5v4ZHsGKksWNYMkxThmXmp?= =?us-ascii?Q?RBwGA7hpbcsfdViiGzJv+cYeFVS4u3q7FQFBXWN+ZXgPpCEy93DrSSCpj80p?= =?us-ascii?Q?OfhjxGZG82h38yzf5kjXA1cQj4MnigAsBt3TPDqaDMCXFKaIwNcvNZ7v19kl?= =?us-ascii?Q?B4rJla529QFU8ZKi1f8TiUUp+NkU20TR4NDV4eiXYAfE/P7p9qw8DLhM0Sru?= =?us-ascii?Q?bx5d5sJn58OVe8BOSq3YGohoqQHWw6ljTYg08yuUFyPxG28rtif2dY36M3EK?= =?us-ascii?Q?czOJ39FJxbNPbP77VLYAi6JT3pub5YJz/RTrPS19nWIdXRDtfWynWPxrymQ3?= =?us-ascii?Q?1HWJdfwuloo3s2FWYSY4f7Nh7mwOzmnN4NqL7UlhIz7xVOAUcH5gnz7ZX1dM?= =?us-ascii?Q?GDkFdFvoh++WXWkYi8Ab2OPx4zli3Dnkquve8LlK2tqqXmRi20hPcOdj8mMI?= =?us-ascii?Q?BICVXEETvdFqK9DAz42KmK/?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB1487; 5:IzgYrN+KDC7opxsjKoyQfL9sVKsoEx79HNK4uJS+ebCABOopGgPcivwPyLOEp/jqQef5tKIUcR0mPhjJmEHHiVnpkyy38/85kWERNm8YiQxzBep8OU5u16aC1kRradTb2Vl2/QsthzNSrWUPS3EbGQ==; 24:KTSsuFgs/ZaHYGOZDYqbpYV757OQHqdaN9JGM3ztM8tOlA4qzfeFQ93apyrsdXTCxdoDTsTE9sNZ5GZr1Xq/3BwAMgxznxwc2TCjpWMwXH0= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2015 06:34:37.4044 (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: CY1PR03MB1487 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 V2: * Using ->ready callback for cpu cooling device registering. drivers/cpufreq/qoriq-cpufreq.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c index 4f53fa2..a39f868 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,30 @@ 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 (WARN_ON(!np)) + return; + + 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 +294,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, };