From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753878AbaEHMsS (ORCPT ); Thu, 8 May 2014 08:48:18 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:28357 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752756AbaEHMsO (ORCPT ); Thu, 8 May 2014 08:48:14 -0400 X-AuditID: cbfec7f4-b7fb36d000006ff7-8a-536b7d0c15e7 From: Tomasz Figa To: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Greg Kroah-Hartman , "Rafael J. Wysocki" , Pavel Machek , Len Brown , Russell King - ARM Linux , Kukjin Kim , Kumar Gala , Mark Rutland , Pawel Moll , Rob Herring , Bartlomiej Zolnierkiewicz , Stephen Warren , Stephen Boyd , Lorenzo Pieralisi , Ulf Hansson , Marek Szyprowski , Kevin Hilman , Philipp Zabel , Tomasz Figa , Tomasz Figa Subject: [PATCH v4 0/3] Generic Device Tree based power domain look-up Date: Thu, 08 May 2014 14:45:06 +0200 Message-id: <1399553109-6487-1-git-send-email-t.figa@samsung.com> X-Mailer: git-send-email 1.9.2 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrILMWRmVeSWpSXmKPExsVy+t/xa7o8tdnBBncmi1lsnLGe1WL+kXOs Fv1vFrJaNC9ez2bRu+Aqm8XXwysYLWZN2ctksenxNVaLy7vmsFl87j3CaDHj/D4mi9uXeS3e /H7BbrH2yF12i6XXLzJZ3D11lM1iwvS1LBZb551jtOhf2Mtk0br3CLvFjzPdLBavDraxWKyf 8ZrFYtWuP4wWx9eGO0h6rJm3htGjpbmHzeNyXy+Tx85Zd9k9Fu95yeSxaVUnm8eda3vYPPbP XcPusXlJvUffllWMHo8WtzB6rFj9nd3j8yY5j41zQwP4orhsUlJzMstSi/TtErgyzjU8YSxY JFVx+f8M5gbGzyJdjJwcEgImEpeOdjJD2GISF+6tZ+ti5OIQEljKKPGr4zcjhNPHJNHe1Q5W xSagJvG54REbiC0iICMx9cp+VpAiZoH17BKPzswA6uDgEBZwk+i+WQJSwyKgKtG4bTJYPa+A o8S35mtQ2+Qk/r9cwTSBkXsBI8MqRtHU0uSC4qT0XEO94sTc4tK8dL3k/NxNjJBo+bKDcfEx q0OMAhyMSjy8L6IzgoVYE8uKK3MPMUpwMCuJ8F6pzA4W4k1JrKxKLcqPLyrNSS0+xMjEwSnV wDjbrW1j8qyzS68z9rwJbGC23H9nolP0ssLvly/MZnS48Vj+Vv/1jMPlXRI397ldsdnmLeC4 UGH9b6G9XJ0ynz8pcE7QvLascanTqQj5TKPKgFsbchi93TaclHpwMfHH9MK8VqNXDpK9QQbf dyWqt13ZfuXL6WfCM+7/2PuwbNX9v5cWt5xQ9b6pxFKckWioxVxUnAgAYSNJ43QCAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Up till now there was no single generic method to bind devices to their power domains using Device Tree. Each platform has been doing this using its own way, example of which are Exynos power domain bindings [1] and look-up code [2]. This series is intended to change this and provide generic DT bindings for power domain specification and generic code performing look-up of power domains and binding them to devices. First two patches are the most important part of this series, as they introduce $subject. Patch 3 converts mach-exynos to use the new generic method. Further patches are adding one more user of the new code, mach-s3c64xx, with first 3 patches (4-6) required to clean-up its power domain driver a bit and last 3 patches (9-11) adding display support for Mini6410 board, including a node for display controller (FIMD) which is a power domain consumer. The design of DT bindings and provider code is heavily inspired by implementation of clock providers in Common Clock Framework, while the code binding devices to power domains by my Exynos power domain implementation (now removed by this series ;)). Successfully tested on Exynos4210-based Trats and Exynos4412-based Trats2 boards using MFC, [1] Documentation/devicetree/bindings/arm/exynos/power_domain.txt [2] arch/arm/mach-exynos/pm_domains.c Changes since v3: (http://thread.gmane.org/gmane.linux.power-management.general/44571) - rebased onto current Rafael's linux-pm bleeding-edge branch (0a112bf), - renamed "power-domain" property to "power-domains" to facilitate further extension to support multiple power domains per device in future. Changes since v2: (http://thread.gmane.org/gmane.linux.kernel/1658926) - rebased onto current Rafael's linux-pm bleeding-edge branch, - dropped patches for s3c64xx for now. I will send them in separate series, - do not call pm_genpd_dev_need_restore(true) in genpd_bind_domain(), - fixed various stylistic issues reported in review comments. Changes since v1 (RFC): [https://lkml.org/lkml/2014/1/11/141] - rebased onto current Rafael's linux-pm bleeding-edge branch, - reordered the patches a bit (to have the generic ones first), - dropped renaming of S3C64xx power domains (as suggested by Mark Brown), - added support for deferred probing (as suggested by Stephen Boyd), - fixed several minor issues pointed by Stephen Boyd, - replaced notifiers with direct hooks in driver core to make power domain support independent from specific bus type and allow error handling. Tomasz Figa (3): base: power: Add generic OF-based power domain look-up drivercore: Bind/unbind power domain on probe/remove ARM: exynos: Move to generic power domain bindings .../bindings/arm/exynos/power_domain.txt | 12 +- .../devicetree/bindings/power/power_domain.txt | 51 ++++ arch/arm/mach-exynos/pm_domains.c | 81 +----- drivers/base/dd.c | 9 +- drivers/base/power/domain.c | 283 +++++++++++++++++++++ include/linux/pm_domain.h | 46 ++++ kernel/power/Kconfig | 4 + 7 files changed, 398 insertions(+), 88 deletions(-) create mode 100644 Documentation/devicetree/bindings/power/power_domain.txt -- 1.9.2