From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932934AbcHWFFt convert rfc822-to-8bit (ORCPT ); Tue, 23 Aug 2016 01:05:49 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:43545 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932436AbcHWFFr (ORCPT ); Tue, 23 Aug 2016 01:05:47 -0400 X-AuditID: cbfee68d-f79286d000007a9a-9c-57bbd9a7f5e9 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT Message-id: <57BBD9A7.7090603@samsung.com> Date: Tue, 23 Aug 2016 14:05:43 +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: hl , heiko@sntech.de, myungjoo.ham@samsung.com Cc: tixy@linaro.org, mark.rutland@arm.com, dbasehore@chromium.org, linux-pm@vger.kernel.org, airlied@linux.ie, mturquette@baylibre.com, typ@rock-chips.com, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, dianders@chromium.org, linux-rockchip@lists.infradead.org, kyungmin.park@samsung.com, sudeep.holla@arm.com, 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> <57B3ED11.20003@samsung.com> <57BA2834.6090409@rock-chips.com> In-reply-to: <57BA2834.6090409@rock-chips.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRmVeSWpSXmKPExsWyRsSkUHf5zd3hBiv/W1r0njvJZPFq8x42 i7PLDrJZXPn6ns3i/6PXrBY/Npxitjjb9IbdYtPja6wWl3fNYbP43HuE0eLTg//MFkuvX2Sy 2DHlAJPFxVOuFrcbV7BZ/DjTzWKx/NQOFouF8++zW8xeXecg7LFm3hpGj/c3Wtk9ZjdcZPG4 3NfL5HHn2h42j+3fHrB63O8+zuSxeUm9x99Z+1k8+rasYvTYfm0es8fnTXIBPFFcNimpOZll qUX6dglcGT1XOtgKVtpX7Ovex9LA2GXUxcjJISFgIrFg0gNWCFtM4sK99WxdjFwcQgIrGCVu /9nBCFO0/WAzM0RiFqPEo2OnwDp4BQQlfky+x9LFyMHBLKAuMWVKLkiYWUBE4v/0vYwQtrbE soWvoXofMEpMXbyfCaJXS+LElDdsIDaLgKrE1Yeb2UFsNqD4/hc3wOL8AooSV388ZgSZLyoQ IdF9ohLEFBFwlfh8yhdkJLPAMmaJiZ8XMYOUCwtESTz7/JIVYlcPk8Sk/w1gt3EK6El87MsC iUsIPOGQONo3ix1ir4DEt8mHwGokBGQlNh1ghvhXUuLgihssExglZiH5chbCl7OQfDkLyZcL GFlWMYqmFiQXFCelFxnqFSfmFpfmpesl5+duYgSmnNP/nvXuYLx9wPoQowAHoxIP7w723eFC rIllxZW5hxhNgQ6ayCwlmpwPTGx5JfGGxmZGFqYmpsZG5pZmSuK8ilI/g4UE0hNLUrNTUwtS i+KLSnNSiw8xMnFwSjUw8gV8LDYJWfY66XRUleT/x/59d5dpaOZs/VH/leuiclDH24Odu5k2 e288zrLloZ9ubcade/mXmcWzcwR3H/N6l3vMftLzomu5bgkCkYbFF+9b1t1uClysqRYw25Hj i4B0c9neyWtOieo7TN/16uciv5C5Ex90WMwKirt2rHayg37Anoo3UaIdSizFGYmGWsxFxYkA 9SpPmDQDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCKsWRmVeSWpSXmKPExsVy+t9jQd3lN3eHG3w5aGjRe+4kk8WrzXvY LM4uO8hmceXrezaL/49es1r82HCK2eJs0xt2i02Pr7FaXN41h83ic+8RRotPD/4zWyy9fpHJ YseUA0wWF0+5WtxuXMFm8eNMN4vF8lM7WCwWzr/PbjF7dZ2DsMeaeWsYPd7faGX3mN1wkcXj cl8vk8eda3vYPLZ/e8Dqcb/7OJPH5iX1Hn9n7Wfx6NuyitFj+7V5zB6fN8kF8EQ1MNpkpCam pBYppOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAP2opFCWmFMKFApI LC5W0rfDNCE0xE3XAqYxQtc3JAiux8gADSSsYcw4ufQ/e8Ft24qZMw8xNTDuMehi5OSQEDCR 2H6wmRnCFpO4cG89WxcjF4eQwCxGiUfHTrGCJHgFBCV+TL7H0sXIwcEsIC9x5FI2hKkuMWVK LkT5A0aJqYv3M0GUa0mcmPKGDcRmEVCVuPpwMzuIzQYU3//iBlicX0BR4uqPx4wgc0QFIiS6 T1SCmCICrhKfT/mCjGQWWMYsMfHzIrDThAWiJJ59fskKsauHSWLS/wawczgF9CQ+9mVNYBSc heTQWQiHzkI4dAEj8ypGidSC5ILipPRco7zUcr3ixNzi0rx0veT83E2M4BT1THoH4+Fd7ocY BTgYlXh4b+TtDhdiTSwrrsw9xCjBwawkwtt2BSjEm5JYWZValB9fVJqTWnyI0RTo04nMUqLJ +cD0mVcSb2hsYmZkaWRuaGFkbK4kzvv4/7owIYH0xJLU7NTUgtQimD4mDk6pBsZVl27utbjv dne9jXlk+BKjZQK2JdKMFdKLBew33VJk21A134J99/Wp8nK/Gv1ONaYHdEvNn73kuz6Pbsf9 JW87qu+YKWwvbFRInVAyLcZlqdWy7ibh9TZRVWbJLfwzXfIjXNUl25dnOxVklxnd9dvCvvbq qwf2Oz/1BwbuPTgnmm154cEmHSWW4oxEQy3mouJEAFK0fjRnAwAA 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월 22일 07:16, hl wrote: > Hi Chanwoo Choi, > > On 2016年08月17日 12:50, Chanwoo Choi wrote: >> 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 = ; > Actually, i am doing like it on my downstream dtsi, but how to explain it in rk3399_dmc Documentation? > Creat a new ddr_timing Documentation? But it is not a driver, just a dtsi, that why i put it on rk3399_dmc.txt > now, do you have a better idea? I think that you don't need to add the new ddr_timing document. The ddr_timing value are only used in the rk3399_dmc.c driver. So, the description of ddr_timing information should be included in rk3399_dmc.txt. As I already mentioned, please refer the the similiar case[1][2]. The exynos-thermal.txt[2] include the description of propertis[1]. [1] arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi [2] Documentation/devicetree/bindings/tmu/exynos-thermal.txt -- Best Regards, Chanwoo Choi