Re: [PATCH 01/14] staging: clocking-wizard: Add principles of operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 7.5.2018 03:20, James Kelly wrote:
> Add a description for how the Xilinx Clocking Wizard IP works to guide
> subsequent patches.
> 
> Signed-off-by: James Kelly <jamespeterkelly@xxxxxxxxx>
> ---
>  .../clocking-wizard/clk-xlnx-clock-wizard.c        | 52 ++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
> 
> diff --git a/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c b/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
> index cae7e6e695b0..babbed42f96d 100644
> --- a/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
> +++ b/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
> @@ -5,6 +5,58 @@
>   *  Copyright (C) 2013 - 2014 Xilinx
>   *
>   *  Sören Brinkmann <soren.brinkmann@xxxxxxxxxx>
> + *
> + * Principles of Operation:
> + *
> + * The Xilinx clocking wizard IP implements a clock complex that can be
> + * modelled as a collection of dividers and a PLL multiplier arranged in
> + * the following configuration:
> + *
> + *                         +-------------------------------> clk_fbout
> + *                         |
> + *          fin  +-----+   |    +-----+  vco   +-----+
> + * clk_in1 ----->| DIV |---+--->| PLL |---+--->| DIV |-----> clk_out1
> + *               +-----+  pfd   +-----+   |    +-----+
> + *                                        |
> + *                                        |    +-----+
> + *                                        +--->| DIV |-----> clk_out2
> + *                                        |    +-----+
> + *                                        |
> + *                                        |      ...
> + *                                        |    +-----+
> + *                                        +--->| DIV |-----> clk_outn
> + *                                             +-----+
> + *
> + * Each divider and the PLL multiplier correspond to a distinct common
> + * clock framework struct clk.
> + *
> + * The number of clock outputs depends the clock primitive type (MMCM or PLL)
> + * and FPGA family and can range from 2 to 7, not including clk_fbout.
> + * Xilinx documentation is inconsistent in the numbering of these outputs.
> + * The clocking wizard uses 1 thru n whereas the clocking primitives wrapped
> + * by the wizard use 0 through n-1.
> + *
> + * This driver publishes the n output clocks in the device tree using addresses
> + * 0 through n-1.  The remaining two clocks (DIV and PLL) are not published in
> + * the device tree but can be obtained using calls to clk_get_parent on one
> + * of the output clocks.
> + *
> + * There are constraints on the input rate (fin), phase-frequency
> + * detector rate (pfd), the voltage controlled oscillator rate (vco)
> + * and output clock rates. These depend on FPGA family, clock primitive type
> + * and chip speed grade.
> + *
> + * The available ratios for the dividers and PLL multiplier depend on
> + * FPGA family and clock primitive type.  MMCM primitves support fractional
> + * ratios for the PLL multipler and first output divider, whereas PLL
> + * primitives do not.  Fractional ratios have a resolution of 0.125 (1/8) or 3
> + * fractional bits.
> + *
> + * Clock ratios can be dynamically changed via two different register
> + * interfaces depending on how the "Write to DRP" configuration option is set
> + * when the clocking wizard IP is customized.  This driver requires that
> + * the "Write to DRP" configuration option is disabled in customization
> + * as it currently uses the higher-level of the two register interfaces.
>   */
>  
>  #include <linux/platform_device.h>
> 

There are some double spaces in the text without any reason.


Thanks,
Michal

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux