1*c66ec88fSEmmanuel VadotNVIDIA Tegra114 Clock And Reset Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis binding uses the common clock binding: 4*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/clock/clock-bindings.txt 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel VadotThe CAR (Clock And Reset) Controller on Tegra is the HW module responsible 7*c66ec88fSEmmanuel Vadotfor muxing and gating Tegra's clocks, and setting their rates. 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel VadotRequired properties : 10*c66ec88fSEmmanuel Vadot- compatible : Should be "nvidia,tegra114-car" 11*c66ec88fSEmmanuel Vadot- reg : Should contain CAR registers location and length 12*c66ec88fSEmmanuel Vadot- clocks : Should contain phandle and clock specifiers for two clocks: 13*c66ec88fSEmmanuel Vadot the 32 KHz "32k_in", and the board-specific oscillator "osc". 14*c66ec88fSEmmanuel Vadot- #clock-cells : Should be 1. 15*c66ec88fSEmmanuel Vadot In clock consumers, this cell represents the clock ID exposed by the 16*c66ec88fSEmmanuel Vadot CAR. The assignments may be found in header file 17*c66ec88fSEmmanuel Vadot <dt-bindings/clock/tegra114-car.h>. 18*c66ec88fSEmmanuel Vadot- #reset-cells : Should be 1. 19*c66ec88fSEmmanuel Vadot In clock consumers, this cell represents the bit number in the CAR's 20*c66ec88fSEmmanuel Vadot array of CLK_RST_CONTROLLER_RST_DEVICES_* registers. 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel VadotExample SoC include file: 23*c66ec88fSEmmanuel Vadot 24*c66ec88fSEmmanuel Vadot/ { 25*c66ec88fSEmmanuel Vadot tegra_car: clock { 26*c66ec88fSEmmanuel Vadot compatible = "nvidia,tegra114-car"; 27*c66ec88fSEmmanuel Vadot reg = <0x60006000 0x1000>; 28*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 29*c66ec88fSEmmanuel Vadot #reset-cells = <1>; 30*c66ec88fSEmmanuel Vadot }; 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot usb@c5004000 { 33*c66ec88fSEmmanuel Vadot clocks = <&tegra_car TEGRA114_CLK_USB2>; 34*c66ec88fSEmmanuel Vadot }; 35*c66ec88fSEmmanuel Vadot}; 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel VadotExample board file: 38*c66ec88fSEmmanuel Vadot 39*c66ec88fSEmmanuel Vadot/ { 40*c66ec88fSEmmanuel Vadot clocks { 41*c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 42*c66ec88fSEmmanuel Vadot #address-cells = <1>; 43*c66ec88fSEmmanuel Vadot #size-cells = <0>; 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel Vadot osc: clock@0 { 46*c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 47*c66ec88fSEmmanuel Vadot reg = <0>; 48*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 49*c66ec88fSEmmanuel Vadot clock-frequency = <12000000>; 50*c66ec88fSEmmanuel Vadot }; 51*c66ec88fSEmmanuel Vadot 52*c66ec88fSEmmanuel Vadot clk_32k: clock@1 { 53*c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 54*c66ec88fSEmmanuel Vadot reg = <1>; 55*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 56*c66ec88fSEmmanuel Vadot clock-frequency = <32768>; 57*c66ec88fSEmmanuel Vadot }; 58*c66ec88fSEmmanuel Vadot }; 59*c66ec88fSEmmanuel Vadot 60*c66ec88fSEmmanuel Vadot &tegra_car { 61*c66ec88fSEmmanuel Vadot clocks = <&clk_32k> <&osc>; 62*c66ec88fSEmmanuel Vadot }; 63*c66ec88fSEmmanuel Vadot}; 64