30 Dec, 2020

1 commit

  • [ Upstream commit bae69bfa3a586493469078ec4ca35499b754ba5c ]

    When building only G12A, ensure that VID_PLL_DIV clock driver is
    selected, otherwise results in this build error:

    ERROR: modpost: "meson_vid_pll_div_ro_ops" [drivers/clk/meson/g12a.ko] undefined!

    Fixes: 085a4ea93d54 ("clk: meson: g12a: add peripheral clock controller")
    Signed-off-by: Kevin Hilman
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20201118190930.34352-1-khilman@baylibre.com
    Signed-off-by: Sasha Levin

    Kevin Hilman
     

29 Oct, 2020

1 commit

  • Nesting container_of() causes warnings with W=2, which is
    annoying if it happens in headers and fills the build log
    like:

    In file included from drivers/clk/qcom/clk-alpha-pll.c:6:
    drivers/clk/qcom/clk-alpha-pll.c: In function 'clk_alpha_pll_hwfsm_enable':
    include/linux/kernel.h:852:8: warning: declaration of '__mptr' shadows a previous local [-Wshadow]
    852 | void *__mptr = (void *)(ptr); \
    | ^~~~~~
    drivers/clk/qcom/clk-alpha-pll.c:155:31: note: in expansion of macro 'container_of'
    155 | #define to_clk_alpha_pll(_hw) container_of(to_clk_regmap(_hw), \
    | ^~~~~~~~~~~~
    drivers/clk/qcom/clk-regmap.h:27:28: note: in expansion of macro 'container_of'
    27 | #define to_clk_regmap(_hw) container_of(_hw, struct clk_regmap, hw)
    | ^~~~~~~~~~~~
    drivers/clk/qcom/clk-alpha-pll.c:155:44: note: in expansion of macro 'to_clk_regmap'
    155 | #define to_clk_alpha_pll(_hw) container_of(to_clk_regmap(_hw), \
    | ^~~~~~~~~~~~~
    drivers/clk/qcom/clk-alpha-pll.c:254:30: note: in expansion of macro 'to_clk_alpha_pll'
    254 | struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
    | ^~~~~~~~~~~~~~~~
    include/linux/kernel.h:852:8: note: shadowed declaration is here
    852 | void *__mptr = (void *)(ptr); \
    | ^~~~~~

    Redefine two copies of the to_clk_regmap() macro as inline functions
    to avoid a lot of these.

    Fixes: ea11dda9e091 ("clk: meson: add regmap clocks")
    Fixes: 085d7a455444 ("clk: qcom: Add a regmap type clock struct")
    Signed-off-by: Arnd Bergmann
    Link: https://lore.kernel.org/r/20201026161411.3708639-1-arnd@kernel.org
    Acked-by: Jerome Brunet
    Signed-off-by: Stephen Boyd

    Arnd Bergmann
     

21 Oct, 2020

1 commit

  • …k-const' and 'clk-mmp2' into clk-next

    * clk-semicolon:
    clk: meson: use semicolons rather than commas to separate statements
    clk: mvebu: ap80x-cpu: use semicolons rather than commas to separate statements
    clk: uniphier: use semicolons rather than commas to separate statements

    * clk-axi-clkgen:
    clk: axi-clkgen: Set power bits for fractional mode
    clk: axi-clkgen: Add support for fractional dividers

    * clk-qoriq:
    clk: qoriq: modify MAX_PLL_DIV to 32

    * clk-baikal:
    clk: baikal-t1: Mark Ethernet PLL as critical

    * clk-const:
    clk: pxa: Constify static struct clk_ops

    * clk-mmp2:
    clk: mmp2: Fix the display clock divider base

    Stephen Boyd
     

14 Oct, 2020

1 commit


10 Sep, 2020

1 commit


29 Aug, 2020

1 commit

  • On Amlogic Meson G12b platform, similar to fclk_div3, the fclk_div2
    seems to be necessary for the system to operate correctly as well.

    Typically, the clock also gets chosen by the eMMC peripheral. This
    probably masked the problem so far. However, when booting from a SD
    card the clock seems to get disabled which leads to a system freeze.

    Let's mark this clock as critical, fixing boot from SD card on G12b
    platforms.

    Fixes: 085a4ea93d54 ("clk: meson: g12a: add peripheral clock controller")
    Signed-off-by: Stefan Agner
    Signed-off-by: Jerome Brunet
    Tested-by: Anand Moon
    Cc: Marek Szyprowski
    Link: https://lore.kernel.org/r/577e0129e8ee93972d92f13187ff4e4286182f67.1598629915.git.stefan@agner.ch

    Stefan Agner
     

