From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754110AbbLJAuH (ORCPT ); Wed, 9 Dec 2015 19:50:07 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:56965 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751098AbbLJAuD (ORCPT ); Wed, 9 Dec 2015 19:50:03 -0500 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 X-AuditID: cbfee691-f79766d0000012b6-fb-5668cc38a6ec Content-transfer-encoding: 8BIT Message-id: <5668CC37.1090300@samsung.com> Date: Thu, 10 Dec 2015 09:49:59 +0900 From: Chanwoo Choi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Krzysztof Kozlowski , myungjoo.ham@samsung.com, kgene@kernel.org Cc: kyungmin.park@samsung.com, robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, linux@arm.linux.org.uk, tjakobi@math.uni-bielefeld.de, linux.amoon@gmail.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v2 02/19] PM / devfreq: exynos: Add documentation for generic exynos bus frequency driver References: <1449634091-1842-1-git-send-email-cw00.choi@samsung.com> <1449634091-1842-3-git-send-email-cw00.choi@samsung.com> <5668C9BE.7050900@samsung.com> In-reply-to: <5668C9BE.7050900@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrAIsWRmVeSWpSXmKPExsWyRsSkUNfiTEaYwbxdwhbzj5xjteh/s5DV 4tyrlYwWr18YWvQ/fs1scbbpDbvF5V1z2Cw+9x5htJhxfh+TxbqNt9gtbl/mtVh6/SKTxe3G FWwWE6avZbFo3XuE3aJt9QdWBwGPNfPWMHq0NPeweVzu62Xy2DnrLrvHyuVf2Dw2repk8/h3 jN2jb8sqRo/Pm+QCOKO4bFJSczLLUov07RK4Mp43dLAUnFOr2LRiFWsD4xa5LkZODgkBE4lT u2+zQNhiEhfurWfrYuTiEBJYwShxYe1URpiiWx2PGCESSxkl3s+Zyg6S4BUQlPgx+R5QNwcH s4C8xJFL2SBhZgF1iUnzFjFD1D9glHiw8RdUvZbEvqajYDaLgKrEx/XTwBawAcX3v7jBBjJH VCBCovtEJUhYRCBeYtOLq2AHMQvcZZK4+P4JG0hCWCBfYtq2j8wgtpDAAkaJkw8sQWxOAW2J 37ObwBokBLZwSExdPpUZYpmAxLfJh8AOlRCQldh0gBniMUmJgytusExgFJuF5J1ZCO/MQvLO AkbmVYyiqQXJBcVJ6UWmesWJucWleel6yfm5mxiBEX/637OJOxjvH7A+xCjAwajEw3vBJT1M iDWxrLgy9xCjKdARE5mlRJPzgWklryTe0NjMyMLUxNTYyNzSTEmcV0f6Z7CQQHpiSWp2ampB alF8UWlOavEhRiYOTqkGxpCm+TfPH7xyUjlJS6ntpSWX/xWRdLVTP2xe9+5J/VT6f3fUTaFY Vh8RjwxJjZ3TQouvWp/WfuHrHfBbOVvxCFPzymKuKlEn1q+Vy1tVXdxXJr+JjbpusfOl1V2n O/N8VNIt+C3Xzk8qSdO9qfsvumHdNpX0p3FMN2ukDYWFlc5kr2Hb2pKixFKckWioxVxUnAgA GBvgh/MCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLKsWRmVeSWpSXmKPExsVy+t9jAV2LMxlhBhvm81jMP3KO1aL/zUJW i3OvVjJavH5haNH/+DWzxdmmN+wWl3fNYbP43HuE0WLG+X1MFus23mK3uH2Z12Lp9YtMFrcb V7BZTJi+lsWide8Rdou21R9YHQQ81sxbw+jR0tzD5nG5r5fJY+esu+weK5d/YfPYtKqTzePf MXaPvi2rGD0+b5IL4IxqYLTJSE1MSS1SSM1Lzk/JzEu3VfIOjneONzUzMNQ1tLQwV1LIS8xN tVVy8QnQdcvMAfpCSaEsMacUKBSQWFyspG+HaUJoiJuuBUxjhK5vSBBcj5EBGkhYw5jxvKGD peCcWsWmFatYGxi3yHUxcnJICJhI3Op4xAhhi0lcuLeerYuRi0NIYCmjxPs5U9lBErwCghI/ Jt9j6WLk4GAWkJc4cikbJMwsoC4xad4iZoj6B4wSDzb+gqrXktjXdBTMZhFQlfi4fhrYAjag +P4XN9hA5ogKREh0n6gECYsIxEtsenEVbC+zwF0miYvvn7CBJIQF8iWmbfvIDGILCSxglDj5 wBLE5hTQlvg9u4ltAqPALCTnzUI4bxaS8xYwMq9ilEgtSC4oTkrPNcxLLdcrTswtLs1L10vO z93ECE4qz6R2MB7c5X6IUYCDUYmH94JLepgQa2JZcWXuIUYJDmYlEd4vpzLChHhTEiurUovy 44tKc1KLDzGaAv03kVlKNDkfmPDySuINjU3MjCyNzA0tjIzNlcR5ay9FhgkJpCeWpGanphak FsH0MXFwSjUwnlT11HftnHhl2+2Htu4sE7aIbmr6GDghQKrsvx1L2E3l1u6YQ/YvV+Rq61hl lNS4vjkZ9I3Z5u/maZavFizp03mx/OKqNQIPi4yq90rap/o2HHA1avix439B1oljR5lqPk0L XXH8s7rlRzutNVEbpzEusPnZJBt95obHFj3Fw0xV0fUXczrElFiKMxINtZiLihMBa9lVWUAD AAA= 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, On 2015년 12월 10일 09:39, Krzysztof Kozlowski wrote: > On 09.12.2015 13:07, Chanwoo Choi wrote: >> This patch adds the documentation for generic exynos bus frequency >> driver. >> >> Signed-off-by: Chanwoo Choi >> --- >> .../devicetree/bindings/devfreq/exynos-bus.txt | 94 ++++++++++++++++++++++ >> 1 file changed, 94 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> >> diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> new file mode 100644 >> index 000000000000..54a1f9c46c88 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> @@ -0,0 +1,94 @@ >> +* Generic Exynos Bus frequency device >> + >> +The Samsung Exynos SoC have many buses for data transfer between DRAM >> +and sub-blocks in SoC. Almost Exynos SoC have the common architecture >> +for buses. Generally, the each bus of Exynos SoC includes the source clock >> +and power line and then is able to change the clock according to the usage >> +of each buses on runtime. When gathering the usage of each buses on runtime, >> +thie driver uses the PPMU (Platform Performance Monitoring Unit) which > > s/thie/the/ OK. > >> +is able to measure the current load of sub-blocks. >> + >> +There are a little different composition among Exynos SoC because each Exynos >> +SoC has the different sub-blocks. So, this difference should be specified >> +in devicetree file instead of each device driver. In result, this driver >> +is able to support the bus frequency for all Exynos SoCs. >> + >> +Required properties for bus device: >> +- compatible: Should be "samsung,exynos-bus". >> +- clock-names : the name of clock used by the bus, "bus". >> +- clocks : phandles for clock specified in "clock-names" property. >> +- #clock-cells: should be 1. > > This is a clock consumer, right? So the clock-cells is not valid here. You're right. I'll remove '#clock-cells'. > >> +- operating-points-v2: the OPP table including frequency/voltage information >> + to support DVFS (Dynamic Voltage/Frequency Scaling) feature. >> +- vdd-supply: the regulator to provide the buses with the voltage. >> +- devfreq-events: the devfreq-event device to monitor the curret utilization > > s/curret/current/ > >> + of buses. >> + >> +Optional properties for bus device: >> +- exynos,saturation-ratio: the percentage value which is used to calibrate >> + the performance count againt total cycle count. > > s/againt/against/ OK. > >> + >> +Example1: >> + Show the AXI buses of Exynos3250 SoC. Exynos3250 divides the buses to >> + power line (regulator). The MIF (Memory Interface) AXI bus is used to >> + transfer data between DRAM and CPU and uses the VDD_MIF regualtor. >> + >> + - power line(VDD_MIF) --> bus for DMC (Dynamic Memory Controller) block >> + >> + - MIF bus's frequency/voltage table >> + ----------------------- >> + |Lv| Freq | Voltage | >> + ----------------------- >> + |L1| 50000 |800000 | >> + |L2| 100000 |800000 | >> + |L3| 134000 |800000 | >> + |L4| 200000 |800000 | >> + |L5| 400000 |875000 | >> + ----------------------- >> + >> +Example2 : >> + The bus of DMC (Dynamic Memory Controller) block in exynos3250.dtsi >> + are listed below: > > s/are/is/ (one bus is listed) OK. > >> + >> + bus_dmc: bus_dmc { >> + compatible = "samsung,exynos-bus"; >> + clocks = <&cmu_dmc CLK_DIV_DMC>; >> + clock-names = "bus"; >> + operating-points-v2 = <&bus_dmc_opp_table>; >> + status = "disabled"; >> + }; >> + >> + bus_dmc_opp_table: opp_table0 { >> + compatible = "operating-points-v2"; >> + opp-shared; >> + >> + opp00 { > > Maybe use convention with frequency, like: > opp@50000000 > This also used in opp.txt examples. In the Documentations/devicetree/bindings/opp/opp.txt, the example uses the 'opp@0x'. I check the opp.txt of Linux 4.4-rc4. > > >> + opp-hz = /bits/ 64 <50000000>; >> + opp-microvolt = <800000>; >> + }; >> + opp01 { >> + opp-hz = /bits/ 64 <100000000>; >> + opp-microvolt = <800000>; >> + }; >> + opp02 { >> + opp-hz = /bits/ 64 <134000000>; >> + opp-microvolt = <800000>; >> + }; >> + opp03 { >> + opp-hz = /bits/ 64 <200000000>; >> + opp-microvolt = <800000>; >> + }; >> + opp04 { >> + opp-hz = /bits/ 64 <400000000>; >> + opp-microvolt = <875000>; >> + }; >> + }; >> + >> + Usage case to handle the frequency and voltage of bus on runtime >> + in exynos3250-rinato.dts are listed below: > > s/are/is/ OK. > >> + >> + &bus_dmc { >> + devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; >> + vdd-supply = <&buck1_reg>; /* VDD_MIF */ >> + status = "okay"; >> + }; Thanks for your review. Regards, Chanwoo Choi