Lines Matching refs:client
61 struct i2c_client *client; member
64 static int max7359_write_reg(struct i2c_client *client, u8 reg, u8 val) in max7359_write_reg() argument
66 int ret = i2c_smbus_write_byte_data(client, reg, val); in max7359_write_reg()
69 dev_err(&client->dev, "%s: reg 0x%x, val 0x%x, err %d\n", in max7359_write_reg()
74 static int max7359_read_reg(struct i2c_client *client, int reg) in max7359_read_reg() argument
76 int ret = i2c_smbus_read_byte_data(client, reg); in max7359_read_reg()
79 dev_err(&client->dev, "%s: reg 0x%x, err %d\n", in max7359_read_reg()
91 val = max7359_read_reg(keypad->client, MAX7359_REG_KEYFIFO); in max7359_interrupt()
98 dev_dbg(&keypad->client->dev, in max7359_interrupt()
113 static inline void max7359_fall_deepsleep(struct i2c_client *client) in max7359_fall_deepsleep() argument
115 max7359_write_reg(client, MAX7359_REG_SLEEP, MAX7359_AUTOSLEEP_8192); in max7359_fall_deepsleep()
122 static inline void max7359_take_catnap(struct i2c_client *client) in max7359_take_catnap() argument
124 max7359_write_reg(client, MAX7359_REG_SLEEP, MAX7359_AUTOSLEEP_256); in max7359_take_catnap()
131 max7359_take_catnap(keypad->client); in max7359_open()
140 max7359_fall_deepsleep(keypad->client); in max7359_close()
143 static void max7359_initialize(struct i2c_client *client) in max7359_initialize() argument
145 max7359_write_reg(client, MAX7359_REG_CONFIG, in max7359_initialize()
150 max7359_write_reg(client, MAX7359_REG_DEBOUNCE, 0x1F); in max7359_initialize()
153 max7359_write_reg(client, MAX7359_REG_INTERRUPT, 0x01); in max7359_initialize()
155 max7359_fall_deepsleep(client); in max7359_initialize()
158 static int max7359_probe(struct i2c_client *client) in max7359_probe() argument
161 dev_get_platdata(&client->dev); in max7359_probe()
167 if (!client->irq) { in max7359_probe()
168 dev_err(&client->dev, "The irq number should not be zero\n"); in max7359_probe()
173 ret = max7359_read_reg(client, MAX7359_REG_KEYFIFO); in max7359_probe()
175 dev_err(&client->dev, "failed to detect device\n"); in max7359_probe()
179 dev_dbg(&client->dev, "keys FIFO is 0x%02x\n", ret); in max7359_probe()
181 keypad = devm_kzalloc(&client->dev, sizeof(struct max7359_keypad), in max7359_probe()
184 dev_err(&client->dev, "failed to allocate memory\n"); in max7359_probe()
188 input_dev = devm_input_allocate_device(&client->dev); in max7359_probe()
190 dev_err(&client->dev, "failed to allocate input device\n"); in max7359_probe()
194 keypad->client = client; in max7359_probe()
197 input_dev->name = client->name; in max7359_probe()
201 input_dev->dev.parent = &client->dev; in max7359_probe()
217 dev_err(&client->dev, "failed to build keymap\n"); in max7359_probe()
221 error = devm_request_threaded_irq(&client->dev, client->irq, NULL, in max7359_probe()
224 client->name, keypad); in max7359_probe()
226 dev_err(&client->dev, "failed to register interrupt\n"); in max7359_probe()
233 dev_err(&client->dev, "failed to register input device\n"); in max7359_probe()
238 max7359_initialize(client); in max7359_probe()
240 device_init_wakeup(&client->dev, 1); in max7359_probe()
247 struct i2c_client *client = to_i2c_client(dev); in max7359_suspend() local
249 max7359_fall_deepsleep(client); in max7359_suspend()
251 if (device_may_wakeup(&client->dev)) in max7359_suspend()
252 enable_irq_wake(client->irq); in max7359_suspend()
259 struct i2c_client *client = to_i2c_client(dev); in max7359_resume() local
261 if (device_may_wakeup(&client->dev)) in max7359_resume()
262 disable_irq_wake(client->irq); in max7359_resume()
265 max7359_take_catnap(client); in max7359_resume()