17 Aug, 2020

3 commits

  • Fix the tdmout inverter of the g12a and following SoC families.
    This inverter is special and needs two bits to be the inverse of each other
    for the inverter to operate properly.

    Fixes: 075001385c66 ("clk: meson: axg-audio: add g12a support")
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200729154359.1983085-4-jbrunet@baylibre.com

    Jerome Brunet
     
  • There are more differences than what we initially thought.
    Let's keeps things clear and separate the axg and g12a regmap tables of the
    audio clock controller.

    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200729154359.1983085-3-jbrunet@baylibre.com

    Jerome Brunet
     
  • This is yet another simple but odd driver for the audio block of the g12a
    and sm1 SoC families.

    For TDMOUT's sclk to be properly inverted, bit 29 of
    AUDIO_CLK_TDMOUT_x_CTRL should be the inverse of bit 28.
    IOW bit28 == !bit29 at all times

    This setting is automatically applied on axg and the manual setting was
    added on g12a.

    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200729154359.1983085-2-jbrunet@baylibre.com

    Jerome Brunet
     

21 Jul, 2020

1 commit

  • * clk-amlogic:
    clk: meson: meson8b: add the vclk2_en gate clock
    clk: meson: meson8b: add the vclk_en gate clock
    clk: meson: meson8b: Drop CLK_IS_CRITICAL from fclk_div2
    clk: meson: g12a: Add support for NNA CLK source clocks
    dt-bindings: clk: g12a-clkc: Add NNA CLK Source clock IDs

    Stephen Boyd
     

11 Jul, 2020

1 commit

  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `\bxmlns\b`:
    For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Link: https://lore.kernel.org/r/20200703175114.15027-1-grandmaster@al2klimov.de
    Signed-off-by: Stephen Boyd

    Alexander A. Klimov
     

09 Jul, 2020

2 commits

  • HHI_VIID_CLK_CNTL[19] is not part of the public S805 datasheet. However,
    the GXBB driver defines this bit as a gate called "vclk2" and in the
    3.10 kernel GPL code dump the following line can found:
    WRITE_LCD_CBUS_REG_BITS(HHI_VIID_CLK_CNTL, 0, 19, 1); //disable vclk2_en

    Add this gate clock to the Meson8/Meson8b/Meson8m2 clock controller to
    complete the VCLK2 clock tree.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200629203904.2989007-3-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     
  • HHI_VID_CLK_CNTL[19] is documented as CLK_EN0. This description is the
    same in the public S912 datasheet and the GXBB driver calls this gate
    "vclk". Add this gate clock to the Meson8/Meson8b/Meson8m2 clock
    controller because it's needed to make the video output work.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200629203904.2989007-2-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     

24 Jun, 2020

1 commit

  • Drop CLK_IS_CRITICAL from fclk_div2. This was added because we didn't
    know the relation between this clock and RGMII Ethernet. It turns out
    that fclk_div2 is used as "timing adjustment clock" to generate the RX
    delay on the MAC side - which was enabled by u-boot on Odriod-C1. When
    using the RX delay on the PHY side or not using a RX delay at all then
    this clock can be disabled.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200620161422.24114-1-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     

19 Jun, 2020

1 commit

  • This adds the Neural Network Accelerator source clocks hierarchy, it's
    2 simple composite clocks to feed the AXI interface and the Core of
    the Neural Network Accelerator IP.

    This IP is only present on the Amlogic SM1 SoCs family.

    Signed-off-by: Dmitry Shmidt
    Signed-off-by: Neil Armstrong
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200610083012.5024-3-narmstrong@baylibre.com

    Dmitry Shmidt
     

02 May, 2020

1 commit

  • Not all u-boot versions initialize the HHI_GP_PLL_CNTL[2-5] registers.
    In that case all HHI_GPLL_PLL_CNTL[1-5] registers are 0x0 and when
    booting Linux the PLL fails to lock.
    The initialization sequence from u-boot is:
    - put the PLL into reset
    - write 0x59C88000 to HHI_GP_PLL_CNTL2
    - write 0xCA463823 to HHI_GP_PLL_CNTL3
    - write 0x0286A027 to HHI_GP_PLL_CNTL4
    - write 0x00003000 to HHI_GP_PLL_CNTL5
    - set M, N, OD and the enable bit
    - take the PLL out of reset
    - check if it has locked
    - disable the PLL

    In Linux we already initialize M, N, OD, the enable and the reset bits.
    Also the HHI_GP_PLL_CNTL[2-5] registers with these magic values (the
    exact meaning is unknown) so the PLL can lock when the vendor u-boot did
    not initialize these registers yet.

    Fixes: b882964b376f21 ("clk: meson: meson8b: add support for the GP_PLL clock on Meson8m2")
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200501215717.735393-1-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     

