1*51cb23d4SPatrice Chotard/* 2*51cb23d4SPatrice Chotard * Copyright (C) 2014 STMicroelectronics R&D Limited 3*51cb23d4SPatrice Chotard * 4*51cb23d4SPatrice Chotard * This program is free software; you can redistribute it and/or modify 5*51cb23d4SPatrice Chotard * it under the terms of the GNU General Public License version 2 as 6*51cb23d4SPatrice Chotard * published by the Free Software Foundation. 7*51cb23d4SPatrice Chotard */ 8*51cb23d4SPatrice Chotard#include <dt-bindings/clock/stih410-clks.h> 9*51cb23d4SPatrice Chotard/ { 10*51cb23d4SPatrice Chotard clocks { 11*51cb23d4SPatrice Chotard #address-cells = <1>; 12*51cb23d4SPatrice Chotard #size-cells = <1>; 13*51cb23d4SPatrice Chotard ranges; 14*51cb23d4SPatrice Chotard 15*51cb23d4SPatrice Chotard compatible = "st,stih410-clk", "simple-bus"; 16*51cb23d4SPatrice Chotard 17*51cb23d4SPatrice Chotard /* 18*51cb23d4SPatrice Chotard * Fixed 30MHz oscillator inputs to SoC 19*51cb23d4SPatrice Chotard */ 20*51cb23d4SPatrice Chotard clk_sysin: clk-sysin { 21*51cb23d4SPatrice Chotard #clock-cells = <0>; 22*51cb23d4SPatrice Chotard compatible = "fixed-clock"; 23*51cb23d4SPatrice Chotard clock-frequency = <30000000>; 24*51cb23d4SPatrice Chotard clock-output-names = "CLK_SYSIN"; 25*51cb23d4SPatrice Chotard }; 26*51cb23d4SPatrice Chotard 27*51cb23d4SPatrice Chotard /* 28*51cb23d4SPatrice Chotard * ARM Peripheral clock for timers 29*51cb23d4SPatrice Chotard */ 30*51cb23d4SPatrice Chotard arm_periph_clk: clk-m-a9-periphs { 31*51cb23d4SPatrice Chotard #clock-cells = <0>; 32*51cb23d4SPatrice Chotard compatible = "fixed-factor-clock"; 33*51cb23d4SPatrice Chotard clocks = <&clk_m_a9>; 34*51cb23d4SPatrice Chotard clock-div = <2>; 35*51cb23d4SPatrice Chotard clock-mult = <1>; 36*51cb23d4SPatrice Chotard }; 37*51cb23d4SPatrice Chotard 38*51cb23d4SPatrice Chotard /* 39*51cb23d4SPatrice Chotard * A9 PLL. 40*51cb23d4SPatrice Chotard */ 41*51cb23d4SPatrice Chotard clockgen-a9@92b0000 { 42*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 43*51cb23d4SPatrice Chotard reg = <0x92b0000 0xffff>; 44*51cb23d4SPatrice Chotard 45*51cb23d4SPatrice Chotard clockgen_a9_pll: clockgen-a9-pll { 46*51cb23d4SPatrice Chotard #clock-cells = <1>; 47*51cb23d4SPatrice Chotard compatible = "st,stih407-clkgen-plla9"; 48*51cb23d4SPatrice Chotard 49*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 50*51cb23d4SPatrice Chotard 51*51cb23d4SPatrice Chotard clock-output-names = "clockgen-a9-pll-odf"; 52*51cb23d4SPatrice Chotard }; 53*51cb23d4SPatrice Chotard }; 54*51cb23d4SPatrice Chotard 55*51cb23d4SPatrice Chotard /* 56*51cb23d4SPatrice Chotard * ARM CPU related clocks. 57*51cb23d4SPatrice Chotard */ 58*51cb23d4SPatrice Chotard clk_m_a9: clk-m-a9@92b0000 { 59*51cb23d4SPatrice Chotard #clock-cells = <0>; 60*51cb23d4SPatrice Chotard compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux"; 61*51cb23d4SPatrice Chotard reg = <0x92b0000 0x10000>; 62*51cb23d4SPatrice Chotard 63*51cb23d4SPatrice Chotard clocks = <&clockgen_a9_pll 0>, 64*51cb23d4SPatrice Chotard <&clockgen_a9_pll 0>, 65*51cb23d4SPatrice Chotard <&clk_s_c0_flexgen 13>, 66*51cb23d4SPatrice Chotard <&clk_m_a9_ext2f_div2>; 67*51cb23d4SPatrice Chotard }; 68*51cb23d4SPatrice Chotard 69*51cb23d4SPatrice Chotard /* 70*51cb23d4SPatrice Chotard * ARM Peripheral clock for timers 71*51cb23d4SPatrice Chotard */ 72*51cb23d4SPatrice Chotard clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s { 73*51cb23d4SPatrice Chotard #clock-cells = <0>; 74*51cb23d4SPatrice Chotard compatible = "fixed-factor-clock"; 75*51cb23d4SPatrice Chotard 76*51cb23d4SPatrice Chotard clocks = <&clk_s_c0_flexgen 13>; 77*51cb23d4SPatrice Chotard 78*51cb23d4SPatrice Chotard clock-output-names = "clk-m-a9-ext2f-div2"; 79*51cb23d4SPatrice Chotard 80*51cb23d4SPatrice Chotard clock-div = <2>; 81*51cb23d4SPatrice Chotard clock-mult = <1>; 82*51cb23d4SPatrice Chotard }; 83*51cb23d4SPatrice Chotard 84*51cb23d4SPatrice Chotard /* 85*51cb23d4SPatrice Chotard * Bootloader initialized system infrastructure clock for 86*51cb23d4SPatrice Chotard * serial devices. 87*51cb23d4SPatrice Chotard */ 88*51cb23d4SPatrice Chotard clk_ext2f_a9: clockgen-c0@13 { 89*51cb23d4SPatrice Chotard #clock-cells = <0>; 90*51cb23d4SPatrice Chotard compatible = "fixed-clock"; 91*51cb23d4SPatrice Chotard clock-frequency = <200000000>; 92*51cb23d4SPatrice Chotard clock-output-names = "clk-s-icn-reg-0"; 93*51cb23d4SPatrice Chotard }; 94*51cb23d4SPatrice Chotard 95*51cb23d4SPatrice Chotard clockgen-a@090ff000 { 96*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 97*51cb23d4SPatrice Chotard reg = <0x90ff000 0x1000>; 98*51cb23d4SPatrice Chotard 99*51cb23d4SPatrice Chotard clk_s_a0_pll: clk-s-a0-pll { 100*51cb23d4SPatrice Chotard #clock-cells = <1>; 101*51cb23d4SPatrice Chotard compatible = "st,clkgen-pll0"; 102*51cb23d4SPatrice Chotard 103*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 104*51cb23d4SPatrice Chotard 105*51cb23d4SPatrice Chotard clock-output-names = "clk-s-a0-pll-ofd-0"; 106*51cb23d4SPatrice Chotard clock-critical = <0>; /* clk-s-a0-pll-ofd-0 */ 107*51cb23d4SPatrice Chotard }; 108*51cb23d4SPatrice Chotard 109*51cb23d4SPatrice Chotard clk_s_a0_flexgen: clk-s-a0-flexgen { 110*51cb23d4SPatrice Chotard compatible = "st,flexgen"; 111*51cb23d4SPatrice Chotard 112*51cb23d4SPatrice Chotard #clock-cells = <1>; 113*51cb23d4SPatrice Chotard 114*51cb23d4SPatrice Chotard clocks = <&clk_s_a0_pll 0>, 115*51cb23d4SPatrice Chotard <&clk_sysin>; 116*51cb23d4SPatrice Chotard 117*51cb23d4SPatrice Chotard clock-output-names = "clk-ic-lmi0", 118*51cb23d4SPatrice Chotard "clk-ic-lmi1"; 119*51cb23d4SPatrice Chotard clock-critical = <CLK_IC_LMI0>; 120*51cb23d4SPatrice Chotard }; 121*51cb23d4SPatrice Chotard }; 122*51cb23d4SPatrice Chotard 123*51cb23d4SPatrice Chotard clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 { 124*51cb23d4SPatrice Chotard #clock-cells = <1>; 125*51cb23d4SPatrice Chotard compatible = "st,quadfs-pll"; 126*51cb23d4SPatrice Chotard reg = <0x9103000 0x1000>; 127*51cb23d4SPatrice Chotard 128*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 129*51cb23d4SPatrice Chotard 130*51cb23d4SPatrice Chotard clock-output-names = "clk-s-c0-fs0-ch0", 131*51cb23d4SPatrice Chotard "clk-s-c0-fs0-ch1", 132*51cb23d4SPatrice Chotard "clk-s-c0-fs0-ch2", 133*51cb23d4SPatrice Chotard "clk-s-c0-fs0-ch3"; 134*51cb23d4SPatrice Chotard clock-critical = <0>; /* clk-s-c0-fs0-ch0 */ 135*51cb23d4SPatrice Chotard }; 136*51cb23d4SPatrice Chotard 137*51cb23d4SPatrice Chotard clk_s_c0: clockgen-c@09103000 { 138*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 139*51cb23d4SPatrice Chotard reg = <0x9103000 0x1000>; 140*51cb23d4SPatrice Chotard 141*51cb23d4SPatrice Chotard clk_s_c0_pll0: clk-s-c0-pll0 { 142*51cb23d4SPatrice Chotard #clock-cells = <1>; 143*51cb23d4SPatrice Chotard compatible = "st,clkgen-pll0"; 144*51cb23d4SPatrice Chotard 145*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 146*51cb23d4SPatrice Chotard 147*51cb23d4SPatrice Chotard clock-output-names = "clk-s-c0-pll0-odf-0"; 148*51cb23d4SPatrice Chotard clock-critical = <0>; /* clk-s-c0-pll0-odf-0 */ 149*51cb23d4SPatrice Chotard }; 150*51cb23d4SPatrice Chotard 151*51cb23d4SPatrice Chotard clk_s_c0_pll1: clk-s-c0-pll1 { 152*51cb23d4SPatrice Chotard #clock-cells = <1>; 153*51cb23d4SPatrice Chotard compatible = "st,clkgen-pll1"; 154*51cb23d4SPatrice Chotard 155*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 156*51cb23d4SPatrice Chotard 157*51cb23d4SPatrice Chotard clock-output-names = "clk-s-c0-pll1-odf-0"; 158*51cb23d4SPatrice Chotard }; 159*51cb23d4SPatrice Chotard 160*51cb23d4SPatrice Chotard clk_s_c0_flexgen: clk-s-c0-flexgen { 161*51cb23d4SPatrice Chotard #clock-cells = <1>; 162*51cb23d4SPatrice Chotard compatible = "st,flexgen"; 163*51cb23d4SPatrice Chotard 164*51cb23d4SPatrice Chotard clocks = <&clk_s_c0_pll0 0>, 165*51cb23d4SPatrice Chotard <&clk_s_c0_pll1 0>, 166*51cb23d4SPatrice Chotard <&clk_s_c0_quadfs 0>, 167*51cb23d4SPatrice Chotard <&clk_s_c0_quadfs 1>, 168*51cb23d4SPatrice Chotard <&clk_s_c0_quadfs 2>, 169*51cb23d4SPatrice Chotard <&clk_s_c0_quadfs 3>, 170*51cb23d4SPatrice Chotard <&clk_sysin>; 171*51cb23d4SPatrice Chotard 172*51cb23d4SPatrice Chotard clock-output-names = "clk-icn-gpu", 173*51cb23d4SPatrice Chotard "clk-fdma", 174*51cb23d4SPatrice Chotard "clk-nand", 175*51cb23d4SPatrice Chotard "clk-hva", 176*51cb23d4SPatrice Chotard "clk-proc-stfe", 177*51cb23d4SPatrice Chotard "clk-proc-tp", 178*51cb23d4SPatrice Chotard "clk-rx-icn-dmu", 179*51cb23d4SPatrice Chotard "clk-rx-icn-hva", 180*51cb23d4SPatrice Chotard "clk-icn-cpu", 181*51cb23d4SPatrice Chotard "clk-tx-icn-dmu", 182*51cb23d4SPatrice Chotard "clk-mmc-0", 183*51cb23d4SPatrice Chotard "clk-mmc-1", 184*51cb23d4SPatrice Chotard "clk-jpegdec", 185*51cb23d4SPatrice Chotard "clk-ext2fa9", 186*51cb23d4SPatrice Chotard "clk-ic-bdisp-0", 187*51cb23d4SPatrice Chotard "clk-ic-bdisp-1", 188*51cb23d4SPatrice Chotard "clk-pp-dmu", 189*51cb23d4SPatrice Chotard "clk-vid-dmu", 190*51cb23d4SPatrice Chotard "clk-dss-lpc", 191*51cb23d4SPatrice Chotard "clk-st231-aud-0", 192*51cb23d4SPatrice Chotard "clk-st231-gp-1", 193*51cb23d4SPatrice Chotard "clk-st231-dmu", 194*51cb23d4SPatrice Chotard "clk-icn-lmi", 195*51cb23d4SPatrice Chotard "clk-tx-icn-disp-1", 196*51cb23d4SPatrice Chotard "clk-icn-sbc", 197*51cb23d4SPatrice Chotard "clk-stfe-frc2", 198*51cb23d4SPatrice Chotard "clk-eth-phy", 199*51cb23d4SPatrice Chotard "clk-eth-ref-phyclk", 200*51cb23d4SPatrice Chotard "clk-flash-promip", 201*51cb23d4SPatrice Chotard "clk-main-disp", 202*51cb23d4SPatrice Chotard "clk-aux-disp", 203*51cb23d4SPatrice Chotard "clk-compo-dvp", 204*51cb23d4SPatrice Chotard "clk-tx-icn-hades", 205*51cb23d4SPatrice Chotard "clk-rx-icn-hades", 206*51cb23d4SPatrice Chotard "clk-icn-reg-16", 207*51cb23d4SPatrice Chotard "clk-pp-hades", 208*51cb23d4SPatrice Chotard "clk-clust-hades", 209*51cb23d4SPatrice Chotard "clk-hwpe-hades", 210*51cb23d4SPatrice Chotard "clk-fc-hades"; 211*51cb23d4SPatrice Chotard clock-critical = <CLK_ICN_CPU>, 212*51cb23d4SPatrice Chotard <CLK_TX_ICN_DMU>, 213*51cb23d4SPatrice Chotard <CLK_EXT2F_A9>, 214*51cb23d4SPatrice Chotard <CLK_ICN_LMI>, 215*51cb23d4SPatrice Chotard <CLK_ICN_SBC>; 216*51cb23d4SPatrice Chotard }; 217*51cb23d4SPatrice Chotard }; 218*51cb23d4SPatrice Chotard 219*51cb23d4SPatrice Chotard clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 { 220*51cb23d4SPatrice Chotard #clock-cells = <1>; 221*51cb23d4SPatrice Chotard compatible = "st,quadfs"; 222*51cb23d4SPatrice Chotard reg = <0x9104000 0x1000>; 223*51cb23d4SPatrice Chotard 224*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 225*51cb23d4SPatrice Chotard 226*51cb23d4SPatrice Chotard clock-output-names = "clk-s-d0-fs0-ch0", 227*51cb23d4SPatrice Chotard "clk-s-d0-fs0-ch1", 228*51cb23d4SPatrice Chotard "clk-s-d0-fs0-ch2", 229*51cb23d4SPatrice Chotard "clk-s-d0-fs0-ch3"; 230*51cb23d4SPatrice Chotard }; 231*51cb23d4SPatrice Chotard 232*51cb23d4SPatrice Chotard clockgen-d0@09104000 { 233*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 234*51cb23d4SPatrice Chotard reg = <0x9104000 0x1000>; 235*51cb23d4SPatrice Chotard 236*51cb23d4SPatrice Chotard clk_s_d0_flexgen: clk-s-d0-flexgen { 237*51cb23d4SPatrice Chotard #clock-cells = <1>; 238*51cb23d4SPatrice Chotard compatible = "st,flexgen-audio", "st,flexgen"; 239*51cb23d4SPatrice Chotard 240*51cb23d4SPatrice Chotard clocks = <&clk_s_d0_quadfs 0>, 241*51cb23d4SPatrice Chotard <&clk_s_d0_quadfs 1>, 242*51cb23d4SPatrice Chotard <&clk_s_d0_quadfs 2>, 243*51cb23d4SPatrice Chotard <&clk_s_d0_quadfs 3>, 244*51cb23d4SPatrice Chotard <&clk_sysin>; 245*51cb23d4SPatrice Chotard 246*51cb23d4SPatrice Chotard clock-output-names = "clk-pcm-0", 247*51cb23d4SPatrice Chotard "clk-pcm-1", 248*51cb23d4SPatrice Chotard "clk-pcm-2", 249*51cb23d4SPatrice Chotard "clk-spdiff", 250*51cb23d4SPatrice Chotard "clk-pcmr10-master", 251*51cb23d4SPatrice Chotard "clk-usb2-phy"; 252*51cb23d4SPatrice Chotard }; 253*51cb23d4SPatrice Chotard }; 254*51cb23d4SPatrice Chotard 255*51cb23d4SPatrice Chotard clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 { 256*51cb23d4SPatrice Chotard #clock-cells = <1>; 257*51cb23d4SPatrice Chotard compatible = "st,quadfs"; 258*51cb23d4SPatrice Chotard reg = <0x9106000 0x1000>; 259*51cb23d4SPatrice Chotard 260*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 261*51cb23d4SPatrice Chotard 262*51cb23d4SPatrice Chotard clock-output-names = "clk-s-d2-fs0-ch0", 263*51cb23d4SPatrice Chotard "clk-s-d2-fs0-ch1", 264*51cb23d4SPatrice Chotard "clk-s-d2-fs0-ch2", 265*51cb23d4SPatrice Chotard "clk-s-d2-fs0-ch3"; 266*51cb23d4SPatrice Chotard }; 267*51cb23d4SPatrice Chotard 268*51cb23d4SPatrice Chotard clk_tmdsout_hdmi: clk-tmdsout-hdmi { 269*51cb23d4SPatrice Chotard #clock-cells = <0>; 270*51cb23d4SPatrice Chotard compatible = "fixed-clock"; 271*51cb23d4SPatrice Chotard clock-frequency = <0>; 272*51cb23d4SPatrice Chotard }; 273*51cb23d4SPatrice Chotard 274*51cb23d4SPatrice Chotard clockgen-d2@x9106000 { 275*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 276*51cb23d4SPatrice Chotard reg = <0x9106000 0x1000>; 277*51cb23d4SPatrice Chotard 278*51cb23d4SPatrice Chotard clk_s_d2_flexgen: clk-s-d2-flexgen { 279*51cb23d4SPatrice Chotard #clock-cells = <1>; 280*51cb23d4SPatrice Chotard compatible = "st,flexgen-video", "st,flexgen"; 281*51cb23d4SPatrice Chotard 282*51cb23d4SPatrice Chotard clocks = <&clk_s_d2_quadfs 0>, 283*51cb23d4SPatrice Chotard <&clk_s_d2_quadfs 1>, 284*51cb23d4SPatrice Chotard <&clk_s_d2_quadfs 2>, 285*51cb23d4SPatrice Chotard <&clk_s_d2_quadfs 3>, 286*51cb23d4SPatrice Chotard <&clk_sysin>, 287*51cb23d4SPatrice Chotard <&clk_sysin>, 288*51cb23d4SPatrice Chotard <&clk_tmdsout_hdmi>; 289*51cb23d4SPatrice Chotard 290*51cb23d4SPatrice Chotard clock-output-names = "clk-pix-main-disp", 291*51cb23d4SPatrice Chotard "clk-pix-pip", 292*51cb23d4SPatrice Chotard "clk-pix-gdp1", 293*51cb23d4SPatrice Chotard "clk-pix-gdp2", 294*51cb23d4SPatrice Chotard "clk-pix-gdp3", 295*51cb23d4SPatrice Chotard "clk-pix-gdp4", 296*51cb23d4SPatrice Chotard "clk-pix-aux-disp", 297*51cb23d4SPatrice Chotard "clk-denc", 298*51cb23d4SPatrice Chotard "clk-pix-hddac", 299*51cb23d4SPatrice Chotard "clk-hddac", 300*51cb23d4SPatrice Chotard "clk-sddac", 301*51cb23d4SPatrice Chotard "clk-pix-dvo", 302*51cb23d4SPatrice Chotard "clk-dvo", 303*51cb23d4SPatrice Chotard "clk-pix-hdmi", 304*51cb23d4SPatrice Chotard "clk-tmds-hdmi", 305*51cb23d4SPatrice Chotard "clk-ref-hdmiphy"; 306*51cb23d4SPatrice Chotard }; 307*51cb23d4SPatrice Chotard }; 308*51cb23d4SPatrice Chotard 309*51cb23d4SPatrice Chotard clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 { 310*51cb23d4SPatrice Chotard #clock-cells = <1>; 311*51cb23d4SPatrice Chotard compatible = "st,quadfs"; 312*51cb23d4SPatrice Chotard reg = <0x9107000 0x1000>; 313*51cb23d4SPatrice Chotard 314*51cb23d4SPatrice Chotard clocks = <&clk_sysin>; 315*51cb23d4SPatrice Chotard 316*51cb23d4SPatrice Chotard clock-output-names = "clk-s-d3-fs0-ch0", 317*51cb23d4SPatrice Chotard "clk-s-d3-fs0-ch1", 318*51cb23d4SPatrice Chotard "clk-s-d3-fs0-ch2", 319*51cb23d4SPatrice Chotard "clk-s-d3-fs0-ch3"; 320*51cb23d4SPatrice Chotard }; 321*51cb23d4SPatrice Chotard 322*51cb23d4SPatrice Chotard clockgen-d3@9107000 { 323*51cb23d4SPatrice Chotard compatible = "st,clkgen-c32"; 324*51cb23d4SPatrice Chotard reg = <0x9107000 0x1000>; 325*51cb23d4SPatrice Chotard 326*51cb23d4SPatrice Chotard clk_s_d3_flexgen: clk-s-d3-flexgen { 327*51cb23d4SPatrice Chotard #clock-cells = <1>; 328*51cb23d4SPatrice Chotard compatible = "st,flexgen"; 329*51cb23d4SPatrice Chotard 330*51cb23d4SPatrice Chotard clocks = <&clk_s_d3_quadfs 0>, 331*51cb23d4SPatrice Chotard <&clk_s_d3_quadfs 1>, 332*51cb23d4SPatrice Chotard <&clk_s_d3_quadfs 2>, 333*51cb23d4SPatrice Chotard <&clk_s_d3_quadfs 3>, 334*51cb23d4SPatrice Chotard <&clk_sysin>; 335*51cb23d4SPatrice Chotard 336*51cb23d4SPatrice Chotard clock-output-names = "clk-stfe-frc1", 337*51cb23d4SPatrice Chotard "clk-tsout-0", 338*51cb23d4SPatrice Chotard "clk-tsout-1", 339*51cb23d4SPatrice Chotard "clk-mchi", 340*51cb23d4SPatrice Chotard "clk-vsens-compo", 341*51cb23d4SPatrice Chotard "clk-frc1-remote", 342*51cb23d4SPatrice Chotard "clk-lpc-0", 343*51cb23d4SPatrice Chotard "clk-lpc-1"; 344*51cb23d4SPatrice Chotard }; 345*51cb23d4SPatrice Chotard }; 346*51cb23d4SPatrice Chotard }; 347*51cb23d4SPatrice Chotard}; 348