mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-23 20:01:47 -05:00
net: can: cc770: Simplify parsing DT properties
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>
This commit is contained in:
committed by
Marc Kleine-Budde
parent
c259acab83
commit
dfb970cc5f
@@ -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) &
|
||||
|
||||
Reference in New Issue
Block a user