Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
0b2d795e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0b2d795e
编写于
12年前
作者:
S
Shawn Guo
浏览文件
操作
浏览文件
下载
差异文件
Merge tag 'mxs-clk-dt-lookup' into mxs/dt-for-3.7-2
上级
86003ece
53f9443d
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
242 addition
and
152 deletion
+242
-152
Documentation/devicetree/bindings/clock/imx23-clock.txt
Documentation/devicetree/bindings/clock/imx23-clock.txt
+76
-0
Documentation/devicetree/bindings/clock/imx28-clock.txt
Documentation/devicetree/bindings/clock/imx28-clock.txt
+99
-0
arch/arm/boot/dts/imx23.dtsi
arch/arm/boot/dts/imx23.dtsi
+14
-2
arch/arm/boot/dts/imx28.dtsi
arch/arm/boot/dts/imx28.dtsi
+33
-2
drivers/clk/mxs/clk-imx23.c
drivers/clk/mxs/clk-imx23.c
+10
-45
drivers/clk/mxs/clk-imx28.c
drivers/clk/mxs/clk-imx28.c
+10
-103
未找到文件。
Documentation/devicetree/bindings/clock/imx23-clock.txt
0 → 100644
浏览文件 @
0b2d795e
* Clock bindings for Freescale i.MX23
Required properties:
- compatible: Should be "fsl,imx23-clkctrl"
- reg: Address and length of the register set
- #clock-cells: Should be <1>
The clock consumer should specify the desired clock by having the clock
ID in its "clocks" phandle cell. The following is a full list of i.MX23
clocks and IDs.
Clock ID
------------------
ref_xtal 0
pll 1
ref_cpu 2
ref_emi 3
ref_pix 4
ref_io 5
saif_sel 6
lcdif_sel 7
gpmi_sel 8
ssp_sel 9
emi_sel 10
cpu 11
etm_sel 12
cpu_pll 13
cpu_xtal 14
hbus 15
xbus 16
lcdif_div 17
ssp_div 18
gpmi_div 19
emi_pll 20
emi_xtal 21
etm_div 22
saif_div 23
clk32k_div 24
rtc 25
adc 26
spdif_div 27
clk32k 28
dri 29
pwm 30
filt 31
uart 32
ssp 33
gpmi 34
spdif 35
emi 36
saif 37
lcdif 38
etm 39
usb 40
usb_pwr 41
Examples:
clks: clkctrl@80040000 {
compatible = "fsl,imx23-clkctrl";
reg = <0x80040000 0x2000>;
#clock-cells = <1>;
clock-output-names =
...
"uart", /* 32 */
...
"end_of_list";
};
auart0: serial@8006c000 {
compatible = "fsl,imx23-auart";
reg = <0x8006c000 0x2000>;
interrupts = <24 25 23>;
clocks = <&clks 32>;
status = "disabled";
};
This diff is collapsed.
Click to expand it.
Documentation/devicetree/bindings/clock/imx28-clock.txt
0 → 100644
浏览文件 @
0b2d795e
* Clock bindings for Freescale i.MX28
Required properties:
- compatible: Should be "fsl,imx28-clkctrl"
- reg: Address and length of the register set
- #clock-cells: Should be <1>
The clock consumer should specify the desired clock by having the clock
ID in its "clocks" phandle cell. The following is a full list of i.MX28
clocks and IDs.
Clock ID
------------------
ref_xtal 0
pll0 1
pll1 2
pll2 3
ref_cpu 4
ref_emi 5
ref_io0 6
ref_io1 7
ref_pix 8
ref_hsadc 9
ref_gpmi 10
saif0_sel 11
saif1_sel 12
gpmi_sel 13
ssp0_sel 14
ssp1_sel 15
ssp2_sel 16
ssp3_sel 17
emi_sel 18
etm_sel 19
lcdif_sel 20
cpu 21
ptp_sel 22
cpu_pll 23
cpu_xtal 24
hbus 25
xbus 26
ssp0_div 27
ssp1_div 28
ssp2_div 29
ssp3_div 30
gpmi_div 31
emi_pll 32
emi_xtal 33
lcdif_div 34
etm_div 35
ptp 36
saif0_div 37
saif1_div 38
clk32k_div 39
rtc 40
lradc 41
spdif_div 42
clk32k 43
pwm 44
uart 45
ssp0 46
ssp1 47
ssp2 48
ssp3 49
gpmi 50
spdif 51
emi 52
saif0 53
saif1 54
lcdif 55
etm 56
fec 57
can0 58
can1 59
usb0 60
usb1 61
usb0_pwr 62
usb1_pwr 63
enet_out 64
Examples:
clks: clkctrl@80040000 {
compatible = "fsl,imx28-clkctrl";
reg = <0x80040000 0x2000>;
#clock-cells = <1>;
clock-output-names =
...
"uart", /* 45 */
...
"end_of_list";
};
auart0: serial@8006a000 {
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006a000 0x2000>;
interrupts = <112 70 71>;
clocks = <&clks 45>;
status = "disabled";
};
This diff is collapsed.
Click to expand it.
arch/arm/boot/dts/imx23.dtsi
浏览文件 @
0b2d795e
...
...
@@ -52,6 +52,7 @@
dma-apbh@80004000 {
compatible = "fsl,imx23-dma-apbh";
reg = <0x80004000 0x2000>;
clocks = <&clks 15>;
};
ecc@80008000 {
...
...
@@ -67,6 +68,7 @@
reg-names = "gpmi-nand", "bch";
interrupts = <13>, <56>;
interrupt-names = "gpmi-dma", "bch";
clocks = <&clks 34>;
fsl,gpmi-dma-channel = <4>;
status = "disabled";
};
...
...
@@ -74,6 +76,7 @@
ssp0: ssp@80010000 {
reg = <0x80010000 0x2000>;
interrupts = <15 14>;
clocks = <&clks 33>;
fsl,ssp-dma-channel = <1>;
status = "disabled";
};
...
...
@@ -290,6 +293,7 @@
dma-apbx@80024000 {
compatible = "fsl,imx23-dma-apbx";
reg = <0x80024000 0x2000>;
clocks = <&clks 16>;
};
dcp@80028000 {
...
...
@@ -316,12 +320,14 @@
compatible = "fsl,imx23-lcdif";
reg = <0x80030000 2000>;
interrupts = <46 45>;
clocks = <&clks 38>;
status = "disabled";
};
ssp1: ssp@80034000 {
reg = <0x80034000 0x2000>;
interrupts = <2 20>;
clocks = <&clks 33>;
fsl,ssp-dma-channel = <2>;
status = "disabled";
};
...
...
@@ -339,9 +345,10 @@
reg = <0x80040000 0x40000>;
ranges;
clkctl@80040000 {
clks: clkctrl@80040000 {
compatible = "fsl,imx23-clkctrl";
reg = <0x80040000 0x2000>;
status = "disabled"
;
#clock-cells = <1>
;
};
saif0: saif@80042000 {
...
...
@@ -393,6 +400,7 @@
pwm: pwm@80064000 {
compatible = "fsl,imx23-pwm";
reg = <0x80064000 0x2000>;
clocks = <&clks 30>;
#pwm-cells = <2>;
fsl,pwm-number = <5>;
status = "disabled";
...
...
@@ -407,6 +415,7 @@
compatible = "fsl,imx23-auart";
reg = <0x8006c000 0x2000>;
interrupts = <24 25 23>;
clocks = <&clks 32>;
status = "disabled";
};
...
...
@@ -414,6 +423,7 @@
compatible = "fsl,imx23-auart";
reg = <0x8006e000 0x2000>;
interrupts = <59 60 58>;
clocks = <&clks 32>;
status = "disabled";
};
...
...
@@ -421,6 +431,8 @@
compatible = "arm,pl011", "arm,primecell";
reg = <0x80070000 0x2000>;
interrupts = <0>;
clocks = <&clks 32>, <&clks 16>;
clock-names = "uart", "apb_pclk";
status = "disabled";
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/boot/dts/imx28.dtsi
浏览文件 @
0b2d795e
...
...
@@ -65,6 +65,7 @@
dma-apbh@80004000 {
compatible = "fsl,imx28-dma-apbh";
reg = <0x80004000 0x2000>;
clocks = <&clks 25>;
};
perfmon@80006000 {
...
...
@@ -81,6 +82,7 @@
reg-names = "gpmi-nand", "bch";
interrupts = <88>, <41>;
interrupt-names = "gpmi-dma", "bch";
clocks = <&clks 50>;
fsl,gpmi-dma-channel = <4>;
status = "disabled";
};
...
...
@@ -90,6 +92,7 @@
#size-cells = <0>;
reg = <0x80010000 0x2000>;
interrupts = <96 82>;
clocks = <&clks 46>;
fsl,ssp-dma-channel = <0>;
status = "disabled";
};
...
...
@@ -99,6 +102,7 @@
#size-cells = <0>;
reg = <0x80012000 0x2000>;
interrupts = <97 83>;
clocks = <&clks 47>;
fsl,ssp-dma-channel = <1>;
status = "disabled";
};
...
...
@@ -108,6 +112,7 @@
#size-cells = <0>;
reg = <0x80014000 0x2000>;
interrupts = <98 84>;
clocks = <&clks 48>;
fsl,ssp-dma-channel = <2>;
status = "disabled";
};
...
...
@@ -117,6 +122,7 @@
#size-cells = <0>;
reg = <0x80016000 0x2000>;
interrupts = <99 85>;
clocks = <&clks 49>;
fsl,ssp-dma-channel = <3>;
status = "disabled";
};
...
...
@@ -606,6 +612,7 @@
dma-apbx@80024000 {
compatible = "fsl,imx28-dma-apbx";
reg = <0x80024000 0x2000>;
clocks = <&clks 26>;
};
dcp@80028000 {
...
...
@@ -634,6 +641,7 @@
compatible = "fsl,imx28-lcdif";
reg = <0x80030000 0x2000>;
interrupts = <38 86>;
clocks = <&clks 55>;
status = "disabled";
};
...
...
@@ -641,6 +649,8 @@
compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";
reg = <0x80032000 0x2000>;
interrupts = <8>;
clocks = <&clks 58>, <&clks 58>;
clock-names = "ipg", "per";
status = "disabled";
};
...
...
@@ -648,6 +658,8 @@
compatible = "fsl,imx28-flexcan", "fsl,p1010-flexcan";
reg = <0x80034000 0x2000>;
interrupts = <9>;
clocks = <&clks 59>, <&clks 59>;
clock-names = "ipg", "per";
status = "disabled";
};
...
...
@@ -694,15 +706,17 @@
reg = <0x80040000 0x40000>;
ranges;
clkctl@80040000 {
clks: clkctrl@80040000 {
compatible = "fsl,imx28-clkctrl";
reg = <0x80040000 0x2000>;
status = "disabled"
;
#clock-cells = <1>
;
};
saif0: saif@80042000 {
compatible = "fsl,imx28-saif";
reg = <0x80042000 0x2000>;
interrupts = <59 80>;
clocks = <&clks 53>;
fsl,saif-dma-channel = <4>;
status = "disabled";
};
...
...
@@ -716,6 +730,7 @@
compatible = "fsl,imx28-saif";
reg = <0x80046000 0x2000>;
interrupts = <58 81>;
clocks = <&clks 54>;
fsl,saif-dma-channel = <5>;
status = "disabled";
};
...
...
@@ -763,6 +778,7 @@
pwm: pwm@80064000 {
compatible = "fsl,imx28-pwm", "fsl,imx23-pwm";
reg = <0x80064000 0x2000>;
clocks = <&clks 44>;
#pwm-cells = <2>;
fsl,pwm-number = <8>;
status = "disabled";
...
...
@@ -777,6 +793,7 @@
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006a000 0x2000>;
interrupts = <112 70 71>;
clocks = <&clks 45>;
status = "disabled";
};
...
...
@@ -784,6 +801,7 @@
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006c000 0x2000>;
interrupts = <113 72 73>;
clocks = <&clks 45>;
status = "disabled";
};
...
...
@@ -791,6 +809,7 @@
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006e000 0x2000>;
interrupts = <114 74 75>;
clocks = <&clks 45>;
status = "disabled";
};
...
...
@@ -798,6 +817,7 @@
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x80070000 0x2000>;
interrupts = <115 76 77>;
clocks = <&clks 45>;
status = "disabled";
};
...
...
@@ -805,6 +825,7 @@
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x80072000 0x2000>;
interrupts = <116 78 79>;
clocks = <&clks 45>;
status = "disabled";
};
...
...
@@ -812,18 +833,22 @@
compatible = "arm,pl011", "arm,primecell";
reg = <0x80074000 0x1000>;
interrupts = <47>;
clocks = <&clks 45>, <&clks 26>;
clock-names = "uart", "apb_pclk";
status = "disabled";
};
usbphy0: usbphy@8007c000 {
compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy";
reg = <0x8007c000 0x2000>;
clocks = <&clks 62>;
status = "disabled";
};
usbphy1: usbphy@8007e000 {
compatible = "fsl,imx28-usbphy", "fsl,imx23-usbphy";
reg = <0x8007e000 0x2000>;
clocks = <&clks 63>;
status = "disabled";
};
};
...
...
@@ -840,6 +865,7 @@
compatible = "fsl,imx28-usb", "fsl,imx27-usb";
reg = <0x80080000 0x10000>;
interrupts = <93>;
clocks = <&clks 60>;
fsl,usbphy = <&usbphy0>;
status = "disabled";
};
...
...
@@ -848,6 +874,7 @@
compatible = "fsl,imx28-usb", "fsl,imx27-usb";
reg = <0x80090000 0x10000>;
interrupts = <92>;
clocks = <&clks 61>;
fsl,usbphy = <&usbphy1>;
status = "disabled";
};
...
...
@@ -861,6 +888,8 @@
compatible = "fsl,imx28-fec";
reg = <0x800f0000 0x4000>;
interrupts = <101>;
clocks = <&clks 57>, <&clks 57>;
clock-names = "ipg", "ahb";
status = "disabled";
};
...
...
@@ -868,6 +897,8 @@
compatible = "fsl,imx28-fec";
reg = <0x800f4000 0x4000>;
interrupts = <102>;
clocks = <&clks 57>, <&clks 57>;
clock-names = "ipg", "ahb";
status = "disabled";
};
...
...
This diff is collapsed.
Click to expand it.
drivers/clk/mxs/clk-imx23.c
浏览文件 @
0b2d795e
...
...
@@ -14,6 +14,7 @@
#include <linux/err.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/of.h>
#include <mach/common.h>
#include <mach/mx23.h>
#include "clk.h"
...
...
@@ -71,44 +72,6 @@ static void __init clk_misc_init(void)
__mxs_setl
(
30
<<
BP_FRAC_IOFRAC
,
FRAC
);
}
static
struct
clk_lookup
uart_lookups
[]
=
{
{
.
dev_id
=
"duart"
,
},
{
.
dev_id
=
"mxs-auart.0"
,
},
{
.
dev_id
=
"mxs-auart.1"
,
},
{
.
dev_id
=
"8006c000.serial"
,
},
{
.
dev_id
=
"8006e000.serial"
,
},
{
.
dev_id
=
"80070000.serial"
,
},
};
static
struct
clk_lookup
hbus_lookups
[]
=
{
{
.
dev_id
=
"imx23-dma-apbh"
,
},
{
.
dev_id
=
"80004000.dma-apbh"
,
},
};
static
struct
clk_lookup
xbus_lookups
[]
=
{
{
.
dev_id
=
"duart"
,
.
con_id
=
"apb_pclk"
},
{
.
dev_id
=
"80070000.serial"
,
.
con_id
=
"apb_pclk"
},
{
.
dev_id
=
"imx23-dma-apbx"
,
},
{
.
dev_id
=
"80024000.dma-apbx"
,
},
};
static
struct
clk_lookup
ssp_lookups
[]
=
{
{
.
dev_id
=
"imx23-mmc.0"
,
},
{
.
dev_id
=
"imx23-mmc.1"
,
},
{
.
dev_id
=
"80010000.ssp"
,
},
{
.
dev_id
=
"80034000.ssp"
,
},
};
static
struct
clk_lookup
lcdif_lookups
[]
=
{
{
.
dev_id
=
"imx23-fb"
,
},
{
.
dev_id
=
"80030000.lcdif"
,
},
};
static
struct
clk_lookup
gpmi_lookups
[]
=
{
{
.
dev_id
=
"imx23-gpmi-nand"
,
},
{
.
dev_id
=
"8000c000.gpmi-nand"
,
},
};
static
const
char
*
sel_pll
[]
__initconst
=
{
"pll"
,
"ref_xtal"
,
};
static
const
char
*
sel_cpu
[]
__initconst
=
{
"ref_cpu"
,
"ref_xtal"
,
};
static
const
char
*
sel_pix
[]
__initconst
=
{
"ref_pix"
,
"ref_xtal"
,
};
...
...
@@ -127,6 +90,7 @@ enum imx23_clk {
};
static
struct
clk
*
clks
[
clk_max
];
static
struct
clk_onecell_data
clk_data
;
static
enum
imx23_clk
clks_init_on
[]
__initdata
=
{
cpu
,
hbus
,
xbus
,
emi
,
uart
,
...
...
@@ -134,6 +98,7 @@ static enum imx23_clk clks_init_on[] __initdata = {
int
__init
mx23_clocks_init
(
void
)
{
struct
device_node
*
np
;
int
i
;
clk_misc_init
();
...
...
@@ -188,14 +153,14 @@ int __init mx23_clocks_init(void)
return
PTR_ERR
(
clks
[
i
]);
}
np
=
of_find_compatible_node
(
NULL
,
NULL
,
"fsl,imx23-clkctrl"
);
if
(
np
)
{
clk_data
.
clks
=
clks
;
clk_data
.
clk_num
=
ARRAY_SIZE
(
clks
);
of_clk_add_provider
(
np
,
of_clk_src_onecell_get
,
&
clk_data
);
}
clk_register_clkdev
(
clks
[
clk32k
],
NULL
,
"timrot"
);
clk_register_clkdev
(
clks
[
pwm
],
NULL
,
"80064000.pwm"
);
clk_register_clkdevs
(
clks
[
hbus
],
hbus_lookups
,
ARRAY_SIZE
(
hbus_lookups
));
clk_register_clkdevs
(
clks
[
xbus
],
xbus_lookups
,
ARRAY_SIZE
(
xbus_lookups
));
clk_register_clkdevs
(
clks
[
uart
],
uart_lookups
,
ARRAY_SIZE
(
uart_lookups
));
clk_register_clkdevs
(
clks
[
ssp
],
ssp_lookups
,
ARRAY_SIZE
(
ssp_lookups
));
clk_register_clkdevs
(
clks
[
gpmi
],
gpmi_lookups
,
ARRAY_SIZE
(
gpmi_lookups
));
clk_register_clkdevs
(
clks
[
lcdif
],
lcdif_lookups
,
ARRAY_SIZE
(
lcdif_lookups
));
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
clks_init_on
);
i
++
)
clk_prepare_enable
(
clks
[
clks_init_on
[
i
]]);
...
...
This diff is collapsed.
Click to expand it.
drivers/clk/mxs/clk-imx28.c
浏览文件 @
0b2d795e
...
...
@@ -14,6 +14,7 @@
#include <linux/err.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/of.h>
#include <mach/common.h>
#include <mach/mx28.h>
#include "clk.h"
...
...
@@ -120,90 +121,6 @@ static void __init clk_misc_init(void)
writel_relaxed
(
val
,
FRAC0
);
}
static
struct
clk_lookup
uart_lookups
[]
=
{
{
.
dev_id
=
"duart"
,
},
{
.
dev_id
=
"mxs-auart.0"
,
},
{
.
dev_id
=
"mxs-auart.1"
,
},
{
.
dev_id
=
"mxs-auart.2"
,
},
{
.
dev_id
=
"mxs-auart.3"
,
},
{
.
dev_id
=
"mxs-auart.4"
,
},
{
.
dev_id
=
"8006a000.serial"
,
},
{
.
dev_id
=
"8006c000.serial"
,
},
{
.
dev_id
=
"8006e000.serial"
,
},
{
.
dev_id
=
"80070000.serial"
,
},
{
.
dev_id
=
"80072000.serial"
,
},
{
.
dev_id
=
"80074000.serial"
,
},
};
static
struct
clk_lookup
hbus_lookups
[]
=
{
{
.
dev_id
=
"imx28-dma-apbh"
,
},
{
.
dev_id
=
"80004000.dma-apbh"
,
},
};
static
struct
clk_lookup
xbus_lookups
[]
=
{
{
.
dev_id
=
"duart"
,
.
con_id
=
"apb_pclk"
},
{
.
dev_id
=
"80074000.serial"
,
.
con_id
=
"apb_pclk"
},
{
.
dev_id
=
"imx28-dma-apbx"
,
},
{
.
dev_id
=
"80024000.dma-apbx"
,
},
};
static
struct
clk_lookup
ssp0_lookups
[]
=
{
{
.
dev_id
=
"imx28-mmc.0"
,
},
{
.
dev_id
=
"80010000.ssp"
,
},
};
static
struct
clk_lookup
ssp1_lookups
[]
=
{
{
.
dev_id
=
"imx28-mmc.1"
,
},
{
.
dev_id
=
"80012000.ssp"
,
},
};
static
struct
clk_lookup
ssp2_lookups
[]
=
{
{
.
dev_id
=
"imx28-mmc.2"
,
},
{
.
dev_id
=
"80014000.ssp"
,
},
};
static
struct
clk_lookup
ssp3_lookups
[]
=
{
{
.
dev_id
=
"imx28-mmc.3"
,
},
{
.
dev_id
=
"80016000.ssp"
,
},
};
static
struct
clk_lookup
lcdif_lookups
[]
=
{
{
.
dev_id
=
"imx28-fb"
,
},
{
.
dev_id
=
"80030000.lcdif"
,
},
};
static
struct
clk_lookup
gpmi_lookups
[]
=
{
{
.
dev_id
=
"imx28-gpmi-nand"
,
},
{
.
dev_id
=
"8000c000.gpmi-nand"
,
},
};
static
struct
clk_lookup
fec_lookups
[]
=
{
{
.
dev_id
=
"imx28-fec.0"
,
},
{
.
dev_id
=
"imx28-fec.1"
,
},
{
.
dev_id
=
"800f0000.ethernet"
,
},
{
.
dev_id
=
"800f4000.ethernet"
,
},
};
static
struct
clk_lookup
can0_lookups
[]
=
{
{
.
dev_id
=
"flexcan.0"
,
},
{
.
dev_id
=
"80032000.can"
,
},
};
static
struct
clk_lookup
can1_lookups
[]
=
{
{
.
dev_id
=
"flexcan.1"
,
},
{
.
dev_id
=
"80034000.can"
,
},
};
static
struct
clk_lookup
saif0_lookups
[]
=
{
{
.
dev_id
=
"mxs-saif.0"
,
},
{
.
dev_id
=
"80042000.saif"
,
},
};
static
struct
clk_lookup
saif1_lookups
[]
=
{
{
.
dev_id
=
"mxs-saif.1"
,
},
{
.
dev_id
=
"80046000.saif"
,
},
};
static
const
char
*
sel_cpu
[]
__initconst
=
{
"ref_cpu"
,
"ref_xtal"
,
};
static
const
char
*
sel_io0
[]
__initconst
=
{
"ref_io0"
,
"ref_xtal"
,
};
static
const
char
*
sel_io1
[]
__initconst
=
{
"ref_io1"
,
"ref_xtal"
,
};
...
...
@@ -228,6 +145,7 @@ enum imx28_clk {
};
static
struct
clk
*
clks
[
clk_max
];
static
struct
clk_onecell_data
clk_data
;
static
enum
imx28_clk
clks_init_on
[]
__initdata
=
{
cpu
,
hbus
,
xbus
,
emi
,
uart
,
...
...
@@ -235,6 +153,7 @@ static enum imx28_clk clks_init_on[] __initdata = {
int
__init
mx28_clocks_init
(
void
)
{
struct
device_node
*
np
;
int
i
;
clk_misc_init
();
...
...
@@ -312,27 +231,15 @@ int __init mx28_clocks_init(void)
return
PTR_ERR
(
clks
[
i
]);
}
np
=
of_find_compatible_node
(
NULL
,
NULL
,
"fsl,imx28-clkctrl"
);
if
(
np
)
{
clk_data
.
clks
=
clks
;
clk_data
.
clk_num
=
ARRAY_SIZE
(
clks
);
of_clk_add_provider
(
np
,
of_clk_src_onecell_get
,
&
clk_data
);
}
clk_register_clkdev
(
clks
[
clk32k
],
NULL
,
"timrot"
);
clk_register_clkdev
(
clks
[
enet_out
],
NULL
,
"enet_out"
);
clk_register_clkdev
(
clks
[
pwm
],
NULL
,
"80064000.pwm"
);
clk_register_clkdevs
(
clks
[
hbus
],
hbus_lookups
,
ARRAY_SIZE
(
hbus_lookups
));
clk_register_clkdevs
(
clks
[
xbus
],
xbus_lookups
,
ARRAY_SIZE
(
xbus_lookups
));
clk_register_clkdevs
(
clks
[
uart
],
uart_lookups
,
ARRAY_SIZE
(
uart_lookups
));
clk_register_clkdevs
(
clks
[
ssp0
],
ssp0_lookups
,
ARRAY_SIZE
(
ssp0_lookups
));
clk_register_clkdevs
(
clks
[
ssp1
],
ssp1_lookups
,
ARRAY_SIZE
(
ssp1_lookups
));
clk_register_clkdevs
(
clks
[
ssp2
],
ssp2_lookups
,
ARRAY_SIZE
(
ssp2_lookups
));
clk_register_clkdevs
(
clks
[
ssp3
],
ssp3_lookups
,
ARRAY_SIZE
(
ssp3_lookups
));
clk_register_clkdevs
(
clks
[
gpmi
],
gpmi_lookups
,
ARRAY_SIZE
(
gpmi_lookups
));
clk_register_clkdevs
(
clks
[
saif0
],
saif0_lookups
,
ARRAY_SIZE
(
saif0_lookups
));
clk_register_clkdevs
(
clks
[
saif1
],
saif1_lookups
,
ARRAY_SIZE
(
saif1_lookups
));
clk_register_clkdevs
(
clks
[
lcdif
],
lcdif_lookups
,
ARRAY_SIZE
(
lcdif_lookups
));
clk_register_clkdevs
(
clks
[
fec
],
fec_lookups
,
ARRAY_SIZE
(
fec_lookups
));
clk_register_clkdevs
(
clks
[
can0
],
can0_lookups
,
ARRAY_SIZE
(
can0_lookups
));
clk_register_clkdevs
(
clks
[
can1
],
can1_lookups
,
ARRAY_SIZE
(
can1_lookups
));
clk_register_clkdev
(
clks
[
usb0_pwr
],
NULL
,
"8007c000.usbphy"
);
clk_register_clkdev
(
clks
[
usb1_pwr
],
NULL
,
"8007e000.usbphy"
);
clk_register_clkdev
(
clks
[
usb0
],
NULL
,
"80080000.usb"
);
clk_register_clkdev
(
clks
[
usb1
],
NULL
,
"80090000.usb"
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
clks_init_on
);
i
++
)
clk_prepare_enable
(
clks
[
clks_init_on
[
i
]]);
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部