1*c66ec88fSEmmanuel Vadot/* 2*c66ec88fSEmmanuel Vadot * BSD LICENSE 3*c66ec88fSEmmanuel Vadot * 4*c66ec88fSEmmanuel Vadot * Copyright(c) 2016-2017 Broadcom. All rights reserved. 5*c66ec88fSEmmanuel Vadot * 6*c66ec88fSEmmanuel Vadot * Redistribution and use in source and binary forms, with or without 7*c66ec88fSEmmanuel Vadot * modification, are permitted provided that the following conditions 8*c66ec88fSEmmanuel Vadot * are met: 9*c66ec88fSEmmanuel Vadot * 10*c66ec88fSEmmanuel Vadot * * Redistributions of source code must retain the above copyright 11*c66ec88fSEmmanuel Vadot * notice, this list of conditions and the following disclaimer. 12*c66ec88fSEmmanuel Vadot * * Redistributions in binary form must reproduce the above copyright 13*c66ec88fSEmmanuel Vadot * notice, this list of conditions and the following disclaimer in 14*c66ec88fSEmmanuel Vadot * the documentation and/or other materials provided with the 15*c66ec88fSEmmanuel Vadot * distribution. 16*c66ec88fSEmmanuel Vadot * * Neither the name of Broadcom nor the names of its 17*c66ec88fSEmmanuel Vadot * contributors may be used to endorse or promote products derived 18*c66ec88fSEmmanuel Vadot * from this software without specific prior written permission. 19*c66ec88fSEmmanuel Vadot * 20*c66ec88fSEmmanuel Vadot * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*c66ec88fSEmmanuel Vadot * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*c66ec88fSEmmanuel Vadot * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23*c66ec88fSEmmanuel Vadot * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24*c66ec88fSEmmanuel Vadot * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25*c66ec88fSEmmanuel Vadot * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26*c66ec88fSEmmanuel Vadot * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27*c66ec88fSEmmanuel Vadot * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28*c66ec88fSEmmanuel Vadot * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29*c66ec88fSEmmanuel Vadot * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30*c66ec88fSEmmanuel Vadot * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*c66ec88fSEmmanuel Vadot */ 32*c66ec88fSEmmanuel Vadot 33*c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/bcm-sr.h> 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel Vadot osc: oscillator { 36*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 37*c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 38*c66ec88fSEmmanuel Vadot clock-frequency = <50000000>; 39*c66ec88fSEmmanuel Vadot }; 40*c66ec88fSEmmanuel Vadot 41*c66ec88fSEmmanuel Vadot crmu_ref25m: crmu_ref25m { 42*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 43*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 44*c66ec88fSEmmanuel Vadot clocks = <&osc>; 45*c66ec88fSEmmanuel Vadot clock-div = <2>; 46*c66ec88fSEmmanuel Vadot clock-mult = <1>; 47*c66ec88fSEmmanuel Vadot }; 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel Vadot genpll0: genpll0@1d104 { 50*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 51*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-genpll0"; 52*c66ec88fSEmmanuel Vadot reg = <0x0001d104 0x32>, 53*c66ec88fSEmmanuel Vadot <0x0001c854 0x4>; 54*c66ec88fSEmmanuel Vadot clocks = <&osc>; 55*c66ec88fSEmmanuel Vadot clock-output-names = "genpll0", "clk_125m", "clk_scr", 56*c66ec88fSEmmanuel Vadot "clk_250", "clk_pcie_axi", 57*c66ec88fSEmmanuel Vadot "clk_paxc_axi_x2", 58*c66ec88fSEmmanuel Vadot "clk_paxc_axi"; 59*c66ec88fSEmmanuel Vadot }; 60*c66ec88fSEmmanuel Vadot 61*c66ec88fSEmmanuel Vadot genpll2: genpll2@1d1ac { 62*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 63*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-genpll2"; 64*c66ec88fSEmmanuel Vadot reg = <0x0001d1ac 0x32>, 65*c66ec88fSEmmanuel Vadot <0x0001c854 0x4>; 66*c66ec88fSEmmanuel Vadot clocks = <&osc>; 67*c66ec88fSEmmanuel Vadot clock-output-names = "genpll2", "clk_nic", 68*c66ec88fSEmmanuel Vadot "clk_ts_500_ref", "clk_125_nitro", 69*c66ec88fSEmmanuel Vadot "clk_chimp", "clk_nic_flash", 70*c66ec88fSEmmanuel Vadot "clk_fs"; 71*c66ec88fSEmmanuel Vadot }; 72*c66ec88fSEmmanuel Vadot 73*c66ec88fSEmmanuel Vadot genpll3: genpll3@1d1e0 { 74*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 75*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-genpll3"; 76*c66ec88fSEmmanuel Vadot reg = <0x0001d1e0 0x32>, 77*c66ec88fSEmmanuel Vadot <0x0001c854 0x4>; 78*c66ec88fSEmmanuel Vadot clocks = <&osc>; 79*c66ec88fSEmmanuel Vadot clock-output-names = "genpll3", "clk_hsls", 80*c66ec88fSEmmanuel Vadot "clk_sdio"; 81*c66ec88fSEmmanuel Vadot }; 82*c66ec88fSEmmanuel Vadot 83*c66ec88fSEmmanuel Vadot genpll4: genpll4@1d214 { 84*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 85*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-genpll4"; 86*c66ec88fSEmmanuel Vadot reg = <0x0001d214 0x32>, 87*c66ec88fSEmmanuel Vadot <0x0001c854 0x4>; 88*c66ec88fSEmmanuel Vadot clocks = <&osc>; 89*c66ec88fSEmmanuel Vadot clock-output-names = "genpll4", "clk_ccn", 90*c66ec88fSEmmanuel Vadot "clk_tpiu_pll", "clk_noc", 91*c66ec88fSEmmanuel Vadot "clk_chclk_fs4", 92*c66ec88fSEmmanuel Vadot "clk_bridge_fscpu"; 93*c66ec88fSEmmanuel Vadot }; 94*c66ec88fSEmmanuel Vadot 95*c66ec88fSEmmanuel Vadot genpll5: genpll5@1d248 { 96*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 97*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-genpll5"; 98*c66ec88fSEmmanuel Vadot reg = <0x0001d248 0x32>, 99*c66ec88fSEmmanuel Vadot <0x0001c870 0x4>; 100*c66ec88fSEmmanuel Vadot clocks = <&osc>; 101*c66ec88fSEmmanuel Vadot clock-output-names = "genpll5", "clk_fs4_hf", 102*c66ec88fSEmmanuel Vadot "clk_crypto_ae", "clk_raid_ae"; 103*c66ec88fSEmmanuel Vadot }; 104*c66ec88fSEmmanuel Vadot 105*c66ec88fSEmmanuel Vadot lcpll0: lcpll0@1d0c4 { 106*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 107*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-lcpll0"; 108*c66ec88fSEmmanuel Vadot reg = <0x0001d0c4 0x3c>, 109*c66ec88fSEmmanuel Vadot <0x0001c870 0x4>; 110*c66ec88fSEmmanuel Vadot clocks = <&osc>; 111*c66ec88fSEmmanuel Vadot clock-output-names = "lcpll0", "clk_sata_refp", 112*c66ec88fSEmmanuel Vadot "clk_sata_refn", "clk_sata_350", 113*c66ec88fSEmmanuel Vadot "clk_sata_500"; 114*c66ec88fSEmmanuel Vadot }; 115*c66ec88fSEmmanuel Vadot 116*c66ec88fSEmmanuel Vadot lcpll1: lcpll1@1d138 { 117*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 118*c66ec88fSEmmanuel Vadot compatible = "brcm,sr-lcpll1"; 119*c66ec88fSEmmanuel Vadot reg = <0x0001d138 0x3c>, 120*c66ec88fSEmmanuel Vadot <0x0001c870 0x4>; 121*c66ec88fSEmmanuel Vadot clocks = <&osc>; 122*c66ec88fSEmmanuel Vadot clock-output-names = "lcpll1", "clk_wan", 123*c66ec88fSEmmanuel Vadot "clk_usb_ref", 124*c66ec88fSEmmanuel Vadot "clk_crmu_ts"; 125*c66ec88fSEmmanuel Vadot }; 126*c66ec88fSEmmanuel Vadot 127*c66ec88fSEmmanuel Vadot hsls_clk: hsls_clk { 128*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 129*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 130*c66ec88fSEmmanuel Vadot clocks = <&genpll3 1>; 131*c66ec88fSEmmanuel Vadot clock-div = <1>; 132*c66ec88fSEmmanuel Vadot clock-mult = <1>; 133*c66ec88fSEmmanuel Vadot }; 134*c66ec88fSEmmanuel Vadot 135*c66ec88fSEmmanuel Vadot hsls_div2_clk: hsls_div2_clk { 136*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 137*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 138*c66ec88fSEmmanuel Vadot clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>; 139*c66ec88fSEmmanuel Vadot clock-div = <2>; 140*c66ec88fSEmmanuel Vadot clock-mult = <1>; 141*c66ec88fSEmmanuel Vadot 142*c66ec88fSEmmanuel Vadot }; 143*c66ec88fSEmmanuel Vadot 144*c66ec88fSEmmanuel Vadot hsls_div4_clk: hsls_div4_clk { 145*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 146*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 147*c66ec88fSEmmanuel Vadot clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>; 148*c66ec88fSEmmanuel Vadot clock-div = <4>; 149*c66ec88fSEmmanuel Vadot clock-mult = <1>; 150*c66ec88fSEmmanuel Vadot }; 151*c66ec88fSEmmanuel Vadot 152*c66ec88fSEmmanuel Vadot hsls_25m_clk: hsls_25m_clk { 153*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 154*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 155*c66ec88fSEmmanuel Vadot clocks = <&crmu_ref25m>; 156*c66ec88fSEmmanuel Vadot clock-div = <1>; 157*c66ec88fSEmmanuel Vadot clock-mult = <1>; 158*c66ec88fSEmmanuel Vadot }; 159*c66ec88fSEmmanuel Vadot 160*c66ec88fSEmmanuel Vadot hsls_25m_div2_clk: hsls_25m_div2_clk { 161*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 162*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 163*c66ec88fSEmmanuel Vadot clocks = <&hsls_25m_clk>; 164*c66ec88fSEmmanuel Vadot clock-div = <2>; 165*c66ec88fSEmmanuel Vadot clock-mult = <1>; 166*c66ec88fSEmmanuel Vadot }; 167*c66ec88fSEmmanuel Vadot 168*c66ec88fSEmmanuel Vadot sdio0_clk: sdio0_clk { 169*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 170*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 171*c66ec88fSEmmanuel Vadot clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>; 172*c66ec88fSEmmanuel Vadot clock-div = <1>; 173*c66ec88fSEmmanuel Vadot clock-mult = <1>; 174*c66ec88fSEmmanuel Vadot }; 175*c66ec88fSEmmanuel Vadot 176*c66ec88fSEmmanuel Vadot sdio1_clk: sdio1_clk { 177*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 178*c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 179*c66ec88fSEmmanuel Vadot clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>; 180*c66ec88fSEmmanuel Vadot clock-div = <1>; 181*c66ec88fSEmmanuel Vadot clock-mult = <1>; 182*c66ec88fSEmmanuel Vadot }; 183