Lines Matching refs:lm8333
36 struct lm8333 { struct
45 int lm8333_read8(struct lm8333 *lm8333, u8 cmd) in lm8333_read8() argument
50 ret = i2c_smbus_read_byte_data(lm8333->client, cmd); in lm8333_read8()
56 int lm8333_write8(struct lm8333 *lm8333, u8 cmd, u8 val) in lm8333_write8() argument
61 ret = i2c_smbus_write_byte_data(lm8333->client, cmd, val); in lm8333_write8()
67 int lm8333_read_block(struct lm8333 *lm8333, u8 cmd, u8 len, u8 *buf) in lm8333_read_block() argument
72 ret = i2c_smbus_read_i2c_block_data(lm8333->client, in lm8333_read_block()
79 static void lm8333_key_handler(struct lm8333 *lm8333) in lm8333_key_handler() argument
81 struct input_dev *input = lm8333->input; in lm8333_key_handler()
86 ret = lm8333_read_block(lm8333, LM8333_FIFO_READ, in lm8333_key_handler()
89 dev_err(&lm8333->client->dev, in lm8333_key_handler()
99 input_report_key(input, lm8333->keycodes[code], pressed); in lm8333_key_handler()
107 struct lm8333 *lm8333 = data; in lm8333_irq_thread() local
108 u8 status = lm8333_read8(lm8333, LM8333_READ_INT); in lm8333_irq_thread()
114 u8 err = lm8333_read8(lm8333, LM8333_READ_ERROR); in lm8333_irq_thread()
119 lm8333_read_block(lm8333, LM8333_FIFO_READ, in lm8333_irq_thread()
122 dev_err(&lm8333->client->dev, "Got error %02x\n", err); in lm8333_irq_thread()
126 lm8333_key_handler(lm8333); in lm8333_irq_thread()
136 struct lm8333 *lm8333; in lm8333_probe() local
149 lm8333 = kzalloc(sizeof(*lm8333), GFP_KERNEL); in lm8333_probe()
151 if (!lm8333 || !input) { in lm8333_probe()
156 lm8333->client = client; in lm8333_probe()
157 lm8333->input = input; in lm8333_probe()
167 lm8333->keycodes, input); in lm8333_probe()
172 err = lm8333_write8(lm8333, LM8333_DEBOUNCE, in lm8333_probe()
179 err = lm8333_write8(lm8333, LM8333_ACTIVE, in lm8333_probe()
187 "lm8333", lm8333); in lm8333_probe()
195 i2c_set_clientdata(client, lm8333); in lm8333_probe()
199 free_irq(client->irq, lm8333); in lm8333_probe()
202 kfree(lm8333); in lm8333_probe()
208 struct lm8333 *lm8333 = i2c_get_clientdata(client); in lm8333_remove() local
210 free_irq(client->irq, lm8333); in lm8333_remove()
211 input_unregister_device(lm8333->input); in lm8333_remove()
212 kfree(lm8333); in lm8333_remove()