]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
net: can: cc770: Simplify parsing DT properties
authorRob Herring (Arm) <robh@kernel.org>
Tue, 3 Sep 2024 13:57:30 +0000 (08:57 -0500)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 9 Sep 2024 06:16:36 +0000 (08:16 +0200)
Use of the typed property accessors is preferred over of_get_property().
The existing code doesn't work on little endian systems either. Replace
the of_get_property() calls with of_property_read_bool() and
of_property_read_u32().

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240903135731.405635-1-robh@kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/cc770/cc770_platform.c

index 13bcfba05f18ff57f733e1b6c8c99d99a2218ac4..f2424fe58612e9729847aac324d9584370ab0c8a 100644 (file)
@@ -70,17 +70,10 @@ static void cc770_platform_write_reg(const struct cc770_priv *priv, int reg,
 static int cc770_get_of_node_data(struct platform_device *pdev,
                                  struct cc770_priv *priv)
 {
+       u32 clkext = CC770_PLATFORM_CAN_CLOCK, clkout = 0;
        struct device_node *np = pdev->dev.of_node;
-       const u32 *prop;
-       int prop_size;
-       u32 clkext;
-
-       prop = of_get_property(np, "bosch,external-clock-frequency",
-                              &prop_size);
-       if (prop && (prop_size ==  sizeof(u32)))
-               clkext = *prop;
-       else
-               clkext = CC770_PLATFORM_CAN_CLOCK; /* default */
+
+       of_property_read_u32(np, "bosch,external-clock-frequency", &clkext);
        priv->can.clock.freq = clkext;
 
        /* The system clock may not exceed 10 MHz */
@@ -98,7 +91,7 @@ static int cc770_get_of_node_data(struct platform_device *pdev,
        if (of_property_read_bool(np, "bosch,iso-low-speed-mux"))
                priv->cpu_interface |= CPUIF_MUX;
 
-       if (!of_get_property(np, "bosch,no-comperator-bypass", NULL))
+       if (!of_property_read_bool(np, "bosch,no-comperator-bypass"))
                priv->bus_config |= BUSCFG_CBY;
        if (of_property_read_bool(np, "bosch,disconnect-rx0-input"))
                priv->bus_config |= BUSCFG_DR0;
@@ -109,25 +102,22 @@ static int cc770_get_of_node_data(struct platform_device *pdev,
        if (of_property_read_bool(np, "bosch,polarity-dominant"))
                priv->bus_config |= BUSCFG_POL;
 
-       prop = of_get_property(np, "bosch,clock-out-frequency", &prop_size);
-       if (prop && (prop_size == sizeof(u32)) && *prop > 0) {
-               u32 cdv = clkext / *prop;
-               int slew;
+       of_property_read_u32(np, "bosch,clock-out-frequency", &clkout);
+       if (clkout > 0) {
+               u32 cdv = clkext / clkout;
 
                if (cdv > 0 && cdv < 16) {
+                       u32 slew;
+
                        priv->cpu_interface |= CPUIF_CEN;
                        priv->clkout |= (cdv - 1) & CLKOUT_CD_MASK;
 
-                       prop = of_get_property(np, "bosch,slew-rate",
-                                              &prop_size);
-                       if (prop && (prop_size == sizeof(u32))) {
-                               slew = *prop;
-                       } else {
+                       if (of_property_read_u32(np, "bosch,slew-rate", &slew)) {
                                /* Determine default slew rate */
                                slew = (CLKOUT_SL_MASK >>
                                        CLKOUT_SL_SHIFT) -
                                        ((cdv * clkext - 1) / 8000000);
-                               if (slew < 0)
+                               if (slew > (CLKOUT_SL_MASK >> CLKOUT_SL_SHIFT))
                                        slew = 0;
                        }
                        priv->clkout |= (slew << CLKOUT_SL_SHIFT) &