Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: mobileye: eyeq6h: add OLB nodes OLB and remove fixed clocks

Change the declaration of clocks: remove all fixed clocks and declare
system-controllers (OLB) as clock providers.

Remove eyeq6h-fixed-clocks.dtsi and move the crystal clock to the main
eyeq6h.dtsi file.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Théo Lebrun and committed by
Thomas Bogendoerfer
1be858f7 d3c3c283

+69 -56
-52
arch/mips/boot/dts/mobileye/eyeq6h-fixed-clocks.dtsi
··· 1 - // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - /* 3 - * Copyright 2023 Mobileye Vision Technologies Ltd. 4 - */ 5 - 6 - #include <dt-bindings/clock/mobileye,eyeq5-clk.h> 7 - 8 - / { 9 - xtal: clock-30000000 { 10 - compatible = "fixed-clock"; 11 - #clock-cells = <0>; 12 - clock-frequency = <30000000>; 13 - }; 14 - 15 - pll_west: clock-2000000000-west { 16 - compatible = "fixed-clock"; 17 - #clock-cells = <0>; 18 - clock-frequency = <2000000000>; 19 - }; 20 - 21 - pll_cpu: clock-2000000000-cpu { 22 - compatible = "fixed-clock"; 23 - #clock-cells = <0>; 24 - clock-frequency = <2000000000>; 25 - }; 26 - 27 - /* pll-cpu derivatives */ 28 - occ_cpu: clock-2000000000-occ-cpu { 29 - compatible = "fixed-factor-clock"; 30 - clocks = <&pll_cpu>; 31 - #clock-cells = <0>; 32 - clock-div = <1>; 33 - clock-mult = <1>; 34 - }; 35 - 36 - /* pll-west derivatives */ 37 - occ_periph_w: clock-200000000 { 38 - compatible = "fixed-factor-clock"; 39 - clocks = <&pll_west>; 40 - #clock-cells = <0>; 41 - clock-div = <10>; 42 - clock-mult = <1>; 43 - }; 44 - uart_clk: clock-200000000-uart { 45 - compatible = "fixed-factor-clock"; 46 - clocks = <&occ_periph_w>; 47 - #clock-cells = <0>; 48 - clock-div = <1>; 49 - clock-mult = <1>; 50 - }; 51 - 52 - };
+69 -4
arch/mips/boot/dts/mobileye/eyeq6h.dtsi
··· 5 5 6 6 #include <dt-bindings/interrupt-controller/mips-gic.h> 7 7 8 - #include "eyeq6h-fixed-clocks.dtsi" 8 + #include <dt-bindings/clock/mobileye,eyeq5-clk.h> 9 9 10 10 / { 11 11 #address-cells = <2>; ··· 17 17 device_type = "cpu"; 18 18 compatible = "img,i6500"; 19 19 reg = <0>; 20 - clocks = <&occ_cpu>; 20 + clocks = <&olb_central EQ6HC_CENTRAL_CPU_OCC>; 21 21 }; 22 22 }; 23 23 ··· 32 32 #interrupt-cells = <1>; 33 33 }; 34 34 35 + xtal: clock-30000000 { 36 + compatible = "fixed-clock"; 37 + #clock-cells = <0>; 38 + clock-frequency = <30000000>; 39 + }; 40 + 35 41 soc: soc { 36 42 compatible = "simple-bus"; 37 43 #address-cells = <2>; 38 44 #size-cells = <2>; 39 45 ranges; 46 + 47 + olb_acc: system-controller@d2003000 { 48 + compatible = "mobileye,eyeq6h-acc-olb", "syscon"; 49 + reg = <0x0 0xd2003000 0x0 0x1000>; 50 + #reset-cells = <1>; 51 + #clock-cells = <1>; 52 + clocks = <&xtal>; 53 + clock-names = "ref"; 54 + }; 55 + 56 + olb_central: system-controller@d3100000 { 57 + compatible = "mobileye,eyeq6h-central-olb", "syscon"; 58 + reg = <0x0 0xd3100000 0x0 0x1000>; 59 + #clock-cells = <1>; 60 + clocks = <&xtal>; 61 + clock-names = "ref"; 62 + }; 40 63 41 64 uart0: serial@d3331000 { 42 65 compatible = "arm,pl011", "arm,primecell"; ··· 67 44 reg-io-width = <4>; 68 45 interrupt-parent = <&gic>; 69 46 interrupts = <GIC_SHARED 43 IRQ_TYPE_LEVEL_HIGH>; 70 - clocks = <&occ_periph_w>, <&occ_periph_w>; 47 + clocks = <&olb_west EQ6HC_WEST_PER_UART>, <&olb_west EQ6HC_WEST_PER_OCC>; 71 48 clock-names = "uartclk", "apb_pclk"; 72 49 }; 73 50 ··· 79 56 pinctrl-single,function-mask = <0xffff>; 80 57 }; 81 58 59 + olb_west: system-controller@d3338000 { 60 + compatible = "mobileye,eyeq6h-west-olb", "syscon"; 61 + reg = <0x0 0xd3338000 0x0 0x1000>; 62 + #reset-cells = <1>; 63 + #clock-cells = <1>; 64 + clocks = <&xtal>; 65 + clock-names = "ref"; 66 + }; 67 + 82 68 pinctrl_east: pinctrl@d3357000 { 83 69 compatible = "pinctrl-single"; 84 70 reg = <0x0 0xd3357000 0x0 0xb0>; ··· 96 64 pinctrl-single,function-mask = <0xffff>; 97 65 }; 98 66 67 + olb_east: system-controller@d3358000 { 68 + compatible = "mobileye,eyeq6h-east-olb", "syscon"; 69 + reg = <0x0 0xd3358000 0x0 0x1000>; 70 + #reset-cells = <1>; 71 + #clock-cells = <1>; 72 + clocks = <&xtal>; 73 + clock-names = "ref"; 74 + }; 75 + 76 + olb_south: system-controller@d8013000 { 77 + compatible = "mobileye,eyeq6h-south-olb", "syscon"; 78 + reg = <0x0 0xd8013000 0x0 0x1000>; 79 + #clock-cells = <1>; 80 + clocks = <&xtal>; 81 + clock-names = "ref"; 82 + }; 83 + 99 84 pinctrl_south: pinctrl@d8014000 { 100 85 compatible = "pinctrl-single"; 101 86 reg = <0x0 0xd8014000 0x0 0xf8>; 102 87 #pinctrl-cells = <1>; 103 88 pinctrl-single,register-width = <32>; 104 89 pinctrl-single,function-mask = <0xffff>; 90 + }; 91 + 92 + olb_ddr0: system-controller@e4080000 { 93 + compatible = "mobileye,eyeq6h-ddr0-olb", "syscon"; 94 + reg = <0x0 0xe4080000 0x0 0x1000>; 95 + #clock-cells = <1>; 96 + clocks = <&xtal>; 97 + clock-names = "ref"; 98 + }; 99 + 100 + olb_ddr1: system-controller@e4081000 { 101 + compatible = "mobileye,eyeq6h-ddr1-olb", "syscon"; 102 + reg = <0x0 0xe4081000 0x0 0x1000>; 103 + #clock-cells = <1>; 104 + clocks = <&xtal>; 105 + clock-names = "ref"; 105 106 }; 106 107 107 108 gic: interrupt-controller@f0920000 { ··· 154 89 timer { 155 90 compatible = "mti,gic-timer"; 156 91 interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>; 157 - clocks = <&occ_cpu>; 92 + clocks = <&olb_central EQ6HC_CENTRAL_CPU_OCC>; 158 93 }; 159 94 }; 160 95 };