Thread (3 messages) flat view 3 messages, 2 authors, 2011-10-18

Re: [PATCHv2 1/7] input/cma3000_d0x: Support devices without pdata

From: Jonathan Cameron <hidden>
Date: 2011-10-18 13:46:00
Also in: lkml

On 10/18/11 13:58, Ricardo Ribalda Delgado wrote:
Hello Jonathan

I think I am going to do it like ads1015.c. I will check for the
pdata, then for the dt info (if it is there) and finally go for the
default, if all fails. What do you think? Shall I fix it in cma3000
and cmr3000?
That sounds like the best plan to me.  Fix them both.
 Thanks again

On Tue, Oct 18, 2011 at 14:53, Jonathan Cameron [off-list ref] wrote:
quoted
On 10/18/11 13:06, Ricardo Ribalda Delgado wrote:
quoted
Architectures based on device-tree does not have platform data
associated to the spi/i2c devices.
This patch allows those architectures to use the cma3000 driver with
a default configuration.
Fine except for this description. Looks to be a perfectly reasonable
way of specifying these in DT.  So fix that and I'm happy.
Whoever wants to pass this in from DT can do a patch for it!
quoted
---

v2: Fixes suggested by Jonathan Cameron
    -Spelling
    -Simplify pdata!=NULL check

Signed-off-by: Ricardo Ribalda Delgado <redacted>
Acked-by: Jonathan Cameron <redacted>
quoted
---
 drivers/input/misc/cma3000_d0x.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/drivers/input/misc/cma3000_d0x.c b/drivers/input/misc/cma3000_d0x.c
index 1633b63..f2e87e3 100644
--- a/drivers/input/misc/cma3000_d0x.c
+++ b/drivers/input/misc/cma3000_d0x.c
@@ -62,6 +62,18 @@
 #define BIT_TO_2G  18
 #define BIT_TO_8G  71

+static struct cma3000_platform_data cma3000_default_pdata = {
+     .mdthr = 0x8,
+     .mdfftmr = 0x33,
+     .ffthr = 0x8,
+     .mode = CMAMODE_MEAS400,
+     .g_range = CMARANGE_2G,
+     .fuzz_x = BIT_TO_2G,
+     .fuzz_y = BIT_TO_2G,
+     .fuzz_z = BIT_TO_2G,
+     .irqflags = 0,
+};
+
 struct cma3000_accl_data {
      const struct cma3000_bus_ops *bus_ops;
      const struct cma3000_platform_data *pdata;
@@ -289,13 +301,11 @@ struct cma3000_accl_data *cma3000_init(struct device *dev, int irq,
      int rev;
      int error;

-     if (!pdata) {
-             dev_err(dev, "platform data not found\n");
-             error = -EINVAL;
-             goto err_out;
+     if (pdata == NULL) {
+             dev_info(dev, "platform data not found, using default\n");
+             pdata = &cma3000_default_pdata;
      }

-
      /* if no IRQ return error */
      if (irq == 0) {
              error = -EINVAL;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help