From: icenowy-h8G6r0blFSE@public.gmane.org
To: "Ondřej Jirman" <megi-DlDF6nMZSto@public.gmane.org>
Cc: Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org>,
linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v4 4/5] ARM: sunxi: h3/h5: switch apb0-related clocks to r_ccu
Date: Thu, 20 Jul 2017 10:03:57 +0800 [thread overview]
Message-ID: <3299ee7dd04482f0a21752651335e223@aosc.io> (raw)
In-Reply-To: <1500505173.23770.1.camel-DlDF6nMZSto@public.gmane.org>
在 2017-07-20 06:59,Ondřej Jirman 写道:
> Hi,
>
> Icenowy Zheng píše v Út 04. 04. 2017 v 17:50 +0800:
>> From: Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org>
>>
>> Now we have driver for the PRCM CCU, switch to use it instead of
>> old-style clock nodes for apb0-related clocks in sunxi-h3-h5.dtsi .
>>
>> The mux 3 of R_CCU is still the internal oscillator, which is said to
>> be
>> 16MHz plus minus 30%, and get a measured value of 15MHz~16MHz on my
>> two
>> H3 boards and one H5 board.
>
> There's issue with the new r_ccu that breaks r_i2c. (no devices can be
> found on the bus). Reverting this patch fixes the issue with the I2C
> controller. (everything else being the same)
>
> Here's the code I'm using: https://github.com/megous/linux/commits/oran
> ge-pi-4.12
>
> The last commit is the revert.
>
> The issue manifests itself by non-working DVFS, because kernel lacks
> access to SY8106A regulator, because r_i2c doesn't work with sunxi-ng
> clock driver (sun8i-r).
>
> Relevant difference in registers between working/non-working state is
> just this (diff -u):
>
> 0x01f02400 = 0x00000000
> 0x01f02404 = 0x00000000
> -0x01f02408 = 0x00000091
> +0x01f02408 = 0x00000095 DATA register inisde the I2C controller
> 0x01f0240c = 0x00000044
> 0x01f02410 = 0x000000f8
> -0x01f02414 = 0x00000059
> +0x01f02414 = 0x00000000 CLOCK setup register inside the I2C controller
> 0x01f02418 = 0x00000000
> 0x01f0241c = 0x00000000
> 0x01f02420 = 0x0000003a
>
> It looks like the new sunxi-ng clock driver causes the I2C driver to
> not correctly configure the CLOCK register. I don't know why and I'm
> not sure how to deal with this. Any ideas what can I do next?
>
> thank you and regards,
> o.
It seems to be a very very very weird problem -- the CPUS_CFG register
seems to be not accessible in non-secure mode on H3, and if the r_ccu
driver reads it a value of 0x0 is read out (which means that the parent
of ar100 is osc32k), but the real initial value of the register is
0x00010000 (which means the parent is osc24M).
So the bus clock of r_i2c is wrongly claimed as 32kHz, not 24MHz, then
the r_i2c fails to work.
This clock problem doesn't exist for A64.
>
>> Signed-off-by: Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org>
>> ---
>> Changes in v4:
>> - Temporarily dropped the CCU headers.
>> Changes in v3:
>> - Change osc32000 to iosc.
>>
>> arch/arm/boot/dts/sunxi-h3-h5.dtsi | 45
>> ++++++++++++--------------------------
>> 1 file changed, 14 insertions(+), 31 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
>> b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
>> index 6640ebfa6419..1aeeacb3a884 100644
>> --- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
>> +++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
>> @@ -68,31 +68,12 @@
>> clock-output-names = "osc32k";
>> };
>>
>> - apb0: apb0_clk {
>> - compatible = "fixed-factor-clock";
>> + iosc: internal-osc-clk {
>> #clock-cells = <0>;
>> - clock-div = <1>;
>> - clock-mult = <1>;
>> - clocks = <&osc24M>;
>> - clock-output-names = "apb0";
>> - };
>> -
>> - apb0_gates: clk@01f01428 {
>> - compatible = "allwinner,sun8i-h3-apb0-gates-clk",
>> - "allwinner,sun4i-a10-gates-clk";
>> - reg = <0x01f01428 0x4>;
>> - #clock-cells = <1>;
>> - clocks = <&apb0>;
>> - clock-indices = <0>, <1>;
>> - clock-output-names = "apb0_pio", "apb0_ir";
>> - };
>> -
>> - ir_clk: ir_clk@01f01454 {
>> - compatible = "allwinner,sun4i-a10-mod0-clk";
>> - reg = <0x01f01454 0x4>;
>> - #clock-cells = <0>;
>> - clocks = <&osc32k>, <&osc24M>;
>> - clock-output-names = "ir";
>> + compatible = "fixed-clock";
>> + clock-frequency = <16000000>;
>> + clock-accuracy = <300000000>;
>> + clock-output-names = "iosc";
>> };
>> };
>>
>> @@ -576,9 +557,12 @@
>> <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
>> };
>>
>> - apb0_reset: reset@01f014b0 {
>> - reg = <0x01f014b0 0x4>;
>> - compatible = "allwinner,sun6i-a31-clock-reset";
>> + r_ccu: clock@1f01400 {
>> + compatible = "allwinner,sun50i-a64-r-ccu";
>> + reg = <0x01f01400 0x100>;
>> + clocks = <&osc24M>, <&osc32k>, <&iosc>;
>> + clock-names = "hosc", "losc", "iosc";
>> + #clock-cells = <1>;
>> #reset-cells = <1>;
>> };
>>
>> @@ -589,9 +573,9 @@
>>
>> ir: ir@01f02000 {
>> compatible = "allwinner,sun5i-a13-ir";
>> - clocks = <&apb0_gates 1>, <&ir_clk>;
>> + clocks = <&r_ccu 4>, <&r_ccu 11>;
>> clock-names = "apb", "ir";
>> - resets = <&apb0_reset 1>;
>> + resets = <&r_ccu 0>;
>> interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
>> reg = <0x01f02000 0x40>;
>> status = "disabled";
>> @@ -601,9 +585,8 @@
>> compatible = "allwinner,sun8i-h3-r-pinctrl";
>> reg = <0x01f02c00 0x400>;
>> interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
>> - clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
>> + clocks = <&r_ccu 3>, <&osc24M>, <&osc32k>;
>> clock-names = "apb", "hosc", "losc";
>> - resets = <&apb0_reset 0>;
>> gpio-controller;
>> #gpio-cells = <3>;
>> interrupt-controller;
>> --
>> 2.12.2
>>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
next prev parent reply other threads:[~2017-07-20 2:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-04 9:50 [PATCH v4 0/5] Add support for the R_CCU on Allwinner H3/A64 SoCs Icenowy Zheng
[not found] ` <20170404095100.18649-1-icenowy-h8G6r0blFSE@public.gmane.org>
2017-04-04 9:50 ` [PATCH v4 1/5] dt-bindings: update device tree binding for Allwinner PRCM CCUs Icenowy Zheng
2017-04-04 9:50 ` [PATCH v4 2/5] clk: sunxi-ng: add support for " Icenowy Zheng
2017-04-04 9:50 ` [PATCH v4 3/5] arm64: allwinner: a64: add r_ccu node Icenowy Zheng
2017-04-04 9:50 ` [PATCH v4 4/5] ARM: sunxi: h3/h5: switch apb0-related clocks to r_ccu Icenowy Zheng
[not found] ` <20170404095100.18649-5-icenowy-h8G6r0blFSE@public.gmane.org>
2017-07-19 22:59 ` 'Ondřej Jirman' via linux-sunxi
[not found] ` <1500505173.23770.1.camel-DlDF6nMZSto@public.gmane.org>
2017-07-20 2:03 ` icenowy-h8G6r0blFSE [this message]
[not found] ` <3299ee7dd04482f0a21752651335e223-h8G6r0blFSE@public.gmane.org>
2017-07-20 2:19 ` icenowy-h8G6r0blFSE
2017-07-20 5:15 ` icenowy-h8G6r0blFSE
2017-07-20 8:21 ` icenowy-h8G6r0blFSE
[not found] ` <a934bb1292328400004e58c886ccd693-h8G6r0blFSE@public.gmane.org>
2017-07-20 12:12 ` 'Ondřej Jirman' via linux-sunxi
2017-04-04 9:51 ` [PATCH v4 5/5] arm64: allwinner: a64: add R_PIO pinctrl node Icenowy Zheng
2017-04-04 15:45 ` [PATCH v4 0/5] Add support for the R_CCU on Allwinner H3/A64 SoCs Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3299ee7dd04482f0a21752651335e223@aosc.io \
--to=icenowy-h8g6r0blfse@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=icenowy-ymACFijhrKM@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=megi-DlDF6nMZSto@public.gmane.org \
--cc=wens-jdAy2FN1RRM@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).