> @@ -320,9 +322,23 @@ static int ocores_i2c_of_probe(struct platform_device *pdev, > } > > if (of_property_read_u32(np, "clock-frequency", &val)) { > - dev_err(&pdev->dev, > - "Missing required parameter 'clock-frequency'\n"); > - return -ENODEV; > + struct clk *clk = devm_clk_get(&pdev->dev, NULL); > + > + if (!IS_ERR(clk)) { > + int ret = clk_prepare_enable(clk); > + > + if (ret) { > + dev_err(&pdev->dev, > + "clk_prepare_enable failed: %d\n", ret); > + return ret; > + } > + i2c->clk = clk; > + val = clk_get_rate(clk); > + } else { > + dev_err(&pdev->dev, > + "Missing required parameter 'clock-frequency'\n"); > + return -ENODEV; > + } Either NAK or I don't understand the logic here :) If a dts does NOT have the bus-speed set by 'clock-frequency', then we take the value of the clock assigned to this platform_device? The usual thing to do when 'clock-frequency' is not set is to default to 100kHz.
Attachment:
signature.asc
Description: Digital signature