diff options
| -rw-r--r-- | Documentation/devicetree/bindings/clock/imx23-clock.txt | 76 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/clock/imx28-clock.txt | 99 | ||||
| -rw-r--r-- | arch/arm/boot/dts/imx23.dtsi | 16 | ||||
| -rw-r--r-- | arch/arm/boot/dts/imx28.dtsi | 35 | ||||
| -rw-r--r-- | drivers/clk/mxs/clk-imx23.c | 55 | ||||
| -rw-r--r-- | drivers/clk/mxs/clk-imx28.c | 113 |
6 files changed, 242 insertions, 152 deletions
diff --git a/Documentation/devicetree/bindings/clock/imx23-clock.txt b/Documentation/devicetree/bindings/clock/imx23-clock.txt new file mode 100644 index 000000000000..a0b867ef8d96 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/imx23-clock.txt | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | * Clock bindings for Freescale i.MX23 | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "fsl,imx23-clkctrl" | ||
| 5 | - reg: Address and length of the register set | ||
| 6 | - #clock-cells: Should be <1> | ||
| 7 | |||
| 8 | The clock consumer should specify the desired clock by having the clock | ||
| 9 | ID in its "clocks" phandle cell. The following is a full list of i.MX23 | ||
| 10 | clocks and IDs. | ||
| 11 | |||
| 12 | Clock ID | ||
| 13 | ------------------ | ||
| 14 | ref_xtal 0 | ||
| 15 | pll 1 | ||
| 16 | ref_cpu 2 | ||
| 17 | ref_emi 3 | ||
| 18 | ref_pix 4 | ||
| 19 | ref_io 5 | ||
| 20 | saif_sel 6 | ||
| 21 | lcdif_sel 7 | ||
| 22 | gpmi_sel 8 | ||
| 23 | ssp_sel 9 | ||
| 24 | emi_sel 10 | ||
| 25 | cpu 11 | ||
| 26 | etm_sel 12 | ||
| 27 | cpu_pll 13 | ||
| 28 | cpu_xtal 14 | ||
| 29 | hbus 15 | ||
| 30 | xbus 16 | ||
| 31 | lcdif_div 17 | ||
| 32 | ssp_div 18 | ||
| 33 | gpmi_div 19 | ||
| 34 | emi_pll 20 | ||
| 35 | emi_xtal 21 | ||
| 36 | etm_div 22 | ||
| 37 | saif_div 23 | ||
| 38 | clk32k_div 24 | ||
| 39 | rtc 25 | ||
| 40 | adc 26 | ||
| 41 | spdif_div 27 | ||
| 42 | clk32k 28 | ||
| 43 | dri 29 | ||
| 44 | pwm 30 | ||
| 45 | filt 31 | ||
| 46 | uart 32 | ||
| 47 | ssp 33 | ||
| 48 | gpmi 34 | ||
| 49 | spdif 35 | ||
| 50 | emi 36 | ||
| 51 | saif 37 | ||
| 52 | lcdif 38 | ||
| 53 | etm 39 | ||
| 54 | usb 40 | ||
| 55 | usb_pwr 41 | ||
| 56 | |||
| 57 | Examples: | ||
| 58 | |||
| 59 | clks: clkctrl@80040000 { | ||
| 60 | compatible = "fsl,imx23-clkctrl"; | ||
| 61 | reg = <0x80040000 0x2000>; | ||
| 62 | #clock-cells = <1>; | ||
| 63 | clock-output-names = | ||
| 64 | ... | ||
| 65 | "uart", /* 32 */ | ||
| 66 | ... | ||
| 67 | "end_of_list"; | ||
| 68 | }; | ||
| 69 | |||
| 70 | auart0: serial@8006c000 { | ||
| 71 | compatible = "fsl,imx23-auart"; | ||
| 72 | reg = <0x8006c000 0x2000>; | ||
| 73 | interrupts = <24 25 23>; | ||
| 74 | clocks = <&clks 32>; | ||
| 75 | status = "disabled"; | ||
| 76 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/imx28-clock.txt b/Documentation/devicetree/bindings/clock/imx28-clock.txt new file mode 100644 index 000000000000..aa2af2866fe8 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/imx28-clock.txt | |||
| @@ -0,0 +1,99 @@ | |||
| 1 | * Clock bindings for Freescale i.MX28 | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "fsl,imx28-clkctrl" | ||
| 5 | - reg: Address and length of the register set | ||
| 6 | - #clock-cells: Should be <1> | ||
| 7 | |||
| 8 | The clock consumer should specify the desired clock by having the clock | ||
| 9 | ID in its "clocks" phandle cell. The following is a full list of i.MX28 | ||
| 10 | clocks and IDs. | ||
| 11 | |||
| 12 | Clock ID | ||
| 13 | ------------------ | ||
| 14 | ref_xtal 0 | ||
| 15 | pll0 1 | ||
| 16 | pll1 2 | ||
| 17 | pll2 3 | ||
| 18 | ref_cpu 4 | ||
| 19 | ref_emi 5 | ||
| 20 | ref_io0 6 | ||
| 21 | ref_io1 7 | ||
| 22 | ref_pix 8 | ||
| 23 | ref_hsadc 9 | ||
| 24 | ref_gpmi 10 | ||
| 25 | saif0_sel 11 | ||
| 26 | saif1_sel 12 | ||
| 27 | gpmi_sel 13 | ||
| 28 | ssp0_sel 14 | ||
| 29 | ssp1_sel 15 | ||
| 30 | ssp2_sel 16 | ||
| 31 | ssp3_sel 17 | ||
| 32 | emi_sel 18 | ||
| 33 | etm_sel 19 | ||
| 34 | lcdif_sel 20 | ||
| 35 | cpu 21 | ||
| 36 | ptp_sel 22 | ||
| 37 | cpu_pll 23 | ||
| 38 | cpu_xtal 24 | ||
| 39 | hbus 25 | ||
| 40 | xbus 26 | ||
| 41 | ssp0_div 27 | ||
| 42 | ssp1_div 28 | ||
| 43 | ssp2_div 29 | ||
| 44 | ssp3_div 30 | ||
| 45 | gpmi_div 31 | ||
| 46 | emi_pll 32 | ||
| 47 | emi_xtal 33 | ||
| 48 | lcdif_div 34 | ||
| 49 | etm_div 35 | ||
| 50 | ptp 36 | ||
| 51 | saif0_div 37 | ||
| 52 | saif1_div 38 | ||
| 53 | clk32k_div 39 | ||
| 54 | rtc 40 | ||
| 55 | lradc 41 | ||
| 56 | spdif_div 42 | ||
| 57 | clk32k 43 | ||
| 58 | pwm 44 | ||
| 59 | uart 45 | ||
| 60 | ssp0 46 | ||
| 61 | ssp1 47 | ||
| 62 | ssp2 48 | ||
| 63 | ssp3 49 | ||
| 64 | gpmi 50 | ||
| 65 | spdif 51 | ||
| 66 | emi 52 | ||
| 67 | saif0 53 | ||
| 68 | saif1 54 | ||
| 69 | lcdif 55 | ||
| 70 | etm 56 | ||
| 71 | fec 57 | ||
| 72 | can0 58 | ||
| 73 | can1 59 | ||
| 74 | usb0 60 | ||
| 75 | usb1 61 | ||
| 76 | usb0_pwr 62 | ||
| 77 | usb1_pwr 63 | ||
| 78 | enet_out 64 | ||
| 79 | |||
| 80 | Examples: | ||
| 81 | |||
| 82 | clks: clkctrl@80040000 { | ||
| 83 | compatible = "fsl,imx28-clkctrl"; | ||
| 84 | reg = <0x80040000 0x2000>; | ||
| 85 | #clock-cells = <1>; | ||
| 86 | clock-output-names = | ||
| 87 | ... | ||
| 88 | "uart", /* 45 */ | ||
| 89 | ... | ||
| 90 | "end_of_list"; | ||
| 91 | }; | ||
| 92 | |||
| 93 | auart0: serial@8006a000 { | ||
| 94 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | ||
| 95 | reg = <0x8006a000 0x2000>; | ||
| 96 | interrupts = <112 70 71>; | ||
| 97 | clocks = <&clks 45>; | ||
| 98 | status = "disabled"; | ||
| 99 | }; | ||
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi index b00f3cfb3bf8..9d0e803e3eca 100644 --- a/arch/arm/boot/dts/imx23.dtsi +++ b/arch/arm/boot/dts/imx23.dtsi | |||
| @@ -52,6 +52,7 @@ | |||
| 52 | dma-apbh@80004000 { | 52 | dma-apbh@80004000 { |
| 53 | compatible = "fsl,imx23-dma-apbh"; | 53 | compatible = "fsl,imx23-dma-apbh"; |
| 54 | reg = <0x80004000 0x2000>; | 54 | reg = <0x80004000 0x2000>; |
| 55 | clocks = <&clks 15>; | ||
| 55 | }; | 56 | }; |
| 56 | 57 | ||
| 57 | ecc@80008000 { | 58 | ecc@80008000 { |
| @@ -67,6 +68,7 @@ | |||
| 67 | reg-names = "gpmi-nand", "bch"; | 68 | reg-names = "gpmi-nand", "bch"; |
| 68 | interrupts = <13>, <56>; | 69 | interrupts = <13>, <56>; |
| 69 | interrupt-names = "gpmi-dma", "bch"; | 70 | interrupt-names = "gpmi-dma", "bch"; |
| 71 | clocks = <&clks 34>; | ||
| 70 | fsl,gpmi-dma-channel = <4>; | 72 | fsl,gpmi-dma-channel = <4>; |
| 71 | status = "disabled"; | 73 | status = "disabled"; |
| 72 | }; | 74 | }; |
| @@ -74,6 +76,7 @@ | |||
| 74 | ssp0: ssp@80010000 { | 76 | ssp0: ssp@80010000 { |
| 75 | reg = <0x80010000 0x2000>; | 77 | reg = <0x80010000 0x2000>; |
| 76 | interrupts = <15 14>; | 78 | interrupts = <15 14>; |
| 79 | clocks = <&clks 33>; | ||
| 77 | fsl,ssp-dma-channel = <1>; | 80 | fsl,ssp-dma-channel = <1>; |
| 78 | status = "disabled"; | 81 | status = "disabled"; |
| 79 | }; | 82 | }; |
| @@ -290,6 +293,7 @@ | |||
| 290 | dma-apbx@80024000 { | 293 | dma-apbx@80024000 { |
| 291 | compatible = "fsl,imx23-dma-apbx"; | 294 | compatible = "fsl,imx23-dma-apbx"; |
| 292 | reg = <0x80024000 0x2000>; | 295 | reg = <0x80024000 0x2000>; |
| 296 | clocks = <&clks 16>; | ||
| 293 | }; | 297 | }; |
| 294 | 298 | ||
| 295 | dcp@80028000 { | 299 | dcp@80028000 { |
| @@ -316,12 +320,14 @@ | |||
| 316 | compatible = "fsl,imx23-lcdif"; | 320 | compatible = "fsl,imx23-lcdif"; |
| 317 | reg = <0x80030000 2000>; | 321 | reg = <0x80030000 2000>; |
| 318 | interrupts = <46 45>; | 322 | interrupts = <46 45>; |
| 323 | clocks = <&clks 38>; | ||
| 319 | status = "disabled"; | 324 | status = "disabled"; |
| 320 | }; | 325 | }; |
| 321 | 326 | ||
| 322 | ssp1: ssp@80034000 { | 327 | ssp1: ssp@80034000 { |
| 323 | reg = <0x80034000 0x2000>; | 328 | reg = <0x80034000 0x2000>; |
| 324 | interrupts = <2 20>; | 329 | interrupts = <2 20>; |
| 330 | clocks = <&clks 33>; | ||
| 325 | fsl,ssp-dma-channel = <2>; | 331 | fsl,ssp-dma-channel = <2>; |
| 326 | status = "disabled"; | 332 | status = "disabled"; |
| 327 | }; | 333 | }; |
| @@ -339,9 +345,10 @@ | |||
| 339 | reg = <0x80040000 0x40000>; | 345 | reg = <0x80040000 0x40000>; |
| 340 | ranges; | 346 | ranges; |
| 341 | 347 | ||
| 342 | clkctl@80040000 { | 348 | clks: clkctrl@80040000 { |
| 349 | compatible = "fsl,imx23-clkctrl"; | ||
| 343 | reg = <0x80040000 0x2000>; | 350 | reg = <0x80040000 0x2000>; |
| 344 | status = "disabled"; | 351 | #clock-cells = <1>; |
| 345 | }; | 352 | }; |
| 346 | 353 | ||
| 347 | saif0: saif@80042000 { | 354 | saif0: saif@80042000 { |
| @@ -393,6 +400,7 @@ | |||
| 393 | pwm: pwm@80064000 { | 400 | pwm: pwm@80064000 { |
| 394 | compatible = "fsl,imx23-pwm"; | 401 | compatible = "fsl,imx23-pwm"; |
| 395 | reg = <0x80064000 0x2000>; | 402 | reg = <0x80064000 0x2000>; |
| 403 | clocks = <&clks 30>; | ||
| 396 | #pwm-cells = <2>; | 404 | #pwm-cells = <2>; |
| 397 | fsl,pwm-number = <5>; | 405 | fsl,pwm-number = <5>; |
| 398 | status = "disabled"; | 406 | status = "disabled"; |
| @@ -407,6 +415,7 @@ | |||
| 407 | compatible = "fsl,imx23-auart"; | 415 | compatible = "fsl,imx23-auart"; |
| 408 | reg = <0x8006c000 0x2000>; | 416 | reg = <0x8006c000 0x2000>; |
| 409 | interrupts = <24 25 23>; | 417 | interrupts = <24 25 23>; |
| 418 | clocks = <&clks 32>; | ||
| 410 | status = "disabled"; | 419 | status = "disabled"; |
| 411 | }; | 420 | }; |
| 412 | 421 | ||
| @@ -414,6 +423,7 @@ | |||
| 414 | compatible = "fsl,imx23-auart"; | 423 | compatible = "fsl,imx23-auart"; |
| 415 | reg = <0x8006e000 0x2000>; | 424 | reg = <0x8006e000 0x2000>; |
| 416 | interrupts = <59 60 58>; | 425 | interrupts = <59 60 58>; |
| 426 | clocks = <&clks 32>; | ||
| 417 | status = "disabled"; | 427 | status = "disabled"; |
| 418 | }; | 428 | }; |
| 419 | 429 | ||
| @@ -421,6 +431,8 @@ | |||
| 421 | compatible = "arm,pl011", "arm,primecell"; | 431 | compatible = "arm,pl011", "arm,primecell"; |
| 422 | reg = <0x80070000 0x2000>; | 432 | reg = <0x80070000 0x2000>; |
| 423 | interrupts = <0>; | 433 | interrupts = <0>; |
| 434 | clocks = <&clks 32>, <&clks 16>; | ||
| 435 | clock-names = "uart", "apb_pclk"; | ||
| 424 | status = "disabled"; | 436 | status = "disabled"; |
| 425 | }; | 437 | }; |
| 426 | 438 | ||
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 96fe74e4935c..03e0fef8e7a7 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | dma-apbh@80004000 { | 65 | dma-apbh@80004000 { |
| 66 | compatible = "fsl,imx28-dma-apbh"; | 66 | compatible = "fsl,imx28-dma-apbh"; |
| 67 | reg = <0x80004000 0x2000>; | 67 | reg = <0x80004000 0x2000>; |
| 68 | clocks = <&clks 25>; | ||
| 68 | }; | 69 | }; |
| 69 | 70 | ||
| 70 | perfmon@80006000 { | 71 | perfmon@80006000 { |
| @@ -81,6 +82,7 @@ | |||
| 81 | reg-names = "gpmi-nand", "bch"; | 82 | reg-names = "gpmi-nand", "bch"; |
| 82 | interrupts = <88>, <41>; | 83 | interrupts = <88>, <41>; |
| 83 | interrupt-names = "gpmi-dma", "bch"; | 84 | interrupt-names = "gpmi-dma", "bch"; |
| 85 | clocks = <&clks 50>; | ||
| 84 | fsl,gpmi-dma-channel = <4>; | 86 | fsl,gpmi-dma-channel = <4>; |
| 85 | status = "disabled"; | 87 | status = "disabled"; |
| 86 | }; | 88 | }; |
| @@ -90,6 +92,7 @@ | |||
| 90 | #size-cells = <0>; | 92 | #size-cells = <0>; |
| 91 | reg = <0x80010000 0x2000>; | 93 | reg = <0x80010000 0x2000>; |
| 92 | interrupts = <96 82>; | 94 | interrupts = <96 82>; |
| 95 | clocks = <&clks 46>; | ||
| 93 | fsl,ssp-dma-channel = <0>; | 96 | fsl,ssp-dma-channel = <0>; |
| 94 | status = "disabled"; | 97 | status = "disabled"; |
| 95 | }; | 98 | }; |
| @@ -99,6 +102,7 @@ | |||
| 99 | #size-cells = <0>; | 102 | #size-cells = <0>; |
| 100 | reg = <0x80012000 0x2000>; | 103 | reg = <0x80012000 0x2000>; |
| 101 | interrupts = <97 83>; | 104 | interrupts = <97 83>; |
| 105 | clocks = <&clks 47>; | ||
| 102 | fsl,ssp-dma-channel = <1>; | 106 | fsl,ssp-dma-channel = <1>; |
| 103 | status = "disabled"; | 107 | status = "disabled"; |
| 104 | }; | 108 | }; |
| @@ -108,6 +112,7 @@ | |||
| 108 | #size-cells = <0>; | 112 | #size-cells = <0>; |
| 109 | reg = <0x80014000 0x2000>; | 113 | reg = <0x80014000 0x2000>; |
| 110 | interrupts = <98 84>; | 114 | interrupts = <98 84>; |
| 115 | clocks = <&clks 48>; | ||
| 111 | fsl,ssp-dma-channel = <2>; | 116 | fsl,ssp-dma-channel = <2>; |
| 112 | status = "disabled"; | 117 | status = "disabled"; |
| 113 | }; | 118 | }; |
| @@ -117,6 +122,7 @@ | |||
| 117 | #size-cells = <0>; | 122 | #size-cells = <0>; |
| 118 | reg = <0x80016000 0x2000>; | 123 | reg = <0x80016000 0x2000>; |
| 119 | interrupts = <99 85>; | 124 | interrupts = <99 85>; |
| 125 | clocks = <&clks 49>; | ||
| 120 | fsl,ssp-dma-channel = <3>; | 126 | fsl,ssp-dma-channel = <3>; |
| 121 | status = "disabled"; | 127 | status = "disabled"; |
| 122 | }; | 128 | }; |
| @@ -606,6 +612,7 @@ | |||
| 606 | dma-apbx@80024000 { | 612 | dma-apbx@80024000 { |
| 607 | compatible = "fsl,imx28-dma-apbx"; | 613 | compatible = "fsl,imx28-dma-apbx"; |
| 608 | reg = <0x80024000 0x2000>; | 614 | reg = <0x80024000 0x2000>; |
| 615 | clocks = <&clks 26>; | ||
| 609 | }; | 616 | }; |
| 610 | 617 | ||
| 611 | dcp@80028000 { | 618 | dcp@80028000 { |
| @@ -634,6 +641,7 @@ | |||
| 634 | compatible = "fsl,imx28-lcdif"; | 641 | compatible = "fsl,imx28-lcdif"; |
| 635 | reg = <0x80030000 0x2000>; | 642 | reg = <0x80030000 0x2000>; |
| 636 | interrupts = <38 86>; | 643 | interrupts = <38 86>; |
| 644 | clocks = <&clks 55>; | ||
| 637 | status = "disabled"; | 645 | status = "disabled"; |
| 638 | }; | 646 | }; |
| 639 | 647 | ||
| @@ -641,6 +649,8 @@ | |||
| 641 | compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan"; | 649 | compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan"; |
| 642 | reg = <0x80032000 0x2000>; | 650 | reg = <0x80032000 0x2000>; |
| 643 | interrupts = <8>; | 651 | interrupts = <8>; |
| 652 | clocks = <&clks 58>, <&clks 58>; | ||
| 653 | clock-names = "ipg", "per"; | ||
| 644 | status = "disabled"; | 654 | status = "disabled"; |
| 645 | }; | 655 | }; |
| 646 | 656 | ||
| @@ -648,6 +658,8 @@ | |||
| 648 | compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan"; | 658 | compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan"; |
| 649 | reg = <0x80034000 0x2000>; | 659 | reg = <0x80034000 0x2000>; |
| 650 | interrupts = <9>; | 660 | interrupts = <9>; |
| 661 | clocks = <&clks 59>, <&clks 59>; | ||
| 662 | clock-names = "ipg", "per"; | ||
| 651 | status = "disabled"; | 663 | status = "disabled"; |
| 652 | }; | 664 | }; |
| 653 | 665 | ||
| @@ -694,15 +706,17 @@ | |||
| 694 | reg = <0x80040000 0x40000>; | 706 | reg = <0x80040000 0x40000>; |
| 695 | ranges; | 707 | ranges; |
| 696 | 708 | ||
| 697 | clkctl@80040000 { | 709 | clks: clkctrl@80040000 { |
| 710 | compatible = "fsl,imx28-clkctrl"; | ||
| 698 | reg = <0x80040000 0x2000>; | 711 | reg = <0x80040000 0x2000>; |
| 699 | status = "disabled"; | 712 | #clock-cells = <1>; |
| 700 | }; | 713 | }; |
| 701 | 714 | ||
| 702 | saif0: saif@80042000 { | 715 | saif0: saif@80042000 { |
| 703 | compatible = "fsl,imx28-saif"; | 716 | compatible = "fsl,imx28-saif"; |
| 704 | reg = <0x80042000 0x2000>; | 717 | reg = <0x80042000 0x2000>; |
| 705 | interrupts = <59 80>; | 718 | interrupts = <59 80>; |
| 719 | clocks = <&clks 53>; | ||
| 706 | fsl,saif-dma-channel = <4>; | 720 | fsl,saif-dma-channel = <4>; |
| 707 | status = "disabled"; | 721 | status = "disabled"; |
| 708 | }; | 722 | }; |
| @@ -716,6 +730,7 @@ | |||
| 716 | compatible = "fsl,imx28-saif"; | 730 | compatible = "fsl,imx28-saif"; |
| 717 | reg = <0x80046000 0x2000>; | 731 | reg = <0x80046000 0x2000>; |
| 718 | interrupts = <58 81>; | 732 | interrupts = <58 81>; |
| 733 | clocks = <&clks 54>; | ||
| 719 | fsl,saif-dma-channel = <5>; | 734 | fsl,saif-dma-channel = <5>; |
| 720 | status = "disabled"; | 735 | status = "disabled"; |
| 721 | }; | 736 | }; |
| @@ -763,6 +778,7 @@ | |||
| 763 | pwm: pwm@80064000 { | 778 | pwm: pwm@80064000 { |
| 764 | compatible = "fsl,imx28-pwm", "fsl,imx23-pwm"; | 779 | compatible = "fsl,imx28-pwm", "fsl,imx23-pwm"; |
| 765 | reg = <0x80064000 0x2000>; | 780 | reg = <0x80064000 0x2000>; |
| 781 | clocks = <&clks 44>; | ||
| 766 | #pwm-cells = <2>; | 782 | #pwm-cells = <2>; |
| 767 | fsl,pwm-number = <8>; | 783 | fsl,pwm-number = <8>; |
| 768 | status = "disabled"; | 784 | status = "disabled"; |
| @@ -777,6 +793,7 @@ | |||
| 777 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 793 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
| 778 | reg = <0x8006a000 0x2000>; | 794 | reg = <0x8006a000 0x2000>; |
| 779 | interrupts = <112 70 71>; | 795 | interrupts = <112 70 71>; |
| 796 | clocks = <&clks 45>; | ||
| 780 | status = "disabled"; | 797 | status = "disabled"; |
| 781 | }; | 798 | }; |
| 782 | 799 | ||
| @@ -784,6 +801,7 @@ | |||
| 784 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 801 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
| 785 | reg = <0x8006c000 0x2000>; | 802 | reg = <0x8006c000 0x2000>; |
| 786 | interrupts = <113 72 73>; | 803 | interrupts = <113 72 73>; |
| 804 | clocks = <&clks 45>; | ||
| 787 | status = "disabled"; | 805 | status = "disabled"; |
| 788 | }; | 806 | }; |
| 789 | 807 | ||
| @@ -791,6 +809,7 @@ | |||
| 791 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 809 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
| 792 | reg = <0x8006e000 0x2000>; | 810 | reg = <0x8006e000 0x2000>; |
| 793 | interrupts = <114 74 75>; | 811 | interrupts = <114 74 75>; |
| 812 | clocks = <&clks 45>; | ||
| 794 | status = "disabled"; | 813 | status = "disabled"; |
| 795 | }; | 814 | }; |
| 796 | 815 | ||
| @@ -798,6 +817,7 @@ | |||
| 798 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 817 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
| 799 | reg = <0x80070000 0x2000>; | 818 | reg = <0x80070000 0x2000>; |
| 800 | interrupts = <115 76 77>; | 819 | interrupts = <115 76 77>; |
| 820 | clocks = <&clks 45>; | ||
| 801 | status = "disabled"; | 821 | status = "disabled"; |
| 802 | }; | 822 | }; |
| 803 | 823 | ||
| @@ -805,6 +825,7 @@ | |||
| 805 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 825 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
| 806 | reg = <0x80072000 0x2000>; | 826 | reg = <0x80072000 0x2000>; |
| 807 | interrupts = <116 78 79>; | 827 | interrupts = <116 78 79>; |
| 828 | clocks = <&clks 45>; | ||
| 808 | status = "disabled"; | 829 | status = "disabled"; |
| 809 | }; | 830 | }; |
| 810 | 831 | ||
| @@ -812,18 +833,22 @@ | |||
| 812 | compatible = "arm,pl011", "arm,primecell"; | 833 | compatible = "arm,pl011", "arm,primecell"; |
| 813 | reg = <0x80074000 0x1000>; | 834 | reg = <0x80074000 0x1000>; |
| 814 | interrupts = <47>; | 835 | interrupts = <47>; |
| 836 | clocks = <&clks 45>, <&clks 26>; | ||
| 837 | clock-names = "uart", "apb_pclk"; | ||
| 815 | status = "disabled"; | 838 | status = "disabled"; |
| 816 | }; | 839 | }; |
| 817 | 840 | ||
| 818 | usbphy0: usbphy@8007c000 { | 841 | usbphy0: usbphy@8007c000 { |
| 819 | compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy"; | 842 | compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy"; |
| 820 | reg = <0x8007c000 0x2000>; | 843 | reg = <0x8007c000 0x2000>; |
| 844 | clocks = <&clks 62>; | ||
| 821 | status = "disabled"; | 845 | status = "disabled"; |
| 822 | }; | 846 | }; |
| 823 | 847 | ||
| 824 | usbphy1: usbphy@8007e000 { | 848 | usbphy1: usbphy@8007e000 { |
| 825 | compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy"; | 849 | compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy"; |
| 826 | reg = <0x8007e000 0x2000>; | 850 | reg = <0x8007e000 0x2000>; |
| 851 | clocks = <&clks 63>; | ||
| 827 | status = "disabled"; | 852 | status = "disabled"; |
| 828 | }; | 853 | }; |
| 829 | }; | 854 | }; |
| @@ -840,6 +865,7 @@ | |||
| 840 | compatible = "fsl,imx28-usb", "fsl,imx27-usb"; | 865 | compatible = "fsl,imx28-usb", "fsl,imx27-usb"; |
| 841 | reg = <0x80080000 0x10000>; | 866 | reg = <0x80080000 0x10000>; |
| 842 | interrupts = <93>; | 867 | interrupts = <93>; |
| 868 | clocks = <&clks 60>; | ||
| 843 | fsl,usbphy = <&usbphy0>; | 869 | fsl,usbphy = <&usbphy0>; |
| 844 | status = "disabled"; | 870 | status = "disabled"; |
| 845 | }; | 871 | }; |
| @@ -848,6 +874,7 @@ | |||
| 848 | compatible = "fsl,imx28-usb", "fsl,imx27-usb"; | 874 | compatible = "fsl,imx28-usb", "fsl,imx27-usb"; |
| 849 | reg = <0x80090000 0x10000>; | 875 | reg = <0x80090000 0x10000>; |
| 850 | interrupts = <92>; | 876 | interrupts = <92>; |
| 877 | clocks = <&clks 61>; | ||
| 851 | fsl,usbphy = <&usbphy1>; | 878 | fsl,usbphy = <&usbphy1>; |
| 852 | status = "disabled"; | 879 | status = "disabled"; |
| 853 | }; | 880 | }; |
| @@ -861,6 +888,8 @@ | |||
| 861 | compatible = "fsl,imx28-fec"; | 888 | compatible = "fsl,imx28-fec"; |
| 862 | reg = <0x800f0000 0x4000>; | 889 | reg = <0x800f0000 0x4000>; |
| 863 | interrupts = <101>; | 890 | interrupts = <101>; |
| 891 | clocks = <&clks 57>, <&clks 57>; | ||
| 892 | clock-names = "ipg", "ahb"; | ||
| 864 | status = "disabled"; | 893 | status = "disabled"; |
| 865 | }; | 894 | }; |
| 866 | 895 | ||
| @@ -868,6 +897,8 @@ | |||
| 868 | compatible = "fsl,imx28-fec"; | 897 | compatible = "fsl,imx28-fec"; |
| 869 | reg = <0x800f4000 0x4000>; | 898 | reg = <0x800f4000 0x4000>; |
| 870 | interrupts = <102>; | 899 | interrupts = <102>; |
| 900 | clocks = <&clks 57>, <&clks 57>; | ||
| 901 | clock-names = "ipg", "ahb"; | ||
| 871 | status = "disabled"; | 902 | status = "disabled"; |
| 872 | }; | 903 | }; |
| 873 | 904 | ||
diff --git a/drivers/clk/mxs/clk-imx23.c b/drivers/clk/mxs/clk-imx23.c index 844043ad0fe4..9f6d15546cbe 100644 --- a/drivers/clk/mxs/clk-imx23.c +++ b/drivers/clk/mxs/clk-imx23.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
| 15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
| 17 | #include <linux/of.h> | ||
| 17 | #include <mach/common.h> | 18 | #include <mach/common.h> |
| 18 | #include <mach/mx23.h> | 19 | #include <mach/mx23.h> |
| 19 | #include "clk.h" | 20 | #include "clk.h" |
| @@ -71,44 +72,6 @@ static void __init clk_misc_init(void) | |||
| 71 | __mxs_setl(30 << BP_FRAC_IOFRAC, FRAC); | 72 | __mxs_setl(30 << BP_FRAC_IOFRAC, FRAC); |
| 72 | } | 73 | } |
| 73 | 74 | ||
| 74 | static struct clk_lookup uart_lookups[] = { | ||
| 75 | { .dev_id = "duart", }, | ||
| 76 | { .dev_id = "mxs-auart.0", }, | ||
| 77 | { .dev_id = "mxs-auart.1", }, | ||
| 78 | { .dev_id = "8006c000.serial", }, | ||
| 79 | { .dev_id = "8006e000.serial", }, | ||
| 80 | { .dev_id = "80070000.serial", }, | ||
| 81 | }; | ||
| 82 | |||
| 83 | static struct clk_lookup hbus_lookups[] = { | ||
| 84 | { .dev_id = "imx23-dma-apbh", }, | ||
| 85 | { .dev_id = "80004000.dma-apbh", }, | ||
| 86 | }; | ||
| 87 | |||
| 88 | static struct clk_lookup xbus_lookups[] = { | ||
| 89 | { .dev_id = "duart", .con_id = "apb_pclk"}, | ||
| 90 | { .dev_id = "80070000.serial", .con_id = "apb_pclk"}, | ||
| 91 | { .dev_id = "imx23-dma-apbx", }, | ||
| 92 | { .dev_id = "80024000.dma-apbx", }, | ||
| 93 | }; | ||
| 94 | |||
| 95 | static struct clk_lookup ssp_lookups[] = { | ||
| 96 | { .dev_id = "imx23-mmc.0", }, | ||
| 97 | { .dev_id = "imx23-mmc.1", }, | ||
| 98 | { .dev_id = "80010000.ssp", }, | ||
| 99 | { .dev_id = "80034000.ssp", }, | ||
| 100 | }; | ||
| 101 | |||
| 102 | static struct clk_lookup lcdif_lookups[] = { | ||
| 103 | { .dev_id = "imx23-fb", }, | ||
| 104 | { .dev_id = "80030000.lcdif", }, | ||
| 105 | }; | ||
| 106 | |||
| 107 | static struct clk_lookup gpmi_lookups[] = { | ||
| 108 | { .dev_id = "imx23-gpmi-nand", }, | ||
| 109 | { .dev_id = "8000c000.gpmi-nand", }, | ||
| 110 | }; | ||
| 111 | |||
| 112 | static const char *sel_pll[] __initconst = { "pll", "ref_xtal", }; | 75 | static const char *sel_pll[] __initconst = { "pll", "ref_xtal", }; |
| 113 | static const char *sel_cpu[] __initconst = { "ref_cpu", "ref_xtal", }; | 76 | static const char *sel_cpu[] __initconst = { "ref_cpu", "ref_xtal", }; |
| 114 | static const char *sel_pix[] __initconst = { "ref_pix", "ref_xtal", }; | 77 | static const char *sel_pix[] __initconst = { "ref_pix", "ref_xtal", }; |
| @@ -127,6 +90,7 @@ enum imx23_clk { | |||
| 127 | }; | 90 | }; |
| 128 | 91 | ||
| 129 | static struct clk *clks[clk_max]; | 92 | static struct clk *clks[clk_max]; |
| 93 | static struct clk_onecell_data clk_data; | ||
| 130 | 94 | ||
| 131 | static enum imx23_clk clks_init_on[] __initdata = { | 95 | static enum imx23_clk clks_init_on[] __initdata = { |
| 132 | cpu, hbus, xbus, emi, uart, | 96 | cpu, hbus, xbus, emi, uart, |
| @@ -134,6 +98,7 @@ static enum imx23_clk clks_init_on[] __initdata = { | |||
| 134 | 98 | ||
| 135 | int __init mx23_clocks_init(void) | 99 | int __init mx23_clocks_init(void) |
| 136 | { | 100 | { |
| 101 | struct device_node *np; | ||
| 137 | int i; | 102 | int i; |
| 138 | 103 | ||
| 139 | clk_misc_init(); | 104 | clk_misc_init(); |
| @@ -188,14 +153,14 @@ int __init mx23_clocks_init(void) | |||
| 188 | return PTR_ERR(clks[i]); | 153 | return PTR_ERR(clks[i]); |
| 189 | } | 154 | } |
| 190 | 155 | ||
| 156 | np = of_find_compatible_node(NULL, NULL, "fsl,imx23-clkctrl"); | ||
| 157 | if (np) { | ||
| 158 | clk_data.clks = clks; | ||
| 159 | clk_data.clk_num = ARRAY_SIZE(clks); | ||
| 160 | of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); | ||
| 161 | } | ||
| 162 | |||
| 191 | clk_register_clkdev(clks[clk32k], NULL, "timrot"); | 163 | clk_register_clkdev(clks[clk32k], NULL, "timrot"); |
| 192 | clk_register_clkdev(clks[pwm], NULL, "80064000.pwm"); | ||
| 193 | clk_register_clkdevs(clks[hbus], hbus_lookups, ARRAY_SIZE(hbus_lookups)); | ||
| 194 | clk_register_clkdevs(clks[xbus], xbus_lookups, ARRAY_SIZE(xbus_lookups)); | ||
| 195 | clk_register_clkdevs(clks[uart], uart_lookups, ARRAY_SIZE(uart_lookups)); | ||
| 196 | clk_register_clkdevs(clks[ssp], ssp_lookups, ARRAY_SIZE(ssp_lookups)); | ||
| 197 | clk_register_clkdevs(clks[gpmi], gpmi_lookups, ARRAY_SIZE(gpmi_lookups)); | ||
| 198 | clk_register_clkdevs(clks[lcdif], lcdif_lookups, ARRAY_SIZE(lcdif_lookups)); | ||
| 199 | 164 | ||
| 200 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) | 165 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) |
| 201 | clk_prepare_enable(clks[clks_init_on[i]]); | 166 | clk_prepare_enable(clks[clks_init_on[i]]); |
diff --git a/drivers/clk/mxs/clk-imx28.c b/drivers/clk/mxs/clk-imx28.c index e3aab67b3eb7..613e76f3758e 100644 --- a/drivers/clk/mxs/clk-imx28.c +++ b/drivers/clk/mxs/clk-imx28.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
| 15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
| 17 | #include <linux/of.h> | ||
| 17 | #include <mach/common.h> | 18 | #include <mach/common.h> |
| 18 | #include <mach/mx28.h> | 19 | #include <mach/mx28.h> |
| 19 | #include "clk.h" | 20 | #include "clk.h" |
| @@ -120,90 +121,6 @@ static void __init clk_misc_init(void) | |||
| 120 | writel_relaxed(val, FRAC0); | 121 | writel_relaxed(val, FRAC0); |
| 121 | } | 122 | } |
| 122 | 123 | ||
| 123 | static struct clk_lookup uart_lookups[] = { | ||
| 124 | { .dev_id = "duart", }, | ||
| 125 | { .dev_id = "mxs-auart.0", }, | ||
| 126 | { .dev_id = "mxs-auart.1", }, | ||
| 127 | { .dev_id = "mxs-auart.2", }, | ||
| 128 | { .dev_id = "mxs-auart.3", }, | ||
| 129 | { .dev_id = "mxs-auart.4", }, | ||
| 130 | { .dev_id = "8006a000.serial", }, | ||
| 131 | { .dev_id = "8006c000.serial", }, | ||
| 132 | { .dev_id = "8006e000.serial", }, | ||
| 133 | { .dev_id = "80070000.serial", }, | ||
| 134 | { .dev_id = "80072000.serial", }, | ||
| 135 | { .dev_id = "80074000.serial", }, | ||
| 136 | }; | ||
| 137 | |||
| 138 | static struct clk_lookup hbus_lookups[] = { | ||
| 139 | { .dev_id = "imx28-dma-apbh", }, | ||
| 140 | { .dev_id = "80004000.dma-apbh", }, | ||
| 141 | }; | ||
| 142 | |||
| 143 | static struct clk_lookup xbus_lookups[] = { | ||
| 144 | { .dev_id = "duart", .con_id = "apb_pclk"}, | ||
| 145 | { .dev_id = "80074000.serial", .con_id = "apb_pclk"}, | ||
| 146 | { .dev_id = "imx28-dma-apbx", }, | ||
| 147 | { .dev_id = "80024000.dma-apbx", }, | ||
| 148 | }; | ||
| 149 | |||
| 150 | static struct clk_lookup ssp0_lookups[] = { | ||
| 151 | { .dev_id = "imx28-mmc.0", }, | ||
| 152 | { .dev_id = "80010000.ssp", }, | ||
| 153 | }; | ||
| 154 | |||
| 155 | static struct clk_lookup ssp1_lookups[] = { | ||
| 156 | { .dev_id = "imx28-mmc.1", }, | ||
| 157 | { .dev_id = "80012000.ssp", }, | ||
| 158 | }; | ||
| 159 | |||
| 160 | static struct clk_lookup ssp2_lookups[] = { | ||
| 161 | { .dev_id = "imx28-mmc.2", }, | ||
| 162 | { .dev_id = "80014000.ssp", }, | ||
| 163 | }; | ||
| 164 | |||
| 165 | static struct clk_lookup ssp3_lookups[] = { | ||
| 166 | { .dev_id = "imx28-mmc.3", }, | ||
| 167 | { .dev_id = "80016000.ssp", }, | ||
| 168 | }; | ||
| 169 | |||
| 170 | static struct clk_lookup lcdif_lookups[] = { | ||
| 171 | { .dev_id = "imx28-fb", }, | ||
| 172 | { .dev_id = "80030000.lcdif", }, | ||
| 173 | }; | ||
| 174 | |||
| 175 | static struct clk_lookup gpmi_lookups[] = { | ||
| 176 | { .dev_id = "imx28-gpmi-nand", }, | ||
| 177 | { .dev_id = "8000c000.gpmi-nand", }, | ||
| 178 | }; | ||
| 179 | |||
| 180 | static struct clk_lookup fec_lookups[] = { | ||
| 181 | { .dev_id = "imx28-fec.0", }, | ||
| 182 | { .dev_id = "imx28-fec.1", }, | ||
| 183 | { .dev_id = "800f0000.ethernet", }, | ||
| 184 | { .dev_id = "800f4000.ethernet", }, | ||
| 185 | }; | ||
| 186 | |||
| 187 | static struct clk_lookup can0_lookups[] = { | ||
| 188 | { .dev_id = "flexcan.0", }, | ||
| 189 | { .dev_id = "80032000.can", }, | ||
| 190 | }; | ||
| 191 | |||
| 192 | static struct clk_lookup can1_lookups[] = { | ||
| 193 | { .dev_id = "flexcan.1", }, | ||
| 194 | { .dev_id = "80034000.can", }, | ||
| 195 | }; | ||
| 196 | |||
| 197 | static struct clk_lookup saif0_lookups[] = { | ||
| 198 | { .dev_id = "mxs-saif.0", }, | ||
| 199 | { .dev_id = "80042000.saif", }, | ||
| 200 | }; | ||
| 201 | |||
| 202 | static struct clk_lookup saif1_lookups[] = { | ||
| 203 | { .dev_id = "mxs-saif.1", }, | ||
| 204 | { .dev_id = "80046000.saif", }, | ||
| 205 | }; | ||
| 206 | |||
| 207 | static const char *sel_cpu[] __initconst = { "ref_cpu", "ref_xtal", }; | 124 | static const char *sel_cpu[] __initconst = { "ref_cpu", "ref_xtal", }; |
| 208 | static const char *sel_io0[] __initconst = { "ref_io0", "ref_xtal", }; | 125 | static const char *sel_io0[] __initconst = { "ref_io0", "ref_xtal", }; |
| 209 | static const char *sel_io1[] __initconst = { "ref_io1", "ref_xtal", }; | 126 | static const char *sel_io1[] __initconst = { "ref_io1", "ref_xtal", }; |
| @@ -228,6 +145,7 @@ enum imx28_clk { | |||
| 228 | }; | 145 | }; |
| 229 | 146 | ||
| 230 | static struct clk *clks[clk_max]; | 147 | static struct clk *clks[clk_max]; |
| 148 | static struct clk_onecell_data clk_data; | ||
| 231 | 149 | ||
| 232 | static enum imx28_clk clks_init_on[] __initdata = { | 150 | static enum imx28_clk clks_init_on[] __initdata = { |
| 233 | cpu, hbus, xbus, emi, uart, | 151 | cpu, hbus, xbus, emi, uart, |
| @@ -235,6 +153,7 @@ static enum imx28_clk clks_init_on[] __initdata = { | |||
| 235 | 153 | ||
| 236 | int __init mx28_clocks_init(void) | 154 | int __init mx28_clocks_init(void) |
| 237 | { | 155 | { |
| 156 | struct device_node *np; | ||
| 238 | int i; | 157 | int i; |
| 239 | 158 | ||
| 240 | clk_misc_init(); | 159 | clk_misc_init(); |
| @@ -312,27 +231,15 @@ int __init mx28_clocks_init(void) | |||
| 312 | return PTR_ERR(clks[i]); | 231 | return PTR_ERR(clks[i]); |
| 313 | } | 232 | } |
| 314 | 233 | ||
| 234 | np = of_find_compatible_node(NULL, NULL, "fsl,imx28-clkctrl"); | ||
| 235 | if (np) { | ||
| 236 | clk_data.clks = clks; | ||
| 237 | clk_data.clk_num = ARRAY_SIZE(clks); | ||
| 238 | of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); | ||
| 239 | } | ||
| 240 | |||
| 315 | clk_register_clkdev(clks[clk32k], NULL, "timrot"); | 241 | clk_register_clkdev(clks[clk32k], NULL, "timrot"); |
| 316 | clk_register_clkdev(clks[enet_out], NULL, "enet_out"); | 242 | clk_register_clkdev(clks[enet_out], NULL, "enet_out"); |
| 317 | clk_register_clkdev(clks[pwm], NULL, "80064000.pwm"); | ||
| 318 | clk_register_clkdevs(clks[hbus], hbus_lookups, ARRAY_SIZE(hbus_lookups)); | ||
| 319 | clk_register_clkdevs(clks[xbus], xbus_lookups, ARRAY_SIZE(xbus_lookups)); | ||
| 320 | clk_register_clkdevs(clks[uart], uart_lookups, ARRAY_SIZE(uart_lookups)); | ||
| 321 | clk_register_clkdevs(clks[ssp0], ssp0_lookups, ARRAY_SIZE(ssp0_lookups)); | ||
| 322 | clk_register_clkdevs(clks[ssp1], ssp1_lookups, ARRAY_SIZE(ssp1_lookups)); | ||
| 323 | clk_register_clkdevs(clks[ssp2], ssp2_lookups, ARRAY_SIZE(ssp2_lookups)); | ||
| 324 | clk_register_clkdevs(clks[ssp3], ssp3_lookups, ARRAY_SIZE(ssp3_lookups)); | ||
| 325 | clk_register_clkdevs(clks[gpmi], gpmi_lookups, ARRAY_SIZE(gpmi_lookups)); | ||
| 326 | clk_register_clkdevs(clks[saif0], saif0_lookups, ARRAY_SIZE(saif0_lookups)); | ||
| 327 | clk_register_clkdevs(clks[saif1], saif1_lookups, ARRAY_SIZE(saif1_lookups)); | ||
| 328 | clk_register_clkdevs(clks[lcdif], lcdif_lookups, ARRAY_SIZE(lcdif_lookups)); | ||
| 329 | clk_register_clkdevs(clks[fec], fec_lookups, ARRAY_SIZE(fec_lookups)); | ||
| 330 | clk_register_clkdevs(clks[can0], can0_lookups, ARRAY_SIZE(can0_lookups)); | ||
| 331 | clk_register_clkdevs(clks[can1], can1_lookups, ARRAY_SIZE(can1_lookups)); | ||
| 332 | clk_register_clkdev(clks[usb0_pwr], NULL, "8007c000.usbphy"); | ||
| 333 | clk_register_clkdev(clks[usb1_pwr], NULL, "8007e000.usbphy"); | ||
| 334 | clk_register_clkdev(clks[usb0], NULL, "80080000.usb"); | ||
| 335 | clk_register_clkdev(clks[usb1], NULL, "80090000.usb"); | ||
| 336 | 243 | ||
| 337 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) | 244 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) |
| 338 | clk_prepare_enable(clks[clks_init_on[i]]); | 245 | clk_prepare_enable(clks[clks_init_on[i]]); |