29 Apr, 2020

4 commits

  • The "vpu_0" or "vpu_1" clock trees should not be updated while the
    clock is running. Enforce this by setting CLK_SET_RATE_GATE on the
    "vpu_0" and "vpu_1" gates. This makes the CCF switch to the "vpu_1"
    tree when "vpu_0" is currently active and vice versa, which is exactly
    what the vendor driver does when updating the frequency of the VPU
    clock.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200417184127.1319871-5-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     
  • The DIV{1,2,4,6,12}_EN bits are actually located in HHI_VID_CLK_CNTL
    register:
    - HHI_VID_CLK_CNTL[0] = DIV1_EN
    - HHI_VID_CLK_CNTL[1] = DIV2_EN
    - HHI_VID_CLK_CNTL[2] = DIV4_EN
    - HHI_VID_CLK_CNTL[3] = DIV6_EN
    - HHI_VID_CLK_CNTL[4] = DIV12_EN

    Update the bits accordingly so we will enable the bits in the correct
    register once we switch these clocks to be mutable.

    Fixes: 6cb57c678bb70e ("clk: meson: meson8b: add the read-only video clock trees")
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200417184127.1319871-4-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     
  • CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_POST and
    CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_PRE are active low. This means:
    - asserting them requires setting the register value to 0
    - de-asserting them requires setting the register value to 1

    Set the register value accordingly for these two reset lines by setting
    the inverted the register value compared to all other reset lines.

    Fixes: 189621726bc2f6 ("clk: meson: meson8b: register the built-in reset controller")
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200417184127.1319871-3-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     
  • Use hdmi_pll_lvds_out as parent of the vid_pll_in_sel clock. It's not
    easy to see that the vendor kernel does the same, but it actually does.
    meson_clk_pll_ops in mainline still cannot fully recalculate all rates
    from the HDMI PLL registers because some register bits (at the time of
    writing it's unknown which bits are used for this) double the HDMI PLL
    output rate (compared to simply considering M, N and FRAC) for some (but
    not all) PLL settings.

    Update the vid_pll_in_sel parent so our clock calculation works for
    simple clock settings like the CVBS output (where no rate doubling is
    going on). The PLL ops need to be fixed later on for more complex clock
    settings (all HDMI rates).

    Fixes: 6cb57c678bb70 ("clk: meson: meson8b: add the read-only video clock trees")
    Suggested-by: Neil Armstrong
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Link: https://lore.kernel.org/r/20200417184127.1319871-2-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     

16 Apr, 2020

2 commits

  • The "mali_0" or "mali_1" clock trees should not be updated while the
    clock is running. Enforce this by setting CLK_SET_RATE_GATE on the
    "mali_0" and "mali_1" gates. This makes the CCF switch to the "mali_1"
    tree when "mali_0" is currently active and vice versa, which is exactly
    what the vendor driver does when updating the frequency of the mali
    clock.
    Also propagate set_rate requests from the gate to the divider and from
    the divider to the the mux so the GPU clock frequency can be updated at
    runtime (which will be required for GPU DVFS). Don't propagate rate
    changes to the mux parents because we don't want to change the MPLL
    clocks (these are reserved for audio).

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Acked-by: Neil Armstrong
    Link: https://lore.kernel.org/r/20200414195031.224021-3-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     
  • The "mali_0" or "mali_1" clock trees should not be updated while the
    clock is running. Enforce this by setting CLK_SET_RATE_GATE on the
    "mali_0" and "mali_1" gates. This makes the CCF switch to the "mali_1"
    tree when "mali_0" is currently active and vice versa, which is exactly
    what the vendor driver does when updating the frequency of the mali
    clock.
    Also propagate set_rate requests from the gate to the divider and from
    the divider to the the mux so the GPU clock frequency can be updated at
    runtime (which will be required for GPU DVFS). Don't propagate rate
    changes to the mux parents because we don't want to change the MPLL
    clocks (these are reserved for audio).

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet
    Acked-by: Neil Armstrong
    Link: https://lore.kernel.org/r/20200414195031.224021-2-martin.blumenstingl@googlemail.com

    Martin Blumenstingl
     

14 Apr, 2020

2 commits


21 Feb, 2020

1 commit


20 Feb, 2020

1 commit


14 Feb, 2020

2 commits


01 Feb, 2020

1 commit

  • …' and 'clk-allwinner' into clk-next

    - Support dangerous debugfs actions on clks with dead code
    - Convert gpio, fixed-factor, mux, gate, divider basic clks to hw based APIs

    * clk-debugfs-danger:
    clk: Add support for setting clk_rate via debugfs

    * clk-basic-hw:
    clk: divider: Add support for specifying parents via DT/pointers
    clk: gate: Add support for specifying parents via DT/pointers
    clk: mux: Add support for specifying parents via DT/pointers
    clk: asm9260: Use parent accuracy in fixed rate clk
    clk: fixed-rate: Document that accuracy isn't a rate
    clk: fixed-rate: Add clk flags for parent accuracy
    clk: fixed-rate: Add support for specifying parents via DT/pointers
    clk: fixed-rate: Document accuracy member
    clk: fixed-rate: Move to_clk_fixed_rate() to C file
    clk: fixed-rate: Remove clk_register_fixed_rate_with_accuracy()
    clk: fixed-rate: Convert to clk_hw based APIs
    clk: gpio: Use DT way of specifying parents

    * clk-renesas:
    clk: renesas: Prepare for split of R-Car H3 config symbol
    dt-bindings: clock: renesas: cpg-mssr: Fix r8a774b1 typo
    clk: renesas: r7s9210: Add SPIBSC clock
    clk: renesas: rcar-gen3: Allow changing the RPC[D2] clocks
    clk: renesas: Remove use of ARCH_R8A7796
    clk: renesas: rcar-gen2: Change multipliers and dividers to u8

    * clk-amlogic:
    clk: clarify that clk_set_rate() does updates from top to bottom
    clk: meson: meson8b: make the CCF use the glitch-free mali mux
    clk: meson: pll: Fix by 0 division in __pll_params_to_rate()
    clk: meson: g12a: fix missing uart2 in regmap table
    clk: meson: meson8b: use of_clk_hw_register to register the clocks
    clk: meson: meson8b: don't register the XTAL clock when provided via OF
    clk: meson: meson8b: change references to the XTAL clock to use [fw_]name
    clk: meson: meson8b: use clk_hw_set_parent in the CPU clock notifier
    clk: meson: add a driver for the Meson8/8b/8m2 DDR clock controller
    dt-bindings: clock: meson8b: add the clock inputs
    dt-bindings: clock: add the Amlogic Meson8 DDR clock controller binding

    * clk-allwinner:
    clk: sunxi: a23/a33: Export the MIPI PLL
    clk: sunxi: a31: Export the MIPI PLL
    clk: sunxi-ng: a64: export CLK_CPUX clock for DVFS
    clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock
    clk: sunxi-ng: r40: Export MBUS clock
    clk: sunxi: use of_device_get_match_data

    Stephen Boyd
     

07 Jan, 2020

1 commit

  • The "mali_0" or "mali_1" clock trees should not be updated while the
    clock is running. Enforce this by setting CLK_SET_RATE_GATE on the
    "mali_0" and "mali_1" gates. This makes the CCF switch to the "mali_1"
    tree when "mali_0" is currently active and vice versa, which is exactly
    what the vendor driver does when updating the frequency of the mali
    clock.

    This fixes a potential hang when changing the GPU frequency at runtime.

    Fixes: 74e1f2521f16ff ("clk: meson: meson8b: add the GPU clock tree")
    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     

24 Dec, 2019

1 commit

  • If the init callback is allowed to request resources, it needs a return
    value to report the outcome of such a request.

    Signed-off-by: Jerome Brunet
    Link: https://lkml.kernel.org/r/20190924123954.31561-3-jbrunet@baylibre.com
    Reviewed-by: Andrew Lunn
    Acked-by: Heiko Stuebner
    Signed-off-by: Stephen Boyd

    Jerome Brunet
     

16 Dec, 2019

3 commits

  • Jerome Brunet
     
  • Some meson pll registers can be initialized with 0 as N value, introducing
    the following division by 0 when computing rate :

    UBSAN: Undefined behaviour in drivers/clk/meson/clk-pll.c:75:9
    division by zero
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc3-608075-g86c9af8630e1-dirty #400
    Call trace:
    dump_backtrace+0x0/0x1c0
    show_stack+0x14/0x20
    dump_stack+0xc4/0x100
    ubsan_epilogue+0x14/0x68
    __ubsan_handle_divrem_overflow+0x98/0xb8
    __pll_params_to_rate+0xdc/0x140
    meson_clk_pll_recalc_rate+0x278/0x3a0
    __clk_register+0x7c8/0xbb0
    devm_clk_hw_register+0x54/0xc0
    meson_eeclkc_probe+0xf4/0x1a0
    platform_drv_probe+0x54/0xd8
    really_probe+0x16c/0x438
    driver_probe_device+0xb0/0xf0
    device_driver_attach+0x94/0xa0
    __driver_attach+0x70/0x108
    bus_for_each_dev+0xd8/0x128
    driver_attach+0x30/0x40
    bus_add_driver+0x1b0/0x2d8
    driver_register+0xbc/0x1d0
    __platform_driver_register+0x78/0x88
    axg_driver_init+0x18/0x20
    do_one_initcall+0xc8/0x24c
    kernel_init_freeable+0x2b0/0x344
    kernel_init+0x10/0x128
    ret_from_fork+0x10/0x18

    This checks if N is null before doing the division.

    Fixes: 7a29a869434e ("clk: meson: Add support for Meson clock controller")
    Reviewed-by: Martin Blumenstingl
    Signed-off-by: Remi Pommarel
    [jbrunet@baylibre.com: update the comment in above the fix]
    Signed-off-by: Jerome Brunet

    Remi Pommarel
     
  • UART2 peripheral is missing from the regmap fixup table of the g12a family
    clock controller. As it is, any access to this clock would Oops, which is
    not great.

    Add the clock to the table to fix the problem.

    Fixes: 085a4ea93d54 ("clk: meson: g12a: add peripheral clock controller")
    Reported-by: Dmitry Shmidt
    Tested-by: Dmitry Shmidt
    Acked-by: Neil Armstrong
    Tested-by: Kevin Hilman
    Signed-off-by: Jerome Brunet

    Jerome Brunet
     

11 Dec, 2019

5 commits

  • Switch from clk_hw_register to of_clk_hw_register so we can use
    clk_parent_data.fw_name. This will be used to get the "xtal", "ddr_pll"
    and possibly others from the .dtb.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     
  • The XTAL clock is an actual crystal on the PCB. Thus the meson8b clock
    driver should not register the XTAL clock - instead it should be
    provided via .dts and then passed to the clock controller.

    Skip the registration of the XTAL clock if a parent clock is provided
    via OF. Fall back to registering the XTAL clock if this is not the case
    to keep support for old .dtbs.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     
  • The XTAL clock is an actual crystal which is mounted on the PCB. Thus
    the meson8b clock controller driver should not provide the XTAL clock.

    The meson8b clock controller driver must not use references to
    the meson8b_xtal clock anymore before we can provide the XTAL clock
    via OF. Replace the references to the meson8b_xtal.hw by using
    clk_parent_data's .fw_name and .name = "xtal" (along with index = -1).
    This makes the common clock framework use the clock provided via OF and
    if that's not available it falls back to getting the clock by it's name
    (which is then the clk_fixed_rate which we register in our driver).

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     
  • Switch from clk_set_parent() to clk_hw_set_parent() now that we have a
    way to configure a mux clock based on clk_hw pointers. This simplifies
    the meson8b_cpu_clk_notifier_cb logic. No functional changes.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     
  • The Meson8/Meson8b/Meson8m2 SoCs embed a DDR clock controller in the
    MMCBUS registers. There is no public documentation, but the u-boot GPL
    sources from the Amlogic BSP show that the DDR clock controller is
    identical on all three SoCs:
    #define CFG_DDR_CLK 792
    #define CFG_PLL_M (((CFG_DDR_CLK/12)*12)/24)
    #define CFG_PLL_N 1
    #define CFG_PLL_OD 1

    // from set_ddr_clock:
    t_ddr_pll_cntl= (CFG_PLL_OD << 16)|(CFG_PLL_N<<t_ddr_pll_cntl|(1<<<<
    Signed-off-by: Jerome Brunet

    Martin Blumenstingl
     

14 Oct, 2019

1 commit