+++ /dev/null
-#include <ubi_uboot.h>\r
-#include <linux/compiler.h>\r
-#include <asm/arch/clock.h>\r
-\r
-extern const u32 __clkinit0 __clkinit_begin;\r
-extern const u32 __clkinit2 __clkinit_end;\r
-\r
-static unsigned int get_clock_rate(const char *clk_name)\r
-{ \r
- unsigned int rate;\r
- struct clk *clk;\r
-\r
- clk =clk_get(0, clk_name);\r
-\r
- if (clk == NULL)\r
- {\r
- printf("%s can't find!\r\n");\r
- return 0;\r
- }\r
-\r
- if (clk->ops)\r
- {\r
- rate = clk->ops->get_rate(clk);\r
- }\r
- else\r
- {\r
- rate = clk->rate;\r
- }\r
- printf("%s : %d\r\n", clk_name, rate);\r
- return rate;\r
-}\r
-\r
-static unsigned int change_clock_rate(const *clk_name, unsigned int rate)\r
-{\r
- struct clk *clk;\r
-\r
- clk =clk_get(0, clk_name);\r
-\r
- if (clk == NULL)\r
- {\r
- printf("%s can't find!\r\n");\r
- return -1;\r
- }\r
-\r
- if (clk->ops)\r
- {\r
- if (clk->ops->set_rate)\r
- {\r
- clk->ops->set_rate(clk, rate);\r
- }\r
- else\r
- {\r
- return -1;\r
- }\r
- }\r
- else\r
- {\r
- return -1;\r
- }\r
- printf("%s ==> %d\r\n", clk_name, rate);\r
- return 0;\r
-}\r
-\r
-void clock_test()\r
-{\r
- struct clk *clk;\r
- \r
- sci_clock_init();\r
-\r
- printf("clock_test, __clkinit_begin:%08X (%08X), __clkinit_end:%08X (%08X)\r\n\r\n", \r
- &__clkinit_begin, __clkinit_begin, &__clkinit_end, __clkinit_end);\r
-\r
- {\r
- struct clk_lookup *cl = (struct clk_lookup *)(&__clkinit_begin + 1);\r
- while (cl < (struct clk_lookup *)&__clkinit_end)\r
- {\r
- clk =clk_get(0, cl->con_id);\r
- if (clk != ERR_PTR(-2))\r
- {\r
- if (clk->ops)\r
- {\r
- printf("1.clk: %s, rate: %d\r\n", cl->con_id, clk->ops->get_rate(clk));\r
- }\r
- else\r
- {\r
- printf("2.clk: %s, rate: %d\r\n", cl->con_id, clk->rate);\r
- }\r
- }\r
- else\r
- {\r
- printf("get %s error!\r\n", cl->con_id);\r
- }\r
- cl++;\r
- }
- }\r
- printf("---------------------------------------\r\n");\r
- get_clock_rate("clk_arm");\r
- get_clock_rate("clk_axi");\r
- get_clock_rate("clk_ahb");\r
- get_clock_rate("clk_apb");\r
- \r
- get_clock_rate("clk_emmc");\r
- change_clock_rate("clk_emmc", 192000000);\r
- get_clock_rate("clk_emmc");\r
- \r
- get_clock_rate("clk_apb");\r
- change_clock_rate("clk_apb", 100000000);\r
- get_clock_rate("clk_apb");\r
-\r
-\r
- get_clock_rate("clk_emc");\r
- change_clock_rate("clk_emc", 100000000);\r
- get_clock_rate("clk_emc");\r
-\r
- get_clock_rate("clk_dbg");\r
- change_clock_rate("clk_dbg", 200000000);\r
- get_clock_rate("clk_dbg");\r
-\r
- printf("clock test end!\r\n");\r
-}\r
-\r