Hi

On 2018/12/28 9:39, Stephen Boyd wrote:
Quoting Sugaya, Taichi (2018-12-25 17:35:27)
Hi

On 2018/11/30 17:31, Stephen Boyd wrote:
+       init.num_parents = parents;
+       init.parent_names = parent_names;
+
+       mcm->cname = clk_name;
+       mcm->parent = 0;
+       mcm->hw.init = &init;
+
+       clk = clk_register(NULL, &mcm->hw);
+       if (IS_ERR(clk))
+               goto err_clk;
+
+       of_clk_add_provider(node, of_clk_src_simple_get, clk);
+       return;
+
+err_clk:
+       kfree(mcm);
+err_mcm:
+       kfree(parent_names);
+}
+CLK_OF_DECLARE(m10v_clk_mux, "socionext,milbeaut-m10v-clk-mux",
+                       m10v_clk_mux_setup);

Any chance you can use a platform driver?


Excuse me to re-ask you.
Why do you recommend to use a platform driver? Is that current fad?

Not exactly a fad. We've been doing it for some time now. From an older
email on the list:

Reasons (in no particular order):

   1. We get a dev pointer to use with clk_hw_register()

   2. We can handle probe defer if some resource is not available

   3. Using device model gets us a hook into power management frameworks
      like runtime PM and system PM for things like suspend and hibernate

   4. It encourages a single DT node clk controller style binding
      instead of a single node per clk style binding

   5. We can use non-DT specific functions like devm_ioremap_resource() to map
      registers and acquire other resources, leading to more portable and
      generic code

   6. We may be able to make the device driver a module, which will
      make distros happy if we don't have to compile in all
      these clk drivers to the resulting vmlinux


Great thanks for answering. I strongly understand.
#It takes a bit of time to send v2.

Best Regards,
Sugaya Taichi

Reply via email to