1*9b7e81a9SThéo Lebrun// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*9b7e81a9SThéo Lebrun/* 3*9b7e81a9SThéo Lebrun * Copyright 2023 Mobileye Vision Technologies Ltd. 4*9b7e81a9SThéo Lebrun */ 5*9b7e81a9SThéo Lebrun 6*9b7e81a9SThéo Lebrun#include <dt-bindings/clock/mobileye,eyeq5-clk.h> 7*9b7e81a9SThéo Lebrun 8*9b7e81a9SThéo Lebrun/ { 9*9b7e81a9SThéo Lebrun /* Fixed clock */ 10*9b7e81a9SThéo Lebrun xtal: xtal { 11*9b7e81a9SThéo Lebrun compatible = "fixed-clock"; 12*9b7e81a9SThéo Lebrun #clock-cells = <0>; 13*9b7e81a9SThéo Lebrun clock-frequency = <30000000>; 14*9b7e81a9SThéo Lebrun }; 15*9b7e81a9SThéo Lebrun 16*9b7e81a9SThéo Lebrun/* PLL_CPU derivatives */ 17*9b7e81a9SThéo Lebrun occ_cpu: occ-cpu { 18*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 19*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_CPU>; 20*9b7e81a9SThéo Lebrun #clock-cells = <0>; 21*9b7e81a9SThéo Lebrun clock-div = <1>; 22*9b7e81a9SThéo Lebrun clock-mult = <1>; 23*9b7e81a9SThéo Lebrun }; 24*9b7e81a9SThéo Lebrun si_css0_ref_clk: si-css0-ref-clk { /* gate ClkRstGen_si_css0_ref */ 25*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 26*9b7e81a9SThéo Lebrun clocks = <&occ_cpu>; 27*9b7e81a9SThéo Lebrun #clock-cells = <0>; 28*9b7e81a9SThéo Lebrun clock-div = <1>; 29*9b7e81a9SThéo Lebrun clock-mult = <1>; 30*9b7e81a9SThéo Lebrun }; 31*9b7e81a9SThéo Lebrun cpc_clk: cpc-clk { 32*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 33*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 34*9b7e81a9SThéo Lebrun #clock-cells = <0>; 35*9b7e81a9SThéo Lebrun clock-div = <1>; 36*9b7e81a9SThéo Lebrun clock-mult = <1>; 37*9b7e81a9SThéo Lebrun }; 38*9b7e81a9SThéo Lebrun core0_clk: core0-clk { 39*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 40*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 41*9b7e81a9SThéo Lebrun #clock-cells = <0>; 42*9b7e81a9SThéo Lebrun clock-div = <1>; 43*9b7e81a9SThéo Lebrun clock-mult = <1>; 44*9b7e81a9SThéo Lebrun }; 45*9b7e81a9SThéo Lebrun core1_clk: core1-clk { 46*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 47*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 48*9b7e81a9SThéo Lebrun #clock-cells = <0>; 49*9b7e81a9SThéo Lebrun clock-div = <1>; 50*9b7e81a9SThéo Lebrun clock-mult = <1>; 51*9b7e81a9SThéo Lebrun }; 52*9b7e81a9SThéo Lebrun core2_clk: core2-clk { 53*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 54*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 55*9b7e81a9SThéo Lebrun #clock-cells = <0>; 56*9b7e81a9SThéo Lebrun clock-div = <1>; 57*9b7e81a9SThéo Lebrun clock-mult = <1>; 58*9b7e81a9SThéo Lebrun }; 59*9b7e81a9SThéo Lebrun core3_clk: core3-clk { 60*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 61*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 62*9b7e81a9SThéo Lebrun #clock-cells = <0>; 63*9b7e81a9SThéo Lebrun clock-div = <1>; 64*9b7e81a9SThéo Lebrun clock-mult = <1>; 65*9b7e81a9SThéo Lebrun }; 66*9b7e81a9SThéo Lebrun cm_clk: cm-clk { 67*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 68*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 69*9b7e81a9SThéo Lebrun #clock-cells = <0>; 70*9b7e81a9SThéo Lebrun clock-div = <1>; 71*9b7e81a9SThéo Lebrun clock-mult = <1>; 72*9b7e81a9SThéo Lebrun }; 73*9b7e81a9SThéo Lebrun mem_clk: mem-clk { 74*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 75*9b7e81a9SThéo Lebrun clocks = <&si_css0_ref_clk>; 76*9b7e81a9SThéo Lebrun #clock-cells = <0>; 77*9b7e81a9SThéo Lebrun clock-div = <1>; 78*9b7e81a9SThéo Lebrun clock-mult = <1>; 79*9b7e81a9SThéo Lebrun }; 80*9b7e81a9SThéo Lebrun occ_isram: occ-isram { 81*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 82*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_CPU>; 83*9b7e81a9SThéo Lebrun #clock-cells = <0>; 84*9b7e81a9SThéo Lebrun clock-div = <2>; 85*9b7e81a9SThéo Lebrun clock-mult = <1>; 86*9b7e81a9SThéo Lebrun }; 87*9b7e81a9SThéo Lebrun isram_clk: isram-clk { /* gate ClkRstGen_isram */ 88*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 89*9b7e81a9SThéo Lebrun clocks = <&occ_isram>; 90*9b7e81a9SThéo Lebrun #clock-cells = <0>; 91*9b7e81a9SThéo Lebrun clock-div = <1>; 92*9b7e81a9SThéo Lebrun clock-mult = <1>; 93*9b7e81a9SThéo Lebrun }; 94*9b7e81a9SThéo Lebrun occ_dbu: occ-dbu { 95*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 96*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_CPU>; 97*9b7e81a9SThéo Lebrun #clock-cells = <0>; 98*9b7e81a9SThéo Lebrun clock-div = <10>; 99*9b7e81a9SThéo Lebrun clock-mult = <1>; 100*9b7e81a9SThéo Lebrun }; 101*9b7e81a9SThéo Lebrun si_dbu_tp_pclk: si-dbu-tp-pclk { /* gate ClkRstGen_dbu */ 102*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 103*9b7e81a9SThéo Lebrun clocks = <&occ_dbu>; 104*9b7e81a9SThéo Lebrun #clock-cells = <0>; 105*9b7e81a9SThéo Lebrun clock-div = <1>; 106*9b7e81a9SThéo Lebrun clock-mult = <1>; 107*9b7e81a9SThéo Lebrun }; 108*9b7e81a9SThéo Lebrun/* PLL_VDI derivatives */ 109*9b7e81a9SThéo Lebrun occ_vdi: occ-vdi { 110*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 111*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_VDI>; 112*9b7e81a9SThéo Lebrun #clock-cells = <0>; 113*9b7e81a9SThéo Lebrun clock-div = <2>; 114*9b7e81a9SThéo Lebrun clock-mult = <1>; 115*9b7e81a9SThéo Lebrun }; 116*9b7e81a9SThéo Lebrun vdi_clk: vdi-clk { /* gate ClkRstGen_vdi */ 117*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 118*9b7e81a9SThéo Lebrun clocks = <&occ_vdi>; 119*9b7e81a9SThéo Lebrun #clock-cells = <0>; 120*9b7e81a9SThéo Lebrun clock-div = <1>; 121*9b7e81a9SThéo Lebrun clock-mult = <1>; 122*9b7e81a9SThéo Lebrun }; 123*9b7e81a9SThéo Lebrun occ_can_ser: occ-can-ser { 124*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 125*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_VDI>; 126*9b7e81a9SThéo Lebrun #clock-cells = <0>; 127*9b7e81a9SThéo Lebrun clock-div = <16>; 128*9b7e81a9SThéo Lebrun clock-mult = <1>; 129*9b7e81a9SThéo Lebrun }; 130*9b7e81a9SThéo Lebrun can_ser_clk: can-ser-clk { /* gate ClkRstGen_can_ser */ 131*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 132*9b7e81a9SThéo Lebrun clocks = <&occ_can_ser>; 133*9b7e81a9SThéo Lebrun #clock-cells = <0>; 134*9b7e81a9SThéo Lebrun clock-div = <1>; 135*9b7e81a9SThéo Lebrun clock-mult = <1>; 136*9b7e81a9SThéo Lebrun }; 137*9b7e81a9SThéo Lebrun i2c_ser_clk: i2c-ser-clk { 138*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 139*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_VDI>; 140*9b7e81a9SThéo Lebrun #clock-cells = <0>; 141*9b7e81a9SThéo Lebrun clock-div = <20>; 142*9b7e81a9SThéo Lebrun clock-mult = <1>; 143*9b7e81a9SThéo Lebrun }; 144*9b7e81a9SThéo Lebrun/* PLL_PER derivatives */ 145*9b7e81a9SThéo Lebrun occ_periph: occ-periph { 146*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 147*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 148*9b7e81a9SThéo Lebrun #clock-cells = <0>; 149*9b7e81a9SThéo Lebrun clock-div = <16>; 150*9b7e81a9SThéo Lebrun clock-mult = <1>; 151*9b7e81a9SThéo Lebrun }; 152*9b7e81a9SThéo Lebrun periph_clk: periph-clk { 153*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 154*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 155*9b7e81a9SThéo Lebrun #clock-cells = <0>; 156*9b7e81a9SThéo Lebrun clock-div = <1>; 157*9b7e81a9SThéo Lebrun clock-mult = <1>; 158*9b7e81a9SThéo Lebrun }; 159*9b7e81a9SThéo Lebrun can_clk: can-clk { 160*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 161*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 162*9b7e81a9SThéo Lebrun #clock-cells = <0>; 163*9b7e81a9SThéo Lebrun clock-div = <1>; 164*9b7e81a9SThéo Lebrun clock-mult = <1>; 165*9b7e81a9SThéo Lebrun }; 166*9b7e81a9SThéo Lebrun spi_clk: spi-clk { 167*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 168*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 169*9b7e81a9SThéo Lebrun #clock-cells = <0>; 170*9b7e81a9SThéo Lebrun clock-div = <1>; 171*9b7e81a9SThéo Lebrun clock-mult = <1>; 172*9b7e81a9SThéo Lebrun }; 173*9b7e81a9SThéo Lebrun uart_clk: uart-clk { 174*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 175*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 176*9b7e81a9SThéo Lebrun #clock-cells = <0>; 177*9b7e81a9SThéo Lebrun clock-div = <1>; 178*9b7e81a9SThéo Lebrun clock-mult = <1>; 179*9b7e81a9SThéo Lebrun }; 180*9b7e81a9SThéo Lebrun i2c_clk: i2c-clk { 181*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 182*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 183*9b7e81a9SThéo Lebrun #clock-cells = <0>; 184*9b7e81a9SThéo Lebrun clock-div = <1>; 185*9b7e81a9SThéo Lebrun clock-mult = <1>; 186*9b7e81a9SThéo Lebrun clock-output-names = "i2c_clk"; 187*9b7e81a9SThéo Lebrun }; 188*9b7e81a9SThéo Lebrun timer_clk: timer-clk { 189*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 190*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 191*9b7e81a9SThéo Lebrun #clock-cells = <0>; 192*9b7e81a9SThéo Lebrun clock-div = <1>; 193*9b7e81a9SThéo Lebrun clock-mult = <1>; 194*9b7e81a9SThéo Lebrun clock-output-names = "timer_clk"; 195*9b7e81a9SThéo Lebrun }; 196*9b7e81a9SThéo Lebrun gpio_clk: gpio-clk { 197*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 198*9b7e81a9SThéo Lebrun clocks = <&occ_periph>; 199*9b7e81a9SThéo Lebrun #clock-cells = <0>; 200*9b7e81a9SThéo Lebrun clock-div = <1>; 201*9b7e81a9SThéo Lebrun clock-mult = <1>; 202*9b7e81a9SThéo Lebrun clock-output-names = "gpio_clk"; 203*9b7e81a9SThéo Lebrun }; 204*9b7e81a9SThéo Lebrun emmc_sys_clk: emmc-sys-clk { 205*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 206*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 207*9b7e81a9SThéo Lebrun #clock-cells = <0>; 208*9b7e81a9SThéo Lebrun clock-div = <10>; 209*9b7e81a9SThéo Lebrun clock-mult = <1>; 210*9b7e81a9SThéo Lebrun clock-output-names = "emmc_sys_clk"; 211*9b7e81a9SThéo Lebrun }; 212*9b7e81a9SThéo Lebrun ccf_ctrl_clk: ccf-ctrl-clk { 213*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 214*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 215*9b7e81a9SThéo Lebrun #clock-cells = <0>; 216*9b7e81a9SThéo Lebrun clock-div = <4>; 217*9b7e81a9SThéo Lebrun clock-mult = <1>; 218*9b7e81a9SThéo Lebrun clock-output-names = "ccf_ctrl_clk"; 219*9b7e81a9SThéo Lebrun }; 220*9b7e81a9SThéo Lebrun occ_mjpeg_core: occ-mjpeg-core { 221*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 222*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 223*9b7e81a9SThéo Lebrun #clock-cells = <0>; 224*9b7e81a9SThéo Lebrun clock-div = <2>; 225*9b7e81a9SThéo Lebrun clock-mult = <1>; 226*9b7e81a9SThéo Lebrun clock-output-names = "occ_mjpeg_core"; 227*9b7e81a9SThéo Lebrun }; 228*9b7e81a9SThéo Lebrun hsm_clk: hsm-clk { /* gate ClkRstGen_hsm */ 229*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 230*9b7e81a9SThéo Lebrun clocks = <&occ_mjpeg_core>; 231*9b7e81a9SThéo Lebrun #clock-cells = <0>; 232*9b7e81a9SThéo Lebrun clock-div = <1>; 233*9b7e81a9SThéo Lebrun clock-mult = <1>; 234*9b7e81a9SThéo Lebrun clock-output-names = "hsm_clk"; 235*9b7e81a9SThéo Lebrun }; 236*9b7e81a9SThéo Lebrun mjpeg_core_clk: mjpeg-core-clk { /* gate ClkRstGen_mjpeg_gen */ 237*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 238*9b7e81a9SThéo Lebrun clocks = <&occ_mjpeg_core>; 239*9b7e81a9SThéo Lebrun #clock-cells = <0>; 240*9b7e81a9SThéo Lebrun clock-div = <1>; 241*9b7e81a9SThéo Lebrun clock-mult = <1>; 242*9b7e81a9SThéo Lebrun clock-output-names = "mjpeg_core_clk"; 243*9b7e81a9SThéo Lebrun }; 244*9b7e81a9SThéo Lebrun fcmu_a_clk: fcmu-a-clk { 245*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 246*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 247*9b7e81a9SThéo Lebrun #clock-cells = <0>; 248*9b7e81a9SThéo Lebrun clock-div = <20>; 249*9b7e81a9SThéo Lebrun clock-mult = <1>; 250*9b7e81a9SThéo Lebrun clock-output-names = "fcmu_a_clk"; 251*9b7e81a9SThéo Lebrun }; 252*9b7e81a9SThéo Lebrun occ_pci_sys: occ-pci-sys { 253*9b7e81a9SThéo Lebrun compatible = "fixed-factor-clock"; 254*9b7e81a9SThéo Lebrun clocks = <&olb EQ5C_PLL_PER>; 255*9b7e81a9SThéo Lebrun #clock-cells = <0>; 256*9b7e81a9SThéo Lebrun clock-div = <8>; 257*9b7e81a9SThéo Lebrun clock-mult = <1>; 258*9b7e81a9SThéo Lebrun clock-output-names = "occ_pci_sys"; 259*9b7e81a9SThéo Lebrun }; 260*9b7e81a9SThéo Lebrun pclk: pclk { 261*9b7e81a9SThéo Lebrun compatible = "fixed-clock"; 262*9b7e81a9SThéo Lebrun #clock-cells = <0>; 263*9b7e81a9SThéo Lebrun clock-frequency = <250000000>; /* 250MHz */ 264*9b7e81a9SThéo Lebrun }; 265*9b7e81a9SThéo Lebrun tsu_clk: tsu-clk { 266*9b7e81a9SThéo Lebrun compatible = "fixed-clock"; 267*9b7e81a9SThéo Lebrun #clock-cells = <0>; 268*9b7e81a9SThéo Lebrun clock-frequency = <125000000>; /* 125MHz */ 269*9b7e81a9SThéo Lebrun }; 270*9b7e81a9SThéo Lebrun}; 271