From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753299AbcHQEua convert rfc822-to-8bit (ORCPT ); Wed, 17 Aug 2016 00:50:30 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:39074 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752003AbcHQEu2 (ORCPT ); Wed, 17 Aug 2016 00:50:28 -0400 X-AuditID: cbfee68d-f79286d000007a9a-9c-57b3ed119008 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: 8BIT Message-id: <57B3ED11.20003@samsung.com> Date: Wed, 17 Aug 2016 13:50:25 +0900 From: Chanwoo Choi Organization: Samsung Electronics User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Lin Huang , heiko@sntech.de, myungjoo.ham@samsung.com Cc: tixy@linaro.org, mark.rutland@arm.com, typ@rock-chips.com, linux-rockchip@lists.infradead.org, airlied@linux.ie, mturquette@baylibre.com, dbasehore@chromium.org, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, dianders@chromium.org, kyungmin.park@samsung.com, sudeep.holla@arm.com, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, mark.yao@rock-chips.com Subject: Re: [PATCH v6 6/8] Documentation: bindings: add dt documentation for rk3399 dmc References: <1471386989-9541-1-git-send-email-hl@rock-chips.com> <1471386989-9541-7-git-send-email-hl@rock-chips.com> In-reply-to: <1471386989-9541-7-git-send-email-hl@rock-chips.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCKsWRmVeSWpSXmKPExsWyRsSkUFfw7eZwg+snTS16z51ksni1eQ+b xdllB9ksrnx9z2bx/9FrVosfG04xW5xtesNusenxNVaLy7vmsFl87j3CaPHpwX9mi6XXLzJZ 7JhygMni4ilXi9uNK9gsfpzpZrFYfmoHi8XC+ffZLWavrnMQ9lgzbw2jx/sbrewesxsusnhc 7utl8rhzbQ+bx/ZvD1g97ncfZ/LYvKTe4++s/SwefVtWMXpsvzaP2ePzJrkAnigum5TUnMyy 1CJ9uwSujIv7rrMWTDKq+N0yi62BcZ5mFyMnh4SAicTJhnPMELaYxIV769lAbCGBFYwSjU/t YGqu/NkEFOcCis9ilHjz7h9YEa+AoMSPyfdYQGxmAXWJSfMWMUPYIhJnOhazQ9jaEssWvmaG aH7AKNG0egszRLOGRPfzr2DNLAKqEvNPLQGz2QS0JPa/uAG2gF9AUeLqj8eMXYwcHKICERLd JypBwiICPhJb950GO4hZYAmzxMV3v8CWCQtESTz7/JIVYtlpRonbsxYzgSQ4BRwl5n7cD5aQ EHjDIdE2byYrxGYBiW+TD7GAbJAQkJXYdAAaFJISB1fcYJnAKDELyaOzkDw6C8mjs5A8uoCR ZRWjaGpBckFxUnqRoV5xYm5xaV66XnJ+7iZGYOI5/e9Z7w7G2wesDzEKcDAq8fA2WGwOF2JN LCuuzD3EaAp00URmKdHkfGB6yyuJNzQ2M7IwNTE1NjK3NFMS51WU+hksJJCeWJKanZpakFoU X1Sak1p8iJGJg1OqgfHQda6UI9Z3nRfEt/2edXHxR36t0kX3t32rfhxx3eUXx5Ff8zyVOabV 2jFHp8xYkcTis7evyMNHxS/0zosf2XMjQ4L1F+59tnJGwERJsc5L547Ws03RlOpfLPPkmt3y WSI7F8kUycl7hMTWzt/05eKsNOHnTQ7hD8IbvCsXcfkJRbfXeCYeuaLEUpyRaKjFXFScCAAF 8o8BNwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBKsWRmVeSWpSXmKPExsVy+t9jQV3Bt5vDDf5c17XoPXeSyeLV5j1s FmeXHWSzuPL1PZvF/0evWS1+bDjFbHG26Q27xabH11gtLu+aw2bxufcIo8WnB/+ZLZZev8hk sWPKASaLi6dcLW43rmCz+HGmm8Vi+akdLBYL599nt5i9us5B2GPNvDWMHu9vtLJ7zG64yOJx ua+XyePOtT1sHtu/PWD1uN99nMlj85J6j7+z9rN49G1Zxeix/do8Zo/Pm+QCeKIaGG0yUhNT UosUUvOS81My89JtlbyD453jTc0MDHUNLS3MlRTyEnNTbZVcfAJ03TJzgH5UUihLzCkFCgUk Fhcr6dthmhAa4qZrAdMYoesbEgTXY2SABhLWMGacOdTMVPDOoOL9wxtMDYy/1LsYOTkkBEwk rvzZxAZhi0lcuLceyObiEBKYxSjx5t0/sASvgKDEj8n3WLoYOTiYBeQljlzKBgkzC6hLTJq3 iBmi/gGjRNPqLcwQ9RoS3c+/soDYLAKqEvNPLQGz2QS0JPa/uAE2k19AUeLqj8eMIDNFBSIk uk9UgoRFBHwktu47DXYDs8ASZomL736xgySEBaIknn1+yQqx7DSjxO1Zi5lAEpwCjhJzP+5n ncAoOAvJrbMQbp2F5NYFjMyrGCVSC5ILipPSc43yUsv1ihNzi0vz0vWS83M3MYJT1TPpHYyH d7kfYhTgYFTi4b1htTlciDWxrLgy9xCjBAezkghv+DOgEG9KYmVValF+fFFpTmrxIUZToGcn MkuJJucD02heSbyhsYmZkaWRuaGFkbG5kjjv4//rwoQE0hNLUrNTUwtSi2D6mDg4pRoYGTn1 VnV1eM7TfKmup8r9yVD4oE94UE5jkuDn7BsMty6fTOzjvsbp8Jp3K9eyHc7MQieOZ/4/4P5K x5bf/KrLyoNK57UFHWKuuVp7/q44ddCogHnOuT2nH6if74p8Pfn+iyurE6yC0+s6WlN3fHb4 GfbyiRG/eYJvYlzvllssS1bzXenxOJmqxFKckWioxVxUnAgAq/IOHmsDAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Lin, On 2016년 08월 17일 07:36, Lin Huang wrote: > This patch adds the documentation for rockchip rk3399 dmc driver. > > Signed-off-by: Lin Huang > --- > Changes in v6: > -Add more detail in Documentation > > Changes in v5: > -None > > Changes in v4: > -None > > Changes in v3: > -None > > Changes in v2: > -None > > Changes in v1: > -None > .../devicetree/bindings/devfreq/rk3399_dmc.txt | 84 ++++++++++++++++++++++ > 1 file changed, 84 insertions(+) > create mode 100644 Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt > > diff --git a/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt b/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt > new file mode 100644 > index 0000000..e73067c > --- /dev/null > +++ b/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt > @@ -0,0 +1,84 @@ > +* Rockchip rk3399 DMC(Dynamic Memory Controller) device > + > +Required properties: > +- compatible: Must be "rockchip,rk3399-dmc". > +- devfreq-events: Node to get ddr loading, Refer to > + Documentation/devicetree/bindings/devfreq/rockchip-dif.txt > +- interrupts: The interrupt number to the cpu. The interrupt specifier format > + depends on the interrupt controller. it should be dcf interrupts, > + when ddr dvfs finish, it will happen. If possible, you better to keep the indentation with other properties. s/it->It, dcf->DCF, ddr->DDR > +- clocks: Phandles for clock specified in "clock-names" property > +- clock-names : The name of clock used by the DFI, must be "pclk_ddr_mon"; > +- operating-points-v2: Refer to Documentation/devicetree/bindings/power/opp.txt > + for details. ditto. > +- center-supply: Dmc supply node. s/Dmc/DMC becaue DMC an abbreviation. > +- status: Marks the node enabled/disabled. > + > +Optional properties: > +- ddr_timing: ddr timing need to pass to arm trust firmware > +- upthreshold: the upthreshold to simpleondeamnd policy > +- downdifferential: The downdifferential to simpleondeamnd policy > + > +Example: > + ddr_timing: ddr_timing { > + compatible = "rockchip,ddr-timing"; I can't find the 'rockchip,ddr-timing' driver on linux-next git repo (20160816). If ddr_timing includes the only properties for ddr_timing, I recommend you make the separate a .dtsi file including the ddr timing configuration. I add the reference and an example on below. > + ddr3_speed_bin = <21>; > + pd_idle = <0>; > + sr_idle = <0>; > + sr_mc_gate_idle = <0>; > + srpd_lite_idle = <0>; > + standby_idle = <0>; > + dram_dll_dis_freq = <300>; > + phy_dll_dis_freq = <125>; > + > + ddr3_odt_dis_freq = <333>; > + ddr3_drv = ; > + ddr3_odt = ; > + phy_ddr3_ca_drv = ; > + phy_ddr3_dq_drv = ; > + phy_ddr3_odt = ; > + > + lpddr3_odt_dis_freq = <333>; > + lpddr3_drv = ; > + lpddr3_odt = ; > + phy_lpddr3_ca_drv = ; > + phy_lpddr3_dq_drv = ; > + phy_lpddr3_odt = ; > + > + lpddr4_odt_dis_freq = <333>; > + lpddr4_drv = ; > + lpddr4_dq_odt = ; > + lpddr4_ca_odt = ; > + phy_lpddr4_ca_drv = ; > + phy_lpddr4_ck_cs_drv = ; > + phy_lpddr4_dq_drv = ; > + phy_lpddr4_odt = ; > + }; > + > + dmc_opp_table: dmc_opp_table { > + compatible = "operating-points-v2"; > + > + opp00 { > + opp-hz = /bits/ 64 <300000000>; > + opp-microvolt = <900000>; > + }; > + opp01 { > + opp-hz = /bits/ 64 <666000000>; > + opp-microvolt = <900000>; > + }; > + }; > + > + dmc: dmc { > + compatible = "rockchip,rk3399-dmc"; > + devfreq-events = <&dfi>; > + interrupts = ; > + clocks = <&cru SCLK_DDRCLK>; > + clock-names = "dmc_clk"; > + ddr_timing = <&ddr_timing>; You can use the following '#include' instead of 'ddr_timing' because the ddr_timing is not a device driver. Instead, the rk3399-dmc must need the ddr timing configuration. #include "rk3399-dmc-timing-conf.dtsi" You can refer the similar usage case[1]. The *.conf.dtsi is used on exynos3250 tmu dt node[2]. [1] arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi [2] arch/arm/boot/dts/exynos3250.dtsi, 224 line. > + operating-points-v2 = <&dmc_opp_table>; > + center-supply = <&ppvar_centerlogic>; > + upthreshold = <15>; > + downdifferential = <10>; > + status = "disabled"; > + }; > + > For example, I think that you can add the following timing .dtsi file. - arch/arm/boot/dts/rk3399-dmc-timing-conf.dtsi /* * Device tree sources for RK3399 DDR timing configuration * * Copyright (c) 2016 Lin Huang * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ rockchip,ddr3_speed_bin = <21>; rockchip,pd_idle = <0>; rockchip,sr_idle = <0>; rockchip,sr_mc_gate_idle = <0>; rockchip,srpd_lite_idle = <0>; rockchip,standby_idle = <0>; rockchip,dram_dll_dis_freq = <300>; rockchip,phy_dll_dis_freq = <125>; rockchip,ddr3_odt_dis_freq = <333>; rockchip,ddr3_drv = ; rockchip,ddr3_odt = ; rockchip,phy_ddr3_ca_drv = ; rockchip,phy_ddr3_dq_drv = ; rockchip,phy_ddr3_odt = ; rockchip,lpddr3_odt_dis_freq = <333>; rockchip,lpddr3_drv = ; rockchip,lpddr3_odt = ; rockchip,phy_lpddr3_ca_drv = ; rockchip,phy_lpddr3_dq_drv = ; rockchip,phy_lpddr3_odt = ; rockchip,lpddr4_odt_dis_freq = <333>; rockchip,lpddr4_drv = ; rockchip,lpddr4_dq_odt = ; rockchip,lpddr4_ca_odt = ; rockchip,phy_lpddr4_ca_drv = ; rockchip,phy_lpddr4_ck_cs_drv = ; rockchip,phy_lpddr4_dq_drv = ; rockchip,phy_lpddr4_odt = ; Regards, Chanwoo Choi