[PATCH v3] net/smsc911x: add device tree probe support

Dave Martin dave.martin at linaro.org
Thu Sep 8 10:59:46 EDT 2011


Hi Shawn,

On Sun, Jul 31, 2011 at 02:26:00AM +0800, Shawn Guo wrote:
> It adds device tree probe support for smsc911x driver.
> 
> Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Cc: Steve Glendinning <steve.glendinning at smsc.com>
> Cc: David S. Miller <davem at davemloft.net>
> Reviewed-by: Grant Likely <grant.likely at secretlab.ca>
> ---
> Changes since v2:
>  * Fix a typo in smsc911x.txt
> 
> Changes since v1:
>  * Instead of getting irq line from gpio number, it use irq domain
>    to keep platform_get_resource(IORESOURCE_IRQ) works for dt too.
>  * Use 'lan9115' the first model that smsc911x supports in the match
>    table
>  * Use reg-shift and reg-io-width which already used in of_serial for
>    shift and access size binding

When using this patch with vexpress, I found that 16-bit register access
mode doesn't seem to be getting set correctly.

Can you take a look at this additional patch and let me know if it looks
correct?

Cheers
---Dave

From: Dave Martin <dave.martin at linaro.org>
Date: Wed, 7 Sep 2011 17:26:31 +0100
Subject: [PATCH] net/smsc911x: Correctly configure 16-bit register access from DT

The SMSC911X_USE_16BIT needs to be set when using 16-bit register
access.  However, currently no flag is set if the DT doesn't specify
32-bit access.

This patch should set the SMSC911X_USE_16BIT flag in a manner consistent
with the documented DT bindings.

Signed-off-by: Dave Martin <dave.martin at linaro.org>
---
 drivers/net/smsc911x.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index 75c08a5..1a35c25 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -2121,6 +2121,8 @@ static int __devinit smsc911x_probe_config_dt(
 	of_property_read_u32(np, "reg-io-width", &width);
 	if (width == 4)
 		config->flags |= SMSC911X_USE_32BIT;
+	else
+		config->flags |= SMSC911X_USE_16BIT;
 
 	if (of_get_property(np, "smsc,irq-active-high", NULL))
 		config->irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH;
-- 
1.7.4.1




More information about the linux-arm-kernel mailing list