[PATCH 2/7] k210: dts: add missing power bus clocks

Sean Anderson seanga2 at gmail.com
Fri Feb 25 06:13:17 CET 2022


On 2/15/22 11:16 AM, Niklas Cassel wrote:
> From: Damien Le Moal <damien.lemoal at opensource.wdc.com>
> 
> Linux drivers for many of the K210 peripherals depend on the power bus
> clock to be specified. Add the missing clocks and their names to avoid
> problems when booting Linux using u-boot DT.
> 
> Signed-off-by: Damien Le Moal <damien.lemoal at opensource.wdc.com>
> Signed-off-by: Niklas Cassel <niklas.cassel at wdc.com>
> ---
>   arch/riscv/dts/k210.dtsi | 76 ++++++++++++++++++++++++++++------------
>   1 file changed, 53 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/riscv/dts/k210.dtsi b/arch/riscv/dts/k210.dtsi
> index 7dc2785a3e..5c88c8ea8e 100644
> --- a/arch/riscv/dts/k210.dtsi
> +++ b/arch/riscv/dts/k210.dtsi
> @@ -209,7 +209,9 @@
>   				compatible = "canaan,k210-gpio",
>   					     "snps,dw-apb-gpio";
>   				reg = <0x50200000 0x80>;
> -				clocks = <&sysclk K210_CLK_GPIO>;
> +				clocks = <&sysclk K210_CLK_APB0>,
> +					 <&sysclk K210_CLK_GPIO>;
> +				clock-names = "bus", "db";
>   				resets = <&sysrst K210_RST_GPIO>;
>   				status = "disabled";
>   
> @@ -230,7 +232,9 @@
>   					     "snps,dw-apb-uart";
>   				reg = <0x50210000 0x100>;
>   				interrupts = <11>;
> -				clocks = <&sysclk K210_CLK_UART1>;
> +				clocks = <&sysclk K210_CLK_UART1>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "baudclk", "apb_pclk";
>   				resets = <&sysrst K210_RST_UART1>;
>   				reg-io-width = <4>;
>   				reg-shift = <2>;
> @@ -246,7 +250,9 @@
>   					     "snps,dw-apb-uart";
>   				reg = <0x50220000 0x100>;
>   				interrupts = <12>;
> -				clocks = <&sysclk K210_CLK_UART2>;
> +				clocks = <&sysclk K210_CLK_UART2>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "baudclk", "apb_pclk";
>   				resets = <&sysrst K210_RST_UART2>;
>   				reg-io-width = <4>;
>   				reg-shift = <2>;
> @@ -262,7 +268,9 @@
>   					     "snps,dw-apb-uart";
>   				reg = <0x50230000 0x100>;
>   				interrupts = <13>;
> -				clocks = <&sysclk K210_CLK_UART3>;
> +				clocks = <&sysclk K210_CLK_UART3>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "baudclk", "apb_pclk";
>   				resets = <&sysrst K210_RST_UART3>;
>   				reg-io-width = <4>;
>   				reg-shift = <2>;
> @@ -280,7 +288,9 @@
>   				spi-slave;
>   				reg = <0x50240000 0x100>;
>   				interrupts = <2>;
> -				clocks = <&sysclk K210_CLK_SPI2>;
> +				clocks = <&sysclk K210_CLK_SPI2>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "ssi_clk", "pclk";
>   				resets = <&sysrst K210_RST_SPI2>;
>   				spi-max-frequency = <25000000>;
>   				status = "disabled";
> @@ -330,7 +340,9 @@
>   					     "snps,designware-i2c";
>   				reg = <0x50280000 0x100>;
>   				interrupts = <8>;
> -				clocks = <&sysclk K210_CLK_I2C0>;
> +				clocks = <&sysclk K210_CLK_I2C0>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "ref", "pclk";
>   				resets = <&sysrst K210_RST_I2C0>;
>   				status = "disabled";
>   			};
> @@ -340,7 +352,9 @@
>   					     "snps,designware-i2c";
>   				reg = <0x50290000 0x100>;
>   				interrupts = <9>;
> -				clocks = <&sysclk K210_CLK_I2C1>;
> +				clocks = <&sysclk K210_CLK_I2C1>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "ref", "pclk";
>   				resets = <&sysrst K210_RST_I2C1>;
>   				status = "disabled";
>   			};
> @@ -350,7 +364,9 @@
>   					     "snps,designware-i2c";
>   				reg = <0x502A0000 0x100>;
>   				interrupts = <10>;
> -				clocks = <&sysclk K210_CLK_I2C2>;
> +				clocks = <&sysclk K210_CLK_I2C2>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "ref", "pclk";
>   				resets = <&sysrst K210_RST_I2C2>;
>   				status = "disabled";
>   			};
> @@ -358,7 +374,9 @@
>   			fpioa: pinmux at 502B0000 {
>   				compatible = "canaan,k210-fpioa";
>   				reg = <0x502B0000 0x100>;
> -				clocks = <&sysclk K210_CLK_FPIOA>;
> +				clocks = <&sysclk K210_CLK_FPIOA>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "ref", "pclk";
>   				resets = <&sysrst K210_RST_FPIOA>;
>   				canaan,k210-sysctl = <&sysctl>;
>   				canaan,k210-power-offset = <K210_SYSCTL_POWER_SEL>;
> @@ -387,8 +405,9 @@
>   					     "snps,dw-apb-timer";
>   				reg = <0x502D0000 0x100>;
>   				interrupts = <14 15>;
> -				clocks = <&sysclk K210_CLK_TIMER0>;
> -				clock-names = "timer";
> +				clocks = <&sysclk K210_CLK_TIMER0>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "timer", "pclk";
>   				resets = <&sysrst K210_RST_TIMER0>;
>   				status = "disabled";
>   			};
> @@ -398,8 +417,9 @@
>   					     "snps,dw-apb-timer";
>   				reg = <0x502E0000 0x100>;
>   				interrupts = <16 17>;
> -				clocks = <&sysclk K210_CLK_TIMER1>;
> -				clock-names = "timer";
> +				clocks = <&sysclk K210_CLK_TIMER1>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "timer", "pclk";
>   				resets = <&sysrst K210_RST_TIMER1>;
>   				status = "disabled";
>   			};
> @@ -409,8 +429,9 @@
>   					     "snps,dw-apb-timer";
>   				reg = <0x502F0000 0x100>;
>   				interrupts = <18 19>;
> -				clocks = <&sysclk K210_CLK_TIMER2>;
> -				clock-names = "timer";
> +				clocks = <&sysclk K210_CLK_TIMER2>,
> +					 <&sysclk K210_CLK_APB0>;
> +				clock-names = "timer", "pclk";
>   				resets = <&sysrst K210_RST_TIMER2>;
>   				status = "disabled";
>   			};
> @@ -427,7 +448,9 @@
>   				compatible = "canaan,k210-wdt", "snps,dw-wdt";
>   				reg = <0x50400000 0x100>;
>   				interrupts = <21>;
> -				clocks = <&sysclk K210_CLK_WDT0>;
> +				clocks = <&sysclk K210_CLK_WDT0>,
> +					 <&sysclk K210_CLK_APB1>;
> +				clock-names = "tclk", "pclk";
>   				resets = <&sysrst K210_RST_WDT0>;
>   			};
>   
> @@ -435,7 +458,9 @@
>   				compatible = "canaan,k210-wdt", "snps,dw-wdt";
>   				reg = <0x50410000 0x100>;
>   				interrupts = <22>;
> -				clocks = <&sysclk K210_CLK_WDT1>;
> +				clocks = <&sysclk K210_CLK_WDT1>,
> +					 <&sysclk K210_CLK_APB1>;
> +				clock-names = "tclk", "pclk";
>   				resets = <&sysrst K210_RST_WDT1>;
>   				status = "disabled";
>   			};
> @@ -494,6 +519,8 @@
>   				compatible = "canaan,k210-sysctl",
>   					     "syscon", "simple-mfd";
>   				reg = <0x50440000 0x100>;
> +				clocks = <&sysclk K210_CLK_APB1>;
> +				clock-names = "pclk";
>   				reg-io-width = <4>;
>   				u-boot,dm-pre-reloc;
>   
> @@ -558,8 +585,9 @@
>   					     "snps,dw-apb-ssi";
>   				reg = <0x52000000 0x100>;
>   				interrupts = <1>;
> -				clocks = <&sysclk K210_CLK_SPI0>;
> -				clock-names = "ssi_clk";
> +				clocks = <&sysclk K210_CLK_SPI0>,
> +					 <&sysclk K210_CLK_APB2>;
> +				clock-names = "ssi_clk", "pclk";
>   				resets = <&sysrst K210_RST_SPI0>;
>   				spi-max-frequency = <25000000>;
>   				num-cs = <4>;
> @@ -575,8 +603,9 @@
>   					     "snps,dw-apb-ssi";
>   				reg = <0x53000000 0x100>;
>   				interrupts = <2>;
> -				clocks = <&sysclk K210_CLK_SPI1>;
> -				clock-names = "ssi_clk";
> +				clocks = <&sysclk K210_CLK_SPI1>,
> +					 <&sysclk K210_CLK_APB2>;
> +				clock-names = "ssi_clk", "pclk";
>   				resets = <&sysrst K210_RST_SPI1>;
>   				spi-max-frequency = <25000000>;
>   				num-cs = <4>;
> @@ -591,8 +620,9 @@
>   					     "snps,dwc-ssi-1.01a";
>   				reg = <0x54000000 0x200>;
>   				interrupts = <4>;
> -				clocks = <&sysclk K210_CLK_SPI3>;
> -				clock-names = "ssi_clk";
> +				clocks = <&sysclk K210_CLK_SPI3>,
> +					 <&sysclk K210_CLK_APB2>;
> +				clock-names = "ssi_clk", "pclk";
>   				resets = <&sysrst K210_RST_SPI3>;
>   				/* Could possibly go up to 200 MHz */
>   				spi-max-frequency = <100000000>;
> 

Reviewed-by: Sean Anderson <seanga2 at gmail.com>


More information about the U-Boot mailing list