|
@@ -115,6 +115,17 @@ static const IMXClk imx6_gpt_clocks[] = {
|
|
|
CLK_HIGH, /* 111 reference clock */
|
|
|
};
|
|
|
|
|
|
+static const IMXClk imx6ul_gpt_clocks[] = {
|
|
|
+ CLK_NONE, /* 000 No clock source */
|
|
|
+ CLK_IPG, /* 001 ipg_clk, 532MHz*/
|
|
|
+ CLK_IPG_HIGH, /* 010 ipg_clk_highfreq */
|
|
|
+ CLK_EXT, /* 011 External clock */
|
|
|
+ CLK_32k, /* 100 ipg_clk_32k */
|
|
|
+ CLK_NONE, /* 101 not defined */
|
|
|
+ CLK_NONE, /* 110 not defined */
|
|
|
+ CLK_NONE, /* 111 not defined */
|
|
|
+};
|
|
|
+
|
|
|
static const IMXClk imx7_gpt_clocks[] = {
|
|
|
CLK_NONE, /* 000 No clock source */
|
|
|
CLK_IPG, /* 001 ipg_clk, 532MHz*/
|
|
@@ -539,6 +550,13 @@ static void imx6_gpt_init(Object *obj)
|
|
|
s->clocks = imx6_gpt_clocks;
|
|
|
}
|
|
|
|
|
|
+static void imx6ul_gpt_init(Object *obj)
|
|
|
+{
|
|
|
+ IMXGPTState *s = IMX_GPT(obj);
|
|
|
+
|
|
|
+ s->clocks = imx6ul_gpt_clocks;
|
|
|
+}
|
|
|
+
|
|
|
static void imx7_gpt_init(Object *obj)
|
|
|
{
|
|
|
IMXGPTState *s = IMX_GPT(obj);
|
|
@@ -566,6 +584,12 @@ static const TypeInfo imx6_gpt_info = {
|
|
|
.instance_init = imx6_gpt_init,
|
|
|
};
|
|
|
|
|
|
+static const TypeInfo imx6ul_gpt_info = {
|
|
|
+ .name = TYPE_IMX6UL_GPT,
|
|
|
+ .parent = TYPE_IMX25_GPT,
|
|
|
+ .instance_init = imx6ul_gpt_init,
|
|
|
+};
|
|
|
+
|
|
|
static const TypeInfo imx7_gpt_info = {
|
|
|
.name = TYPE_IMX7_GPT,
|
|
|
.parent = TYPE_IMX25_GPT,
|
|
@@ -577,6 +601,7 @@ static void imx_gpt_register_types(void)
|
|
|
type_register_static(&imx25_gpt_info);
|
|
|
type_register_static(&imx31_gpt_info);
|
|
|
type_register_static(&imx6_gpt_info);
|
|
|
+ type_register_static(&imx6ul_gpt_info);
|
|
|
type_register_static(&imx7_gpt_info);
|
|
|
}
|
|
|
|