* Re: [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12
@ 2015-01-13 9:51 MyungJoo Ham
0 siblings, 0 replies; 2+ messages in thread
From: MyungJoo Ham @ 2015-01-13 9:51 UTC (permalink / raw)
To: 최찬우, kgene@kernel.org
Cc: 박경민, rafael.j.wysocki@intel.com,
mark.rutland@arm.com, ABHILASH KESAVAN, tomasz.figa@gmail.com,
Krzysztof Kozlowski, Bartlomiej Zolnierkiewicz,
robh+dt@kernel.org, 대인기,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org
>
> This patch adds the memory bus node for Exynos4x12 SoC. Exynos4x12 SoC has
> two memory bus to translate data between DRAM and eMMC/sub-IPs.
>
> Following list specifies the detailed relation between memory bus clock and DMC
> IP in MIF (Memory Interface) block:
> - DMC/ACP clock : DMC (Dynamic Memory Controller)
>
> Following list specifies the detailed relation between memory bus clock and
> sub-IPs in INT (Internal) block:
> - ACLK100 clock : PERIL/PERIR/MFC(PCLK)
> - ACLK160 clock : CAM/TV/LCD
> - ACLK133 clock : FSYS
> - GDL/GDR clock : leftbus/rightbus
> - SCLK_MFC clock : MFC
>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Myungjoo Ham <myungjoo.ham@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> for all the other dts file patch with Exynos*.
Off Topic. Not urgent. Just out of curiousity:
Do you have some idea on how to express voltage variations
with device tree? (not runtime-AVS, but boottime-AVS. runtime-AVS is rather
trivial)
I think you remember that we often had multiple set of "OPP tables" and
we chose one of them based on the value extracted at boot time in order to
use lower voltage values without deteriorating the reliability.
Basically, such a feature requires to express multiple OPP lists and let
the kernel choose one of the lists at the boot time, which I doubt the
expressiveness in the current device tree technique.
> ---
> arch/arm/boot/dts/exynos4x12.dtsi | 121 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 121 insertions(+)
>
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver
@ 2015-01-08 1:40 Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12 Chanwoo Choi
0 siblings, 1 reply; 2+ messages in thread
From: Chanwoo Choi @ 2015-01-08 1:40 UTC (permalink / raw)
To: myungjoo.ham, kgene
Cc: kyungmin.park, rafael.j.wysocki, mark.rutland, a.kesavan,
tomasz.figa, k.kozlowski, b.zolnierkie, robh+dt, cw00.choi,
inki.dae, linux-pm, linux-kernel, linux-arm-kernel,
linux-samsung-soc
This patch-set adds the generic exynos bus frequency driver for memory bus
with DEVFREQ framework. The Samsung Exynos SoCs have the common architecture
for memory bus between DRAM memory and MMC/sub IP in SoC. This driver can
support the memory bus frequency driver for Exynos SoCs.
Each memory bus block has a clock for memory bus speed and frequency
table which is changed according to the utilization of memory bus on runtime.
And then each memory bus group has the one more memory bus blocks and
OPP table (including frequency and voltage), regulator, devfreq-event
devices.
There are a little difference about the number of memory bus because each Exynos
SoC have the different sub-IP and different memory bus speed. In spite of this
difference among Exynos SoCs, we can support almost Exynos SoC by adding
unique data of memory bus to devicetree file.
Depend on:
- v3.19-rc3
- [PATCHv7 00/10] devfreq: Add devfreq-event class to provide raw data for devfreq device
: https://lkml.org/lkml/2015/1/7/795
Changelog:
Changes from v2:
(https://lkml.org/lkml/2014/12/31/2)
- Support the memory bus frequency feature for Exynos3250-based Monk board
- Fix build warning about variable uninitialized
Changes from v1:
(https://lkml.org/lkml/2014/12/23/178)
- This patchset is rebased on v3.19-rc2.
- Fix bug after wake-up from suspend state. If devfreq device fail to get event,
exynos-busfreq retry to set the event for starting.
- Add memory bus group of Exynos4x12/Exynos4210
- Add divider clock id for Exynos4 memory bus frequency
- Support memory bus frequency driver on Exynos4412-based TRATS2 board
- This patch-set has the dependency on following patch-set[1]:
[1] [PATCHv6 0/9] devfreq: Add devfreq-event class to provide raw data for devfreq device
: https://lkml.org/lkml/2014/12/28/139
Chanwoo Choi (8):
devfreq: exynos: Add generic exynos memory bus frequency driver
devfreq: exynos: Add documentation for generic exynos memory bus frequency driver
ARM: dts: Add memory bus node for Exynos3250
clk: samsung: exynos4: Add divider clock id for memory bus frequency
ARM: dts: Add memory bus node for Exynos4x12
ARM: dts: Add memory bus node for Exynos4210
ARM: dts: Add memory bus node for Exynos3250-based Rinato/Monk board
ARM: dts: Add memory bus node for Exynos4412-based TRATS2 board
.../devicetree/bindings/devfreq/exynos-busfreq.txt | 184 +++++++
arch/arm/boot/dts/exynos3250-monk.dts | 12 +
arch/arm/boot/dts/exynos3250-rinato.dts | 12 +
arch/arm/boot/dts/exynos3250.dtsi | 125 +++++
arch/arm/boot/dts/exynos4210.dtsi | 93 ++++
arch/arm/boot/dts/exynos4412-trats2.dts | 12 +
arch/arm/boot/dts/exynos4x12.dtsi | 121 +++++
drivers/clk/samsung/clk-exynos4.c | 10 +-
drivers/devfreq/Kconfig | 15 +
drivers/devfreq/Makefile | 1 +
drivers/devfreq/exynos-busfreq.c | 589 +++++++++++++++++++++
include/dt-bindings/clock/exynos4.h | 7 +-
12 files changed, 1175 insertions(+), 6 deletions(-)
create mode 100644 Documentation/devicetree/bindings/devfreq/exynos-busfreq.txt
create mode 100644 drivers/devfreq/exynos-busfreq.c
--
1.8.5.5
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12
2015-01-08 1:40 [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver Chanwoo Choi
@ 2015-01-08 1:40 ` Chanwoo Choi
0 siblings, 0 replies; 2+ messages in thread
From: Chanwoo Choi @ 2015-01-08 1:40 UTC (permalink / raw)
To: myungjoo.ham, kgene
Cc: kyungmin.park, rafael.j.wysocki, mark.rutland, a.kesavan,
tomasz.figa, k.kozlowski, b.zolnierkie, robh+dt, cw00.choi,
inki.dae, linux-pm, linux-kernel, linux-arm-kernel,
linux-samsung-soc
This patch adds the memory bus node for Exynos4x12 SoC. Exynos4x12 SoC has
two memory bus to translate data between DRAM and eMMC/sub-IPs.
Following list specifies the detailed relation between memory bus clock and DMC
IP in MIF (Memory Interface) block:
- DMC/ACP clock : DMC (Dynamic Memory Controller)
Following list specifies the detailed relation between memory bus clock and
sub-IPs in INT (Internal) block:
- ACLK100 clock : PERIL/PERIR/MFC(PCLK)
- ACLK160 clock : CAM/TV/LCD
- ACLK133 clock : FSYS
- GDL/GDR clock : leftbus/rightbus
- SCLK_MFC clock : MFC
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Myungjoo Ham <myungjoo.ham@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
arch/arm/boot/dts/exynos4x12.dtsi | 121 ++++++++++++++++++++++++++++++++++++++
1 file changed, 121 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 93b7040..44f6272 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -31,6 +31,127 @@
mshc0 = &mshc_0;
};
+ memory_bus_mif: memory_bus@0 {
+ compatible = "samsung,exynos-memory-bus";
+
+ operating-points = <
+ 400000 1100000
+ 200000 1000000
+ 160000 950000
+ 133000 950000
+ 100000 950000>;
+ status = "disabled";
+
+ blocks {
+ dmc_block: memory_bus_block1 {
+ clocks = <&clock CLK_DIV_DMC>;
+ clock-names = "memory-bus";
+ frequency = <
+ 400000
+ 200000
+ 160000
+ 133000
+ 100000>;
+ };
+
+ acp_block: memory_bus_block2 {
+ clocks = <&clock CLK_DIV_ACP>;
+ clock-names = "memory-bus";
+ frequency = <
+ 200000
+ 160000
+ 133000
+ 133000
+ 100000>;
+ };
+
+ c2c_block: memory_bus_block3 {
+ clocks = <&clock CLK_DIV_C2C>;
+ clock-names = "memory-bus";
+ frequency = <
+ 400000
+ 200000
+ 160000
+ 133000
+ 100000>;
+ };
+ };
+ };
+
+ memory_bus_int: memory_bus@1 {
+ compatible = "samsung,exynos-memory-bus";
+
+ operating-points = <
+ 200000 1000000
+ 160000 950000
+ 133000 925000
+ 100000 900000>;
+
+ status = "disabled";
+
+ blocks {
+ peri_block: memory_bus_block1 {
+ clocks = <&clock CLK_ACLK100>;
+ clock-names = "memory-bus";
+ frequency = <
+ 100000
+ 100000
+ 100000
+ 100000>;
+ };
+
+ fsys_block: memory_bus_block2 {
+ clocks = <&clock CLK_ACLK133>;
+ clock-names = "memory-bus";
+ frequency = <
+ 133000
+ 133000
+ 100000
+ 100000>;
+ };
+
+ display_block: memory_bus_block3 {
+ clocks = <&clock CLK_ACLK160>;
+ clock-names = "memory-bus";
+ frequency = <
+ 160000
+ 160000
+ 133000
+ 100000>;
+ };
+
+ leftbus_block: memory_bus_block4 {
+ clocks = <&clock CLK_DIV_GDL>;
+ clock-names = "memory-bus";
+ frequency = <
+ 200000
+ 160000
+ 133000
+ 100000>;
+ };
+
+ rightbus_block: memory_bus_block5 {
+ clocks = <&clock CLK_DIV_GDR>;
+ clock-names = "memory-bus";
+ frequency = <
+ 200000
+ 160000
+ 133000
+ 100000>;
+ };
+
+ mfc_block: memory_bus_block6 {
+ clocks = <&clock CLK_SCLK_MFC>;
+ clock-names = "memory-bus";
+ frequency = <
+ 200000
+ 160000
+ 133000
+ 100000>;
+ };
+ };
+ };
+
sysram@02020000 {
compatible = "mmio-sram";
reg = <0x02020000 0x40000>;
--
1.8.5.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-01-13 9:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-13 9:51 [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12 MyungJoo Ham
-- strict thread matches above, loose matches on Subject: below --
2015-01-08 1:40 [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver Chanwoo Choi
2015-01-08 1:40 ` [PATCHv3 5/8] ARM: dts: Add memory bus node for Exynos4x12 Chanwoo Choi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).