clk: rs9: fix wrong default value for clock amplitude
authorCatalin Popescu <catalin.popescu@leica-geosystems.com>
Mon, 15 Apr 2024 14:03:48 +0000 (16:03 +0200)
committerStephen Boyd <sboyd@kernel.org>
Sat, 20 Apr 2024 02:09:41 +0000 (19:09 -0700)
According to 9FGV0241, 9FGV0441 & 9FGV0841 datasheets, the default
value for the clock amplitude is 0.8V, while the driver assumes 0.7V.

Additionally, define constants for default values for both clock
amplitude and spread spectrum and use them.

Fixes: 892e0ddea1aa ("clk: rs9: Add Renesas 9-series PCIe clock generator driver")
Signed-off-by: Catalin Popescu <catalin.popescu@leica-geosystems.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20240415140348.2887619-1-catalin.popescu@leica-geosystems.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-renesas-pcie.c

index 53e21ac302e6ddf62884bbfa89b92039d8c4ea11..4c3a5e4eb77ac6a1230b518c57ee4fce9512540b 100644 (file)
 #define RS9_REG_SS_AMP_0V7                     0x1
 #define RS9_REG_SS_AMP_0V8                     0x2
 #define RS9_REG_SS_AMP_0V9                     0x3
+#define RS9_REG_SS_AMP_DEFAULT                 RS9_REG_SS_AMP_0V8
 #define RS9_REG_SS_AMP_MASK                    0x3
 #define RS9_REG_SS_SSC_100                     0
 #define RS9_REG_SS_SSC_M025                    (1 << 3)
 #define RS9_REG_SS_SSC_M050                    (3 << 3)
+#define RS9_REG_SS_SSC_DEFAULT                 RS9_REG_SS_SSC_100
 #define RS9_REG_SS_SSC_MASK                    (3 << 3)
 #define RS9_REG_SS_SSC_LOCK                    BIT(5)
 #define RS9_REG_SR                             0x2
@@ -205,8 +207,8 @@ static int rs9_get_common_config(struct rs9_driver_data *rs9)
        int ret;
 
        /* Set defaults */
-       rs9->pll_amplitude = RS9_REG_SS_AMP_0V7;
-       rs9->pll_ssc = RS9_REG_SS_SSC_100;
+       rs9->pll_amplitude = RS9_REG_SS_AMP_DEFAULT;
+       rs9->pll_ssc = RS9_REG_SS_SSC_DEFAULT;
 
        /* Output clock amplitude */
        ret = of_property_read_u32(np, "renesas,out-amplitude-microvolt",
@@ -247,13 +249,13 @@ static void rs9_update_config(struct rs9_driver_data *rs9)
        int i;
 
        /* If amplitude is non-default, update it. */
-       if (rs9->pll_amplitude != RS9_REG_SS_AMP_0V7) {
+       if (rs9->pll_amplitude != RS9_REG_SS_AMP_DEFAULT) {
                regmap_update_bits(rs9->regmap, RS9_REG_SS, RS9_REG_SS_AMP_MASK,
                                   rs9->pll_amplitude);
        }
 
        /* If SSC is non-default, update it. */
-       if (rs9->pll_ssc != RS9_REG_SS_SSC_100) {
+       if (rs9->pll_ssc != RS9_REG_SS_SSC_DEFAULT) {
                regmap_update_bits(rs9->regmap, RS9_REG_SS, RS9_REG_SS_SSC_MASK,
                                   rs9->pll_ssc);
        }