diff options
| author | Florian Vaussard <florian.vaussard@epfl.ch> | 2014-01-31 08:34:37 -0500 |
|---|---|---|
| committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2014-02-06 05:50:57 -0500 |
| commit | b18ec27c6502b79e22d5b51ae66e81d683ae686c (patch) | |
| tree | d48d01f2ec73bfdf426decaf35230a1e52183c97 | |
| parent | 73c90d943e34f5db2998c1bbb3327581fb87be1f (diff) | |
can: sja1000: of: add reg-io-width property for 8, 16 and 32-bit register access
Add the 'reg-io-width' property for 8, 16 and 32-bit access, like
what is currently done with IORESOURCE_MEM_{8,16,32}BIT for non-OF
boot.
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
| -rw-r--r-- | drivers/net/can/sja1000/sja1000_platform.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/net/can/sja1000/sja1000_platform.c b/drivers/net/can/sja1000/sja1000_platform.c index b7fbe4f57720..95a844a7ee7b 100644 --- a/drivers/net/can/sja1000/sja1000_platform.c +++ b/drivers/net/can/sja1000/sja1000_platform.c | |||
| @@ -101,8 +101,24 @@ static void sp_populate_of(struct sja1000_priv *priv, struct device_node *of) | |||
| 101 | int err; | 101 | int err; |
| 102 | u32 prop; | 102 | u32 prop; |
| 103 | 103 | ||
| 104 | priv->read_reg = sp_read_reg8; | 104 | err = of_property_read_u32(of, "reg-io-width", &prop); |
| 105 | priv->write_reg = sp_write_reg8; | 105 | if (err) |
| 106 | prop = 1; /* 8 bit is default */ | ||
| 107 | |||
| 108 | switch (prop) { | ||
| 109 | case 4: | ||
| 110 | priv->read_reg = sp_read_reg32; | ||
| 111 | priv->write_reg = sp_write_reg32; | ||
| 112 | break; | ||
| 113 | case 2: | ||
| 114 | priv->read_reg = sp_read_reg16; | ||
| 115 | priv->write_reg = sp_write_reg16; | ||
| 116 | break; | ||
| 117 | case 1: /* fallthrough */ | ||
| 118 | default: | ||
| 119 | priv->read_reg = sp_read_reg8; | ||
| 120 | priv->write_reg = sp_write_reg8; | ||
| 121 | } | ||
| 106 | 122 | ||
| 107 | err = of_property_read_u32(of, "nxp,external-clock-frequency", &prop); | 123 | err = of_property_read_u32(of, "nxp,external-clock-frequency", &prop); |
| 108 | if (!err) | 124 | if (!err) |
