[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2232281.fbydzq3GMs@wuerfel>
Date: Thu, 27 Nov 2014 14:15:18 +0100
From: Arnd Bergmann <arnd@...db.de>
To: Chanwoo Choi <cw00.choi@...sung.com>
Cc: Sylwester Nawrocki <s.nawrocki@...sung.com>,
linux-samsung-soc@...r.kernel.org, linux-kernel@...r.kernel.org,
kgene.kim@...sung.com, mark.rutland@....com, olof@...om.net,
catalin.marinas@....com, will.deacon@....com,
tomasz.figa@...il.com, thomas.abraham@...aro.org,
linus.walleij@...aro.org, kyungmin.park@...sung.com,
inki.dae@...sung.com, chanho61.park@...sung.com,
geunsik.lim@...sung.com, sw0312.kim@...sung.com,
jh80.chung@...sung.com, a.kesavan@...sung.com,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH 11/19] clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains
On Thursday 27 November 2014 21:58:53 Chanwoo Choi wrote:
> Dear Arnd,
>
> On 11/27/2014 09:35 PM, Arnd Bergmann wrote:
> > On Thursday 27 November 2014 13:12:08 Sylwester Nawrocki wrote:
> >> On 27/11/14 12:56, Chanwoo Choi wrote:
> >>> On 11/27/2014 08:41 PM, Arnd Bergmann wrote:
> >>>>> On Thursday 27 November 2014 16:35:08 Chanwoo Choi wrote:
> >>>>>>> + - "samsung,exynos5433-cmu-bus0", "samsung,exynos5433-cmu-bus1"
> >>>>>>> + and "samsung,exynos5433-cmu-bus2" - clock controller compatible for CMU_BUS
> >>>>>>> + which generates global data buses clock and global peripheral buses clock.
> >>>>>>>
> >>>>>>> - reg: physical base address of the controller and length of memory mapped
> >>>>>>> region.
> >>>>>>>
> >>>>>
> >>>>> This looks like you are duplicating the bindings and the code, but
> >>>>> it's really the same hardware multiple times with minor variations
> >>>>> that you should be able to describe properly here. Why not make
> >>>>> three nodes with the same compatible string and have them handled
> >>>>> by the same code?
> >>>
> >>> Each CMU_BUSx domain of Exynos5433 have different base address as following:
> >>> - CMU_BUS0's base address and range : 0x1360_0000 ~ 0x1360_0b04
> >>> - CMU_BUS1's base address and range : 0x1480_0000 ~ 0x1480_0b04
> >>> - CMU_BUS2's base address and range : 0x1340_0000 ~ 0x1340_0b04
> >>>
> >>> So, I implement CMU_BUSx domain which has each compatible string.
> >
> > But the base address is in the reg property, not in the compatible
> > property. What I mean is to have multiple nodes like
>
> The merged clock driver in mainline have different compatible string
> if base addresss of clock domain is different. So, I implemented each CMU_BUSx domain
> with different compatible string.
Why?
> > clock-controller@...600000 {
> > reg = <0 0x113600000 0 0x1000>;
> > compatible = "samsung,exynos5433-cmu";
> > #clock-cells = <1>;
> > };
> >
> > clock-controller@...800000 {
> > reg = <0 0x114800000 0 0x1000>;
> > compatible = "samsung,exynos5433-cmu";
> > #clock-cells = <1>;
> > };
> >
> > The code will just map the local registers for each instance and then
> > provide the clocks of the right instance when asked for it.
>
> Each clock domain has not the same mux/divider/clock. So, just one compatible
> string could not support all of clock domains.
What are the specific differences? I saw that one of them has more
outputs than the others but it seemed like a superset, so you just
wouldn't be allowed to access the non-connected outputs.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists