[PATCH v2] net: dm9000: Allow instantiation using device tree
Sylwester Nawrocki
sylvester.nawrocki at gmail.com
Sun May 19 09:27:53 EDT 2013
Hi,
On 05/19/2013 01:16 PM, Tomasz Figa wrote:
> +++ b/Documentation/devicetree/bindings/net/davicom-dm9000.txt
> @@ -0,0 +1,26 @@
> +Davicom DM9000 Fast Ethernet controller
> +
> +Required properties:
> +- compatible = "davicom,dm9000";
> +- reg : physical addresses and sizes of registers, must contain 2 entries:
> + first entry : address register,
> + second entry : address register.
Two address registers ? Shouldn't one of these be "data register" ?
> +Example:
> +
> + ethernet at 18000000 {
> + compatible = "davicom,dm9000";
> + reg =<0x18000000 0x2 0x18000004 0x2>;
> + interrupt-parent =<&gpn>;
> + interrupts =<7 4>;
> + local-mac-address = [00 00 de ad be ef];
> + davicom,no-eeprom;
> + };
> +static struct dm9000_plat_data *dm9000_parse_dt(struct device *dev)
> +{
> + struct dm9000_plat_data *pdata;
> + struct device_node *np = dev->of_node;
> + const void *mac_addr;
> +
> + if (!IS_ENABLED(CONFIG_OF) || !np)
> + return NULL;
Shouldn't ERR_PTR() value be returned here ?
> + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
> + if (!pdata) {
> + dev_err(dev, "failed to allocate platform data struct\n");
There is no need for this error log, k*alloc already logs any failures.
> @@ -1373,6 +1402,12 @@ dm9000_probe(struct platform_device *pdev)
> int i;
> u32 id_val;
>
> + if (!pdata) {
> + pdata = dm9000_parse_dt(&pdev->dev);
> + if (IS_ERR(pdata))
> + return PTR_ERR(pdata);
> + }
Thanks,
Sylwester
More information about the linux-arm-kernel
mailing list