From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aisheng Dong Subject: RE: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Date: Mon, 18 Mar 2019 15:10:04 +0000 Message-ID: References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> <1550771836-10014-3-git-send-email-aisheng.dong@nxp.com> <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Stephen Boyd , "linux-clk@vger.kernel.org" Cc: Rob Herring , "devicetree@vger.kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: devicetree@vger.kernel.org [...] > > diff --git a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > index 965cfa4..a317844 100644 > > --- a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > +++ b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > @@ -11,6 +11,20 @@ enabled by these control bits, it might still not > > be running based on the base resource. > > > > Required properties: > > +- compatible: Should be one of: > > + "fsl,imx8qxp-lpcg" > > + "fsl,imx8qm-lpcg" followed by > "fsl,imx8qxp-lpcg". > > +- reg: Address and length of the register set. > > +- #clock-cells: Should be 1. One LPCG supports multiple > clocks. > > +- clocks: Input parent clocks phandle array for each clock. > > +- bit-offset: An integer array indicating the bit offset for each > clock. > > +- hw-autogate: Boolean array indicating whether supports HW > autogate for > > + each clock. > > This looks like one clk per node style of bindings which is a direction we don't > want DT bindings to go in. It leads to a bunch of time parsing DT to generate > clks and in general doesn't represent the clock controller hardware that is > there. Basically, anything with 'bit-offset' > in the binding is not going to be acceptable. > This is not one clk per node but one clock controller per node which strictly describes the HW. On MX8, each LPCG is a separate clock controller which can control a couple of clock output gates for one specific device to use. Each device has a corresponding LPCG clock controller and those LPCGs are independent with each other with separate IO space. Those LPCGs are distributed in various SS (subsystems) along with device resources. Describing them in device tree SS dtsi doesn't seem to be an issue as it is representing the real hardware. For SCU clocks, they're similar case that each SS having separate clock controllers In HW which are managed by SCU firmware. So it seems also okay to put them in device tree SS dtsi file, right? If you're concerning each node having one compatible string, how about doing like many power domain does as below? Having only one compatible string in clock parent nodes. //LSIO SS lsio_scu_clk: lsio-scu-clock-controller { compatible = "fsl,imx8qxp-clock", "fsl,scu-clk"; fspi0_clk: clock-fspi0{ #clock-cells = <0>; rsrc-id = ; clk-type = ; power-domains = <&pd IMX_SC_R_FSPI_0>; }; fspi1_clk: clock-fspi1{ ... }; ... }; /* LPCG clocks */ lsio_lpcg_clk: lsio-lpcg-clock-controller { compatible = "fsl,imx8qxp-lpcg"; pwm0_lpcg: clock-controller@5d400000 { reg = <0x5d400000 0x10000>; #clock-cells = <1>; clocks = <&pwm0_clk>, <&pwm0_clk>, <&pwm0_clk>, <&lsio_bus_clk>, <&pwm0_clk>; bit-offset = <0 4 16 20 24>; clock-output-names = "pwm0_lpcg_ipg_clk", "pwm0_lpcg_ipg_hf_clk", "pwm0_lpcg_ipg_s_clk", "pwm0_lpcg_ipg_slv_clk", "pwm0_lpcg_ipg_mstr_clk"; power-domains = <&pd IMX_SC_R_PWM_0>; status = "disabled"; }; ... }; I also have spent a lot time to investigate how TI and Samsung does. However, finally i.MX is still different and I still believe current way is better for i.MX, mainly due to below reasons: 1) IMX having separate clock controllers in HW, not shared one like others 2) IMX SoC is comprised of various HW SS (Subsystem) while others don't have. Describing clocks in DT can help a better SW architecture to describe HW. 3) Each clock is associated with a power domain. DT is the best place to indicate it. 4) Clock availability (Both SCU and LPCG) are configurable according to different HW partition configuration by SCU firmware. Defining them all in driver will cause annoying and continued churn in driver all the time when adding new SoC support. e.g. Handling availability for different SS in different SoC. Defining Clock IDs for diferent SS in different SoC for same clocks. By putting clocks in DT, we can make the clock driver completely generic and no more churn in the driver anymore in the future for adding new SoC support. It can significantly save the driver maintain effort. Last, this won't break compatibility. It's just introduce a new binding. Regards Dong Aisheng > > +- clock-output-names: Shall be the corresponding names of the outputs. > > + NOTE this property must be specified in the > same order > > + as the clock bit-offset and hw-autogate property. > > + > > +Legacy binding (DEPRECATED): > > - compatible: Should be one of: > > "fsl,imx8qxp-lpcg-adma", 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=-4.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED 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 BAE74C43381 for ; Mon, 18 Mar 2019 15:10:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 782032085A for ; Mon, 18 Mar 2019 15:10:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="OqeuO7V5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726837AbfCRPKL (ORCPT ); Mon, 18 Mar 2019 11:10:11 -0400 Received: from mail-eopbgr00047.outbound.protection.outlook.com ([40.107.0.47]:50756 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726757AbfCRPKL (ORCPT ); Mon, 18 Mar 2019 11:10:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8Yg3CpIhITKGPZ6uVts2BIBdbacpqE3Pp5ja12CxqcM=; b=OqeuO7V5zT5+CGYBqQaQD0HMmeTjEek5zmpjfd8aMEG+6JFVBUeGAaO10KKwIt0wyBGfyqcGtsiCrE3b9VUpS+XNaSc5/1iEWVlS6W0/7KM7YcUq+iFVBBagW8+LFD+rshW5Kyk7ZymFZKzj2UxFh110jtLPjptVWBZzpwHa/Co= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.92.158) by AM0PR04MB4353.eurprd04.prod.outlook.com (52.134.125.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.13; Mon, 18 Mar 2019 15:10:04 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::50ed:d1b5:c043:3b79]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::50ed:d1b5:c043:3b79%2]) with mapi id 15.20.1709.015; Mon, 18 Mar 2019 15:10:04 +0000 From: Aisheng Dong To: Stephen Boyd , "linux-clk@vger.kernel.org" CC: "linux-arm-kernel@lists.infradead.org" , "mturquette@baylibre.com" , "shawnguo@kernel.org" , Fabio Estevam , dl-linux-imx , "kernel@pengutronix.de" , Rob Herring , "devicetree@vger.kernel.org" Subject: RE: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Topic: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Index: AQHUyg/Kxp1YOB0bxEaB6SXWVnNLZ6Xw8WgAgCCnHWA= Date: Mon, 18 Mar 2019 15:10:04 +0000 Message-ID: References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> <1550771836-10014-3-git-send-email-aisheng.dong@nxp.com> <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> In-Reply-To: <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d9b4832-f2b5-4741-2da0-08d6abb3cd1d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:AM0PR04MB4353; x-ms-traffictypediagnostic: AM0PR04MB4353: x-microsoft-antispam-prvs: x-forefront-prvs: 098076C36C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(346002)(366004)(396003)(136003)(39860400002)(189003)(199004)(68736007)(476003)(9686003)(486006)(446003)(11346002)(3846002)(7736002)(2906002)(6116002)(55016002)(81166006)(81156014)(8936002)(8676002)(25786009)(229853002)(86362001)(52536014)(71200400001)(6436002)(66066001)(5660300002)(71190400001)(316002)(478600001)(14454004)(54906003)(99286004)(14444005)(256004)(186003)(2501003)(110136005)(6246003)(53936002)(44832011)(305945005)(102836004)(76176011)(7696005)(106356001)(33656002)(97736004)(6506007)(26005)(105586002)(74316002)(4326008);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR04MB4353;H:AM0PR04MB4211.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: LmiGEXz0uN2Lng5mRpxj/5wZeffEN+Qut6ulLBfrtLzRJkWe14Ty5DpyA18rVnyBQSvyexy8+cqK2RM8ZsBlN9yCw66GIBg8/q0HCGYaQSf9MvyaGYEnjEoX9aHC29hvWUy14bJ3qc/F/pdesfaKerof/w67ZtLH3QGV0VUDIE7ULgM8bzrJ5VoDuEc63dT8pzjBj0+QCFf9Os0nB8YHiA4gKEsQCYSNBs2RhRnOvjdk5IZns079+n2aPTahPrzHI7B7wudIPqr1k9gF4rQpbsHTByUMcCO7sn/K6bOaQS8OycqmaUYLy1fNN1419vnR4LAGGpOjEoI3amc3GHp0Zxb1m6RnE4uD3XNDkmOu/co4V+F8wM4JK//nLFLF8SfqGl4DWVJMYLju9pAin2Rj9x1Ap5GWo9iXpblIm5AbuGg= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d9b4832-f2b5-4741-2da0-08d6abb3cd1d X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2019 15:10:04.7200 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4353 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org Wy4uLl0NCg0KPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvY2xvY2svaW14OHF4cC1scGNnLnR4dA0KPiA+IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2Nsb2NrL2lteDhxeHAtbHBjZy50eHQNCj4gPiBpbmRleCA5NjVjZmE0Li5hMzE3 ODQ0IDEwMDY0NA0KPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9j bG9jay9pbXg4cXhwLWxwY2cudHh0DQo+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2Nsb2NrL2lteDhxeHAtbHBjZy50eHQNCj4gPiBAQCAtMTEsNiArMTEsMjAgQEAg ZW5hYmxlZCBieSB0aGVzZSBjb250cm9sIGJpdHMsIGl0IG1pZ2h0IHN0aWxsIG5vdA0KPiA+IGJl IHJ1bm5pbmcgYmFzZWQgIG9uIHRoZSBiYXNlIHJlc291cmNlLg0KPiA+DQo+ID4gIFJlcXVpcmVk IHByb3BlcnRpZXM6DQo+ID4gKy0gY29tcGF0aWJsZTogICAgICAgICAgU2hvdWxkIGJlIG9uZSBv ZjoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICJmc2wsaW14OHF4cC1scGNnIg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgImZzbCxpbXg4cW0tbHBjZyIgZm9sbG93ZWQgYnkN Cj4gImZzbCxpbXg4cXhwLWxwY2ciLg0KPiA+ICstIHJlZzogICAgICAgICAgICAgICAgIEFkZHJl c3MgYW5kIGxlbmd0aCBvZiB0aGUgcmVnaXN0ZXIgc2V0Lg0KPiA+ICstICNjbG9jay1jZWxsczog ICAgICAgICAgICAgICAgU2hvdWxkIGJlIDEuIE9uZSBMUENHIHN1cHBvcnRzIG11bHRpcGxlDQo+ IGNsb2Nrcy4NCj4gPiArLSBjbG9ja3M6ICAgICAgICAgICAgICBJbnB1dCBwYXJlbnQgY2xvY2tz IHBoYW5kbGUgYXJyYXkgZm9yIGVhY2ggY2xvY2suDQo+ID4gKy0gYml0LW9mZnNldDogICAgICAg ICAgQW4gaW50ZWdlciBhcnJheSBpbmRpY2F0aW5nIHRoZSBiaXQgb2Zmc2V0IGZvciBlYWNoDQo+ IGNsb2NrLg0KPiA+ICstIGh3LWF1dG9nYXRlOiAgICAgICAgIEJvb2xlYW4gYXJyYXkgaW5kaWNh dGluZyB3aGV0aGVyIHN1cHBvcnRzIEhXDQo+IGF1dG9nYXRlIGZvcg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGVhY2ggY2xvY2suDQo+IA0KPiBUaGlzIGxvb2tzIGxpa2Ugb25lIGNsayBw ZXIgbm9kZSBzdHlsZSBvZiBiaW5kaW5ncyB3aGljaCBpcyBhIGRpcmVjdGlvbiB3ZSBkb24ndA0K PiB3YW50IERUIGJpbmRpbmdzIHRvIGdvIGluLiBJdCBsZWFkcyB0byBhIGJ1bmNoIG9mIHRpbWUg cGFyc2luZyBEVCB0byBnZW5lcmF0ZQ0KPiBjbGtzIGFuZCBpbiBnZW5lcmFsIGRvZXNuJ3QgcmVw cmVzZW50IHRoZSBjbG9jayBjb250cm9sbGVyIGhhcmR3YXJlIHRoYXQgaXMNCj4gdGhlcmUuIEJh c2ljYWxseSwgYW55dGhpbmcgd2l0aCAnYml0LW9mZnNldCcNCj4gaW4gdGhlIGJpbmRpbmcgaXMg bm90IGdvaW5nIHRvIGJlIGFjY2VwdGFibGUuDQo+IA0KDQpUaGlzIGlzIG5vdCBvbmUgY2xrIHBl ciBub2RlIGJ1dCBvbmUgY2xvY2sgY29udHJvbGxlciBwZXIgbm9kZSB3aGljaCBzdHJpY3RseQ0K ZGVzY3JpYmVzIHRoZSBIVy4NCg0KT24gTVg4LCBlYWNoIExQQ0cgaXMgYSBzZXBhcmF0ZSBjbG9j ayBjb250cm9sbGVyIHdoaWNoIGNhbiBjb250cm9sIGEgY291cGxlIG9mDQpjbG9jayBvdXRwdXQg Z2F0ZXMgZm9yIG9uZSBzcGVjaWZpYyBkZXZpY2UgdG8gdXNlLiBFYWNoIGRldmljZSBoYXMgYSBj b3JyZXNwb25kaW5nDQpMUENHIGNsb2NrIGNvbnRyb2xsZXIgYW5kIHRob3NlIExQQ0dzIGFyZSBp bmRlcGVuZGVudCB3aXRoIGVhY2ggb3RoZXIgd2l0aA0Kc2VwYXJhdGUgSU8gc3BhY2UuDQoNClRo b3NlIExQQ0dzIGFyZSBkaXN0cmlidXRlZCBpbiB2YXJpb3VzIFNTIChzdWJzeXN0ZW1zKSBhbG9u ZyB3aXRoIGRldmljZSByZXNvdXJjZXMuDQpEZXNjcmliaW5nIHRoZW0gaW4gZGV2aWNlIHRyZWUg U1MgZHRzaSBkb2Vzbid0IHNlZW0gdG8gYmUgYW4gaXNzdWUgYXMgaXQgaXMgcmVwcmVzZW50aW5n DQp0aGUgcmVhbCBoYXJkd2FyZS4NCg0KRm9yIFNDVSBjbG9ja3MsIHRoZXkncmUgc2ltaWxhciBj YXNlIHRoYXQgZWFjaCBTUyBoYXZpbmcgc2VwYXJhdGUgY2xvY2sgY29udHJvbGxlcnMNCkluIEhX IHdoaWNoIGFyZSBtYW5hZ2VkIGJ5IFNDVSBmaXJtd2FyZS4gU28gaXQgc2VlbXMgYWxzbyBva2F5 IHRvIHB1dCB0aGVtDQppbiBkZXZpY2UgdHJlZSBTUyBkdHNpIGZpbGUsIHJpZ2h0Pw0KDQpJZiB5 b3UncmUgY29uY2VybmluZyBlYWNoIG5vZGUgaGF2aW5nIG9uZSBjb21wYXRpYmxlIHN0cmluZywg aG93IGFib3V0IGRvaW5nIGxpa2UNCm1hbnkgcG93ZXIgZG9tYWluIGRvZXMgYXMgYmVsb3c/DQoN CkhhdmluZyBvbmx5IG9uZSBjb21wYXRpYmxlIHN0cmluZyBpbiBjbG9jayBwYXJlbnQgbm9kZXMu DQoNCi8vTFNJTyBTUw0KbHNpb19zY3VfY2xrOiBsc2lvLXNjdS1jbG9jay1jb250cm9sbGVyIHsN CiAgICAgICAgY29tcGF0aWJsZSA9ICJmc2wsaW14OHF4cC1jbG9jayIsICJmc2wsc2N1LWNsayI7 DQoNCiAgICAgICAgZnNwaTBfY2xrOiBjbG9jay1mc3BpMHsNCiAgICAgICAgICAgICAgICAjY2xv Y2stY2VsbHMgPSA8MD47DQogICAgICAgICAgICAgICAgcnNyYy1pZCA9IDxJTVhfU0NfUl9GU1BJ XzA+Ow0KICAgICAgICAgICAgICAgIGNsay10eXBlID0gPElNWF9TQ19QTV9DTEtfUEVSPjsNCiAg ICAgICAgICAgICAgICBwb3dlci1kb21haW5zID0gPCZwZCBJTVhfU0NfUl9GU1BJXzA+Ow0KICAg ICAgICB9Ow0KCQkNCgkJZnNwaTFfY2xrOiBjbG9jay1mc3BpMXsNCgkJCS4uLg0KCQl9Ow0KICAg ICAgICAuLi4NCn07ICAgIA0KDQovKiBMUENHIGNsb2NrcyAqLw0KbHNpb19scGNnX2NsazogbHNp by1scGNnLWNsb2NrLWNvbnRyb2xsZXIgew0KICAgICAgICBjb21wYXRpYmxlID0gImZzbCxpbXg4 cXhwLWxwY2ciOw0KDQogICAgICAgIHB3bTBfbHBjZzogY2xvY2stY29udHJvbGxlckA1ZDQwMDAw MCB7DQogICAgICAgICAgICAgICAgcmVnID0gPDB4NWQ0MDAwMDAgMHgxMDAwMD47DQogICAgICAg ICAgICAgICAgI2Nsb2NrLWNlbGxzID0gPDE+Ow0KICAgICAgICAgICAgICAgIGNsb2NrcyA9IDwm cHdtMF9jbGs+LCA8JnB3bTBfY2xrPiwgPCZwd20wX2Nsaz4sDQogICAgICAgICAgICAgICAgICAg ICAgICAgPCZsc2lvX2J1c19jbGs+LCA8JnB3bTBfY2xrPjsNCiAgICAgICAgICAgICAgICBiaXQt b2Zmc2V0ID0gPDAgNCAxNiAyMCAyND47DQogICAgICAgICAgICAgICAgY2xvY2stb3V0cHV0LW5h bWVzID0gInB3bTBfbHBjZ19pcGdfY2xrIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicHdtMF9scGNnX2lwZ19oZl9jbGsiLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJwd20wX2xwY2dfaXBnX3NfY2xrIiwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAicHdtMF9scGNnX2lwZ19zbHZfY2xrIiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicHdtMF9scGNnX2lwZ19tc3RyX2NsayI7DQogICAgICAg ICAgICAgICAgcG93ZXItZG9tYWlucyA9IDwmcGQgSU1YX1NDX1JfUFdNXzA+Ow0KICAgICAgICAg ICAgICAgIHN0YXR1cyA9ICJkaXNhYmxlZCI7DQogICAgICAgIH07DQogICAgICAgIC4uLg0KfTsN Cg0KSSBhbHNvIGhhdmUgc3BlbnQgYSBsb3QgdGltZSB0byBpbnZlc3RpZ2F0ZSBob3cgVEkgYW5k IFNhbXN1bmcgZG9lcy4gSG93ZXZlciwgDQpmaW5hbGx5IGkuTVggaXMgc3RpbGwgZGlmZmVyZW50 IGFuZCBJIHN0aWxsIGJlbGlldmUgY3VycmVudCB3YXkgaXMgYmV0dGVyIGZvciBpLk1YLA0KbWFp bmx5IGR1ZSB0byBiZWxvdyByZWFzb25zOg0KDQoxKSBJTVggaGF2aW5nIHNlcGFyYXRlIGNsb2Nr IGNvbnRyb2xsZXJzIGluIEhXLCBub3Qgc2hhcmVkIG9uZSBsaWtlIG90aGVycw0KMikgSU1YIFNv QyBpcyBjb21wcmlzZWQgb2YgdmFyaW91cyBIVyBTUyAoU3Vic3lzdGVtKSB3aGlsZSBvdGhlcnMg ZG9uJ3QgaGF2ZS4NCiAgRGVzY3JpYmluZyBjbG9ja3MgaW4gRFQgY2FuIGhlbHAgYSBiZXR0ZXIg U1cgYXJjaGl0ZWN0dXJlIHRvIGRlc2NyaWJlIEhXLg0KMykgRWFjaCBjbG9jayBpcyBhc3NvY2lh dGVkIHdpdGggYSBwb3dlciBkb21haW4uIERUIGlzIHRoZSBiZXN0IHBsYWNlIHRvIGluZGljYXRl IGl0Lg0KNCkgQ2xvY2sgYXZhaWxhYmlsaXR5IChCb3RoIFNDVSBhbmQgTFBDRykgYXJlIGNvbmZp Z3VyYWJsZSBhY2NvcmRpbmcgdG8NCiAgZGlmZmVyZW50IEhXIHBhcnRpdGlvbiBjb25maWd1cmF0 aW9uIGJ5IFNDVSBmaXJtd2FyZS4NCiAgRGVmaW5pbmcgdGhlbSBhbGwgaW4gZHJpdmVyIHdpbGwg Y2F1c2UgYW5ub3lpbmcgYW5kIGNvbnRpbnVlZCBjaHVybiBpbiBkcml2ZXINCiAgYWxsIHRoZSB0 aW1lIHdoZW4gYWRkaW5nIG5ldyBTb0Mgc3VwcG9ydC4NCiAgZS5nLiANCiAgSGFuZGxpbmcgYXZh aWxhYmlsaXR5IGZvciBkaWZmZXJlbnQgU1MgaW4gZGlmZmVyZW50IFNvQy4NCiAgRGVmaW5pbmcg Q2xvY2sgSURzIGZvciBkaWZlcmVudCBTUyBpbiBkaWZmZXJlbnQgU29DIGZvciBzYW1lIGNsb2Nr cy4NCg0KQnkgcHV0dGluZyBjbG9ja3MgaW4gRFQsIHdlIGNhbiBtYWtlIHRoZSBjbG9jayBkcml2 ZXIgY29tcGxldGVseSBnZW5lcmljIGFuZA0Kbm8gbW9yZSBjaHVybiBpbiB0aGUgZHJpdmVyIGFu eW1vcmUgaW4gdGhlIGZ1dHVyZSBmb3IgYWRkaW5nIG5ldyBTb0Mgc3VwcG9ydC4NCkl0IGNhbiBz aWduaWZpY2FudGx5IHNhdmUgdGhlIGRyaXZlciBtYWludGFpbiBlZmZvcnQuDQoNCkxhc3QsIHRo aXMgd29uJ3QgYnJlYWsgY29tcGF0aWJpbGl0eS4gSXQncyBqdXN0IGludHJvZHVjZSBhIG5ldyBi aW5kaW5nLg0KDQpSZWdhcmRzDQpEb25nIEFpc2hlbmcNCg0KPiA+ICstIGNsb2NrLW91dHB1dC1u YW1lczogIFNoYWxsIGJlIHRoZSBjb3JyZXNwb25kaW5nIG5hbWVzIG9mIHRoZSBvdXRwdXRzLg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIE5PVEUgdGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHNw ZWNpZmllZCBpbiB0aGUNCj4gc2FtZSBvcmRlcg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGFzIHRoZSBjbG9jayBiaXQtb2Zmc2V0IGFuZCBody1hdXRvZ2F0ZSBwcm9wZXJ0eS4NCj4gPiAr DQo+ID4gK0xlZ2FjeSBiaW5kaW5nIChERVBSRUNBVEVEKToNCj4gPiAgLSBjb21wYXRpYmxlOiAg U2hvdWxkIGJlIG9uZSBvZjoNCj4gPiAgICAgICAgICAgICAgICAgICAiZnNsLGlteDhxeHAtbHBj Zy1hZG1hIiwNCg== 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=-4.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED 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 ABCB7C43381 for ; Mon, 18 Mar 2019 15:10:18 +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 7C4C120872 for ; Mon, 18 Mar 2019 15:10:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ADzpD74K"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="OqeuO7V5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7C4C120872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.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:In-Reply-To:References: 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=j/WPMxXji2NDfyQqJE33OawfoPMzBmDK4PzHPpnaKyg=; b=ADzpD74KQ9XEFN w6fp3lTFI3iNsI/85dCTU5ly6ed72hL89/YPFwTlnU0uHbI/REdEY7XyNSArXPbMho7d3rOg9jLIc XUFuzyWdTCApLEPW3sxg1kaexPinIRfH3WzEOw5VOV5cvdGs9eoc4b4J6HBZ9Mgcal93UB4rm+bUW 8yuuR4xZBvGdGr6EhFdRcGGUum79IJ4sLYi3EZ/0mEIvy7VHGDLJteq1IyCiLdOiriHsK58aesi0p XarqeBQLOSDdueP95OtR7s798wDjB2gQ6WFZsDY6N2kg+raqJdEOne913GHdB0Mtv2hAOzmnjDZAP i6E75LqmHHJxTYDEjjqg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h5tu1-0006N0-1V; Mon, 18 Mar 2019 15:10:13 +0000 Received: from mail-eopbgr00057.outbound.protection.outlook.com ([40.107.0.57] helo=EUR02-AM5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h5tty-0005on-56 for linux-arm-kernel@lists.infradead.org; Mon, 18 Mar 2019 15:10:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8Yg3CpIhITKGPZ6uVts2BIBdbacpqE3Pp5ja12CxqcM=; b=OqeuO7V5zT5+CGYBqQaQD0HMmeTjEek5zmpjfd8aMEG+6JFVBUeGAaO10KKwIt0wyBGfyqcGtsiCrE3b9VUpS+XNaSc5/1iEWVlS6W0/7KM7YcUq+iFVBBagW8+LFD+rshW5Kyk7ZymFZKzj2UxFh110jtLPjptVWBZzpwHa/Co= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.92.158) by AM0PR04MB4353.eurprd04.prod.outlook.com (52.134.125.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.13; Mon, 18 Mar 2019 15:10:04 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::50ed:d1b5:c043:3b79]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::50ed:d1b5:c043:3b79%2]) with mapi id 15.20.1709.015; Mon, 18 Mar 2019 15:10:04 +0000 From: Aisheng Dong To: Stephen Boyd , "linux-clk@vger.kernel.org" Subject: RE: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Topic: [PATCH 2/4] dt-bindings: clock: imx-lpcg: add support to parse clocks from device tree Thread-Index: AQHUyg/Kxp1YOB0bxEaB6SXWVnNLZ6Xw8WgAgCCnHWA= Date: Mon, 18 Mar 2019 15:10:04 +0000 Message-ID: References: <1550771836-10014-1-git-send-email-aisheng.dong@nxp.com> <1550771836-10014-3-git-send-email-aisheng.dong@nxp.com> <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> In-Reply-To: <155112397472.191923.18309287020361500256@swboyd.mtv.corp.google.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d9b4832-f2b5-4741-2da0-08d6abb3cd1d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR04MB4353; x-ms-traffictypediagnostic: AM0PR04MB4353: x-microsoft-antispam-prvs: x-forefront-prvs: 098076C36C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(346002)(366004)(396003)(136003)(39860400002)(189003)(199004)(68736007)(476003)(9686003)(486006)(446003)(11346002)(3846002)(7736002)(2906002)(6116002)(55016002)(81166006)(81156014)(8936002)(8676002)(25786009)(229853002)(86362001)(52536014)(71200400001)(6436002)(66066001)(5660300002)(71190400001)(316002)(478600001)(14454004)(54906003)(99286004)(14444005)(256004)(186003)(2501003)(110136005)(6246003)(53936002)(44832011)(305945005)(102836004)(76176011)(7696005)(106356001)(33656002)(97736004)(6506007)(26005)(105586002)(74316002)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4353; H:AM0PR04MB4211.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: LmiGEXz0uN2Lng5mRpxj/5wZeffEN+Qut6ulLBfrtLzRJkWe14Ty5DpyA18rVnyBQSvyexy8+cqK2RM8ZsBlN9yCw66GIBg8/q0HCGYaQSf9MvyaGYEnjEoX9aHC29hvWUy14bJ3qc/F/pdesfaKerof/w67ZtLH3QGV0VUDIE7ULgM8bzrJ5VoDuEc63dT8pzjBj0+QCFf9Os0nB8YHiA4gKEsQCYSNBs2RhRnOvjdk5IZns079+n2aPTahPrzHI7B7wudIPqr1k9gF4rQpbsHTByUMcCO7sn/K6bOaQS8OycqmaUYLy1fNN1419vnR4LAGGpOjEoI3amc3GHp0Zxb1m6RnE4uD3XNDkmOu/co4V+F8wM4JK//nLFLF8SfqGl4DWVJMYLju9pAin2Rj9x1Ap5GWo9iXpblIm5AbuGg= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d9b4832-f2b5-4741-2da0-08d6abb3cd1d X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2019 15:10:04.7200 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4353 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190318_081010_301529_B2F1DA81 X-CRM114-Status: GOOD ( 21.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Herring , "devicetree@vger.kernel.org" , "mturquette@baylibre.com" , dl-linux-imx , "kernel@pengutronix.de" , Fabio Estevam , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" 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 [...] > > diff --git a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > index 965cfa4..a317844 100644 > > --- a/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > +++ b/Documentation/devicetree/bindings/clock/imx8qxp-lpcg.txt > > @@ -11,6 +11,20 @@ enabled by these control bits, it might still not > > be running based on the base resource. > > > > Required properties: > > +- compatible: Should be one of: > > + "fsl,imx8qxp-lpcg" > > + "fsl,imx8qm-lpcg" followed by > "fsl,imx8qxp-lpcg". > > +- reg: Address and length of the register set. > > +- #clock-cells: Should be 1. One LPCG supports multiple > clocks. > > +- clocks: Input parent clocks phandle array for each clock. > > +- bit-offset: An integer array indicating the bit offset for each > clock. > > +- hw-autogate: Boolean array indicating whether supports HW > autogate for > > + each clock. > > This looks like one clk per node style of bindings which is a direction we don't > want DT bindings to go in. It leads to a bunch of time parsing DT to generate > clks and in general doesn't represent the clock controller hardware that is > there. Basically, anything with 'bit-offset' > in the binding is not going to be acceptable. > This is not one clk per node but one clock controller per node which strictly describes the HW. On MX8, each LPCG is a separate clock controller which can control a couple of clock output gates for one specific device to use. Each device has a corresponding LPCG clock controller and those LPCGs are independent with each other with separate IO space. Those LPCGs are distributed in various SS (subsystems) along with device resources. Describing them in device tree SS dtsi doesn't seem to be an issue as it is representing the real hardware. For SCU clocks, they're similar case that each SS having separate clock controllers In HW which are managed by SCU firmware. So it seems also okay to put them in device tree SS dtsi file, right? If you're concerning each node having one compatible string, how about doing like many power domain does as below? Having only one compatible string in clock parent nodes. //LSIO SS lsio_scu_clk: lsio-scu-clock-controller { compatible = "fsl,imx8qxp-clock", "fsl,scu-clk"; fspi0_clk: clock-fspi0{ #clock-cells = <0>; rsrc-id = ; clk-type = ; power-domains = <&pd IMX_SC_R_FSPI_0>; }; fspi1_clk: clock-fspi1{ ... }; ... }; /* LPCG clocks */ lsio_lpcg_clk: lsio-lpcg-clock-controller { compatible = "fsl,imx8qxp-lpcg"; pwm0_lpcg: clock-controller@5d400000 { reg = <0x5d400000 0x10000>; #clock-cells = <1>; clocks = <&pwm0_clk>, <&pwm0_clk>, <&pwm0_clk>, <&lsio_bus_clk>, <&pwm0_clk>; bit-offset = <0 4 16 20 24>; clock-output-names = "pwm0_lpcg_ipg_clk", "pwm0_lpcg_ipg_hf_clk", "pwm0_lpcg_ipg_s_clk", "pwm0_lpcg_ipg_slv_clk", "pwm0_lpcg_ipg_mstr_clk"; power-domains = <&pd IMX_SC_R_PWM_0>; status = "disabled"; }; ... }; I also have spent a lot time to investigate how TI and Samsung does. However, finally i.MX is still different and I still believe current way is better for i.MX, mainly due to below reasons: 1) IMX having separate clock controllers in HW, not shared one like others 2) IMX SoC is comprised of various HW SS (Subsystem) while others don't have. Describing clocks in DT can help a better SW architecture to describe HW. 3) Each clock is associated with a power domain. DT is the best place to indicate it. 4) Clock availability (Both SCU and LPCG) are configurable according to different HW partition configuration by SCU firmware. Defining them all in driver will cause annoying and continued churn in driver all the time when adding new SoC support. e.g. Handling availability for different SS in different SoC. Defining Clock IDs for diferent SS in different SoC for same clocks. By putting clocks in DT, we can make the clock driver completely generic and no more churn in the driver anymore in the future for adding new SoC support. It can significantly save the driver maintain effort. Last, this won't break compatibility. It's just introduce a new binding. Regards Dong Aisheng > > +- clock-output-names: Shall be the corresponding names of the outputs. > > + NOTE this property must be specified in the > same order > > + as the clock bit-offset and hw-autogate property. > > + > > +Legacy binding (DEPRECATED): > > - compatible: Should be one of: > > "fsl,imx8qxp-lpcg-adma", _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel