Lines Matching refs:client
64 struct i2c_client *client; member
67 static int max7359_write_reg(struct i2c_client *client, u8 reg, u8 val) in max7359_write_reg() argument
69 int ret = i2c_smbus_write_byte_data(client, reg, val); in max7359_write_reg()
72 dev_err(&client->dev, "%s: reg 0x%x, val 0x%x, err %d\n", in max7359_write_reg()
77 static int max7359_read_reg(struct i2c_client *client, int reg) in max7359_read_reg() argument
79 int ret = i2c_smbus_read_byte_data(client, reg); in max7359_read_reg()
82 dev_err(&client->dev, "%s: reg 0x%x, err %d\n", in max7359_read_reg()
114 val = max7359_read_reg(keypad->client, MAX7359_REG_KEYFIFO); in max7359_interrupt()
121 dev_dbg(&keypad->client->dev, in max7359_interrupt()
136 static inline void max7359_fall_deepsleep(struct i2c_client *client) in max7359_fall_deepsleep() argument
138 max7359_write_reg(client, MAX7359_REG_SLEEP, MAX7359_AUTOSLEEP_8192); in max7359_fall_deepsleep()
145 static inline void max7359_take_catnap(struct i2c_client *client) in max7359_take_catnap() argument
147 max7359_write_reg(client, MAX7359_REG_SLEEP, MAX7359_AUTOSLEEP_256); in max7359_take_catnap()
154 max7359_take_catnap(keypad->client); in max7359_open()
163 max7359_fall_deepsleep(keypad->client); in max7359_close()
166 static void max7359_initialize(struct i2c_client *client) in max7359_initialize() argument
168 max7359_write_reg(client, MAX7359_REG_CONFIG, in max7359_initialize()
174 max7359_write_reg(client, MAX7359_REG_DEBOUNCE, 0x1F); in max7359_initialize()
177 max7359_write_reg(client, MAX7359_REG_INTERRUPT, 0x01); in max7359_initialize()
179 max7359_fall_deepsleep(client); in max7359_initialize()
182 static int max7359_probe(struct i2c_client *client, in max7359_probe() argument
186 dev_get_platdata(&client->dev); in max7359_probe()
192 if (!client->irq) { in max7359_probe()
193 dev_err(&client->dev, "The irq number should not be zero\n"); in max7359_probe()
198 ret = max7359_read_reg(client, MAX7359_REG_KEYFIFO); in max7359_probe()
200 dev_err(&client->dev, "failed to detect device\n"); in max7359_probe()
204 dev_dbg(&client->dev, "keys FIFO is 0x%02x\n", ret); in max7359_probe()
206 keypad = devm_kzalloc(&client->dev, sizeof(struct max7359_keypad), in max7359_probe()
209 dev_err(&client->dev, "failed to allocate memory\n"); in max7359_probe()
213 input_dev = devm_input_allocate_device(&client->dev); in max7359_probe()
215 dev_err(&client->dev, "failed to allocate input device\n"); in max7359_probe()
219 keypad->client = client; in max7359_probe()
222 input_dev->name = client->name; in max7359_probe()
226 input_dev->dev.parent = &client->dev; in max7359_probe()
238 error = devm_request_threaded_irq(&client->dev, client->irq, NULL, in max7359_probe()
241 client->name, keypad); in max7359_probe()
243 dev_err(&client->dev, "failed to register interrupt\n"); in max7359_probe()
250 dev_err(&client->dev, "failed to register input device\n"); in max7359_probe()
255 max7359_initialize(client); in max7359_probe()
257 i2c_set_clientdata(client, keypad); in max7359_probe()
258 device_init_wakeup(&client->dev, 1); in max7359_probe()
266 struct i2c_client *client = to_i2c_client(dev); in max7359_suspend() local
268 max7359_fall_deepsleep(client); in max7359_suspend()
270 if (device_may_wakeup(&client->dev)) in max7359_suspend()
271 enable_irq_wake(client->irq); in max7359_suspend()
278 struct i2c_client *client = to_i2c_client(dev); in max7359_resume() local
280 if (device_may_wakeup(&client->dev)) in max7359_resume()
281 disable_irq_wake(client->irq); in max7359_resume()
284 max7359_take_catnap(client); in max7359_resume()