• Stephen Boyd's avatar
    Merge tag 'sunxi-ng-parent-rewrite-part-1-take-2' of... · f925a054
    Stephen Boyd authored
    Merge tag 'sunxi-ng-parent-rewrite-part-1-take-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner
    
    Pull Allwinner sunxi-ng clk driver parent relation rewrite part 1 - take 2
    from Chen-Yu Tsai:
    
    "The first part of ongoing work to convert the sunxi-ng clk driver from
    using global clock name strings to describe clk parenting, to having
    direct struct clk_hw pointers, or local names based on clock-names from
    the device tree binding.
    
    This is based on Stephen Boyd's recent work allowing clk drivers to
    specify clk parents using struct clk_hw * or parsing DT phandles in the
    clk node.
    
    This series can be split into a few major parts:
    
    1) The first patch is a small fix for clk debugfs representation.
    
    2) A bunch of CLK_HW_INIT_* helper macros are added. These cover the
       situations I encountered, or assume I will encounter, such as single
       internal (struct clk_hw *) parent, single DT (struct clk_parent_data
       .fw_name), multiple internal parents, and multiple mixed (internal +
       DT) parents. A special variant for just an internal single parent is
       added, CLK_HW_INIT_HWS, which lets the driver share the singular
       list, instead of having the compiler create a compound literal every
       time. It might even make sense to only keep this variant.
    
    3) A bunch of CLK_FIXED_FACTOR_* helper macros are added. The rationale
       is the same as the single parent CLK_HW_INIT_* helpers.
    
    4) Bulk conversion of CLK_FIXED_FACTOR to use local parent references,
       either struct clk_hw * or DT .fw_name types, whichever the hardware
       requires.
    
    5) The beginning of SUNXI_CCU_GATE conversion to local parent
       references. This part is not done. They are included as justification
       and examples for the shared list of clk parents case."
    
    * tag 'sunxi-ng-parent-rewrite-part-1-take-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (25 commits)
      clk: sunxi-ng: sun8i-r: Use local parent references for SUNXI_CCU_GATE
      clk: sunxi-ng: a80-usb: Use local parent references for SUNXI_CCU_GATE
      clk: sunxi-ng: gate: Add macros for referencing local clock parents
      clk: sunxi-ng: h6-r: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: h6: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: a64: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: f1c100s: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: sun8i-r: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: v3s: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: r40: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: h3: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: a33: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: a23: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: a31: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: sun5i: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: a10: Use local parent references for CLK_FIXED_FACTOR
      clk: sunxi-ng: sun8i-r: Use local parent references for CLK_HW_INIT_*
      clk: sunxi-ng: switch to of_clk_hw_register() for registering clks
      clk: fixed-factor: Add CLK_FIXED_FACTOR_FW_NAME for DT clock-names parent
      clk: fixed-factor: Add CLK_FIXED_FACTOR_HWS which takes list of struct clk_hw *
      ...
    f925a054
ccu-sun50i-h6-r.c 5.7 KB