Merge branch 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "I2C has mostly driver updates this time. The few noteworthy changes are: the core has now support for analog and digital filters with at91 being the first user, a core addition to replace the NULL returning i2c_new_probed_device() with an ERR_PTR variant, and the pxa driver has finally being moved to use the generic I2C slave interface. We have quite a significant number of reviews per patch this time, so thank you to all involved!" * 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (37 commits) video: fbdev: matrox: convert to i2c_new_scanned_device i2c: icy: convert to i2c_new_scanned_device i2c: replace i2c_new_probed_device with an ERR_PTR variant i2c: Fix Kconfig indentation i2c: smbus: Don't filter out duplicate alerts i2c: i801: Correct Intel Jasper Lake SOC naming i2c: i2c-stm32f7: fix 10-bits check in slave free id search loop i2c: iproc: Add i2c repeated start capability i2c: remove helpers for ref-counting clients i2c: tegra: Use dma_request_chan() directly for channel request i2c: sh_mobile: Use dma_request_chan() directly for channel request i2c: qup: Use dma_request_chan() directly for channel request i2c: at91: Use dma_request_chan() directly for channel request i2c: rcar: Remove superfluous call to clk_get_rate() i2c: pxa: remove unused i2c-slave APIs i2c: pxa: migrate to new i2c_slave APIs i2c: cros-ec-tunnel: Make the device acpi compatible i2c: stm32f7: report dma error during probe i2c: icy: no need to populate address for scanned device i2c: xiic: Fix kerneldoc warnings ...
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _LINUX_I2C_ALGO_PXA_H
|
||||
#define _LINUX_I2C_ALGO_PXA_H
|
||||
|
||||
typedef enum i2c_slave_event_e {
|
||||
I2C_SLAVE_EVENT_START_READ,
|
||||
I2C_SLAVE_EVENT_START_WRITE,
|
||||
I2C_SLAVE_EVENT_STOP
|
||||
} i2c_slave_event_t;
|
||||
|
||||
struct i2c_slave_client {
|
||||
void *data;
|
||||
void (*event)(void *ptr, i2c_slave_event_t event);
|
||||
int (*read) (void *ptr);
|
||||
void (*write)(void *ptr, unsigned int val);
|
||||
};
|
||||
|
||||
#endif /* _LINUX_I2C_ALGO_PXA_H */
|
@@ -452,10 +452,16 @@ i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *inf
|
||||
* a default probing method is used.
|
||||
*/
|
||||
extern struct i2c_client *
|
||||
i2c_new_scanned_device(struct i2c_adapter *adap,
|
||||
struct i2c_board_info *info,
|
||||
unsigned short const *addr_list,
|
||||
int (*probe)(struct i2c_adapter *adap, unsigned short addr));
|
||||
|
||||
extern struct i2c_client *
|
||||
i2c_new_probed_device(struct i2c_adapter *adap,
|
||||
struct i2c_board_info *info,
|
||||
unsigned short const *addr_list,
|
||||
int (*probe)(struct i2c_adapter *adap, unsigned short addr));
|
||||
struct i2c_board_info *info,
|
||||
unsigned short const *addr_list,
|
||||
int (*probe)(struct i2c_adapter *adap, unsigned short addr));
|
||||
|
||||
/* Common custom probe functions */
|
||||
extern int i2c_probe_func_quick_read(struct i2c_adapter *adap, unsigned short addr);
|
||||
@@ -575,6 +581,10 @@ struct i2c_lock_operations {
|
||||
* @scl_int_delay_ns: time IP core additionally needs to setup SCL in ns
|
||||
* @sda_fall_ns: time SDA signal takes to fall in ns; t(f) in the I2C specification
|
||||
* @sda_hold_ns: time IP core additionally needs to hold SDA in ns
|
||||
* @digital_filter_width_ns: width in ns of spikes on i2c lines that the IP core
|
||||
* digital filter can filter out
|
||||
* @analog_filter_cutoff_freq_hz: threshold frequency for the low pass IP core
|
||||
* analog filter
|
||||
*/
|
||||
struct i2c_timings {
|
||||
u32 bus_freq_hz;
|
||||
@@ -583,6 +593,8 @@ struct i2c_timings {
|
||||
u32 scl_int_delay_ns;
|
||||
u32 sda_fall_ns;
|
||||
u32 sda_hold_ns;
|
||||
u32 digital_filter_width_ns;
|
||||
u32 analog_filter_cutoff_freq_hz;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -844,9 +856,6 @@ extern void i2c_del_driver(struct i2c_driver *driver);
|
||||
#define i2c_add_driver(driver) \
|
||||
i2c_register_driver(THIS_MODULE, driver)
|
||||
|
||||
extern struct i2c_client *i2c_use_client(struct i2c_client *client);
|
||||
extern void i2c_release_client(struct i2c_client *client);
|
||||
|
||||
/* call the i2c_client->command() of all attached clients with
|
||||
* the given arguments */
|
||||
extern void i2c_clients_command(struct i2c_adapter *adap,
|
||||
|
@@ -55,11 +55,7 @@
|
||||
*/
|
||||
#define I2C_ISR_INIT 0x7FF /* status register init */
|
||||
|
||||
struct i2c_slave_client;
|
||||
|
||||
struct i2c_pxa_platform_data {
|
||||
unsigned int slave_addr;
|
||||
struct i2c_slave_client *slave;
|
||||
unsigned int class;
|
||||
unsigned int use_pio :1;
|
||||
unsigned int fast_mode :1;
|
||||
|
Reference in New Issue
Block a user