/Linux-v5.10/Documentation/ABI/testing/ |
D | sysfs-bus-i3c | 1 What: /sys/bus/i3c/devices/i3c-<bus-id> 3 Contact: linux-i3c@vger.kernel.org 5 An I3C bus. This directory will contain one sub-directory per 6 I3C device present on the bus. 8 What: /sys/bus/i3c/devices/i3c-<bus-id>/current_master 10 Contact: linux-i3c@vger.kernel.org 17 What: /sys/bus/i3c/devices/i3c-<bus-id>/mode 19 Contact: linux-i3c@vger.kernel.org 21 I3C bus mode. Can be "pure", "mixed-fast" or "mixed-slow". See 22 the I3C specification for a detailed description of what each [all …]
|
/Linux-v5.10/include/linux/i3c/ |
D | master.h | 15 #include <linux/i3c/ccc.h> 16 #include <linux/i3c/device.h> 31 * struct i3c_i2c_dev_desc - Common part of the I3C/I2C device descriptor 32 * @node: node element used to insert the slot into the I2C or I3C device 34 * @master: I3C master that instantiated this device. Will be used to do 35 * I2C/I3C transfers 39 * This structure is describing common I3C/I2C dev information. 57 * @lvr: LVR (Legacy Virtual Register) needed by the I3C core to know about 61 * Each I2C device connected on the I3C bus should have one. 75 * @lvr: LVR (Legacy Virtual Register) needed by the I3C core to know about [all …]
|
D | device.h | 19 * enum i3c_error_code - I3C error codes 21 * These are the standard error codes as defined by the I3C specification. 27 * @I3C_ERROR_UNKNOWN: unknown error, usually means the error is not I3C 53 * struct i3c_priv_xfer - I3C SDR private transfer 59 * @err: I3C error code 72 * enum i3c_dcr - I3C DCR values 73 * @I3C_DCR_GENERIC_DEVICE: generic I3C device 97 * struct i3c_device_info - I3C device information 111 * These are all basic information that should be advertised by an I3C device. 114 * For each I3C slave attached to a master with [all …]
|
D | ccc.h | 12 #include <linux/i3c/device.h> 14 /* I3C CCC (Common Command Codes) related definitions */ 88 * The IBI length is only valid if the I3C slave is IBI capable 97 * struct i3c_ccc_dev_desc - I3C/I2C device descriptor used for DEFSLVS 99 * @dyn_addr: dynamic address assigned to the I3C slave or 0 if the entry is 102 * @lvr: LVR value (not applicable to entries describing I3C devices) 108 * descriptors (one entry per I3C/I2C dev controlled by the master). 154 * Information passed to the ENTTM CCC to instruct an I3C device to enter a 164 * @addr: dynamic address to assign to an I3C device 167 * dynamic address of an I3C device. [all …]
|
/Linux-v5.10/Documentation/devicetree/bindings/i3c/ |
D | i3c.txt | 1 Generic device tree bindings for I3C busses 4 This document describes generic bindings that should be used to describe I3C 12 - compatible - name of the I3C master controller driving the I3C bus 16 The node describing an I3C bus should be named i3c-master. 21 These properties may not be supported by all I3C master drivers. Each I3C 24 - i3c-scl-hz: frequency of the SCL signal used for I3C transfers. 48 + third cell: shall encode the I3C LVR (Legacy Virtual Register) 68 I3C devices 71 All I3C devices are supposed to support DAA (Dynamic Address Assignment), and 72 are thus discoverable. So, by default, I3C devices do not have to be described [all …]
|
D | cdns,i3c-master.txt | 1 Bindings for cadence I3C master block 6 - compatible: shall be "cdns,i3c-master" 9 - interrupts: the interrupt line connected to this I3C master 10 - reg: I3C master registers 13 Documentation/devicetree/bindings/i3c/i3c.txt for more details): 19 Documentation/devicetree/bindings/i3c/i3c.txt for more details): 22 - i3c-scl-hz 24 I3C device connected on the bus follow the generic description (see 25 Documentation/devicetree/bindings/i3c/i3c.txt for more details). 29 i3c-master@0d040000 { [all …]
|
D | snps,dw-i3c-master.txt | 1 Bindings for Synopsys DesignWare I3C master block 6 - compatible: shall be "snps,dw-i3c-master-1.00a" 8 - interrupts: the interrupt line connected to this I3C master 9 - reg: Offset and length of I3C master registers 12 Documentation/devicetree/bindings/i3c/i3c.txt for more details): 18 Documentation/devicetree/bindings/i3c/i3c.txt for more details): 21 - i3c-scl-hz 23 I3C device connected on the bus follow the generic description (see 24 Documentation/devicetree/bindings/i3c/i3c.txt for more details). 28 i3c-master@2000 { [all …]
|
/Linux-v5.10/Documentation/driver-api/i3c/ |
D | protocol.rst | 4 I3C protocol 12 collisions are prevented, ...) please have a look at the I3C specification. 14 This document is just a brief introduction to the I3C protocol and the concepts 16 I3C specification (can be downloaded here 17 https://resources.mipi.org/mipi-i3c-v1-download). 22 The I3C (pronounced 'eye-three-see') is a MIPI standardized protocol designed 27 I3C Bus 30 An I3C bus is made of several I3C devices and possibly some I2C devices as 31 well, but let's focus on I3C devices for now. 33 An I3C device on the I3C bus can have one of the following roles: [all …]
|
D | device-driver-api.rst | 4 I3C device driver API 7 .. kernel-doc:: include/linux/i3c/device.h 9 .. kernel-doc:: drivers/i3c/device.c
|
D | master-driver-api.rst | 4 I3C master controller driver API 7 .. kernel-doc:: drivers/i3c/master.c 9 .. kernel-doc:: include/linux/i3c/master.h
|
D | index.rst | 4 I3C subsystem
|
/Linux-v5.10/drivers/i3c/ |
D | Kconfig | 3 menuconfig I3C config 4 tristate "I3C support" 7 I3C is a serial protocol standardized by the MIPI alliance. 13 The I3C protocol also standardizes the slave device types and is 16 If you want I3C support, you should say Y here and also to the 19 This I3C support can also be built as a module. If so, the module 20 will be called i3c. 22 if I3C 23 source "drivers/i3c/master/Kconfig" 24 endif # I3C
|
D | master.c | 27 * @bus: I3C bus to take the lock on 38 * logic to rely on I3C device information that could be changed behind their 49 * @bus: I3C bus to release the lock on 62 * @bus: I3C bus to take the lock on 66 * maintenance operations). Basically all communications with I3C devices are 68 * state or I3C dynamic address). 71 * In other words, transfer requests passed to the I3C master can be submitted 72 * in parallel and I3C master drivers have to use their own locking to make 83 * @bus: I3C bus to release the lock on 247 struct i3c_device *i3c = dev_to_i3cdev(dev); in modalias_show() local [all …]
|
D | device.c | 18 * i3c_device_do_priv_xfers() - do I3C SDR private transfers directed to a 54 * i3c_device_get_info() - get I3C device information 59 * Retrieve I3C dev info. 181 * @i3cdev: I3C device 192 * dev_to_i3cdev() - Returns the I3C device containing @dev 195 * Return: a pointer to an I3C device object. 205 * @i3cdev: I3C device 206 * @id_table: I3C device match table 251 * i3c_driver_register_with_owner() - register an I3C device driver 270 * i3c_driver_unregister() - unregister an I3C device driver
|
D | Makefile | 2 i3c-y := device.o master.o 3 obj-$(CONFIG_I3C) += i3c.o
|
D | internals.h | 11 #include <linux/i3c/master.h>
|
/Linux-v5.10/drivers/base/regmap/ |
D | regmap-i3c.c | 5 #include <linux/i3c/device.h> 6 #include <linux/i3c/master.h> 12 struct i3c_device *i3c = dev_to_i3cdev(dev); in regmap_i3c_write() local 21 return i3c_device_do_priv_xfers(i3c, xfers, 1); in regmap_i3c_write() 29 struct i3c_device *i3c = dev_to_i3cdev(dev); in regmap_i3c_read() local 40 return i3c_device_do_priv_xfers(i3c, xfers, 2); in regmap_i3c_read() 48 struct regmap *__devm_regmap_init_i3c(struct i3c_device *i3c, in __devm_regmap_init_i3c() argument 53 return __devm_regmap_init(&i3c->dev, ®map_i3c, &i3c->dev, config, in __devm_regmap_init_i3c() 59 MODULE_DESCRIPTION("Regmap I3C Module");
|
D | Kconfig | 55 depends on I3C
|
D | Makefile | 19 obj-$(CONFIG_REGMAP_I3C) += regmap-i3c.o
|
/Linux-v5.10/drivers/i3c/master/ |
D | Kconfig | 3 tristate "Cadence I3C master driver" 4 depends on I3C 8 Enable this driver if you want to support Cadence I3C master block. 11 tristate "Synospsys DesignWare I3C master driver" 12 depends on I3C 17 Support for Synopsys DesignWare MIPI I3C Controller. 23 will be called dw-i3c-master.
|
D | Makefile | 2 obj-$(CONFIG_CDNS_I3C_MASTER) += i3c-master-cdns.o 3 obj-$(CONFIG_DW_I3C_MASTER) += dw-i3c-master.o
|
D | i3c-master-cdns.c | 12 #include <linux/i3c/master.h> 1100 /* Only update PRESCL_CTRL1 if the I3C SCL limitation has changed. */ in cdns_i3c_master_upd_i3c_scl_lim() 1106 pres_step = 1000000000UL / (bus->scl_rate.i3c * 4); in cdns_i3c_master_upd_i3c_scl_lim() 1108 /* Configure PP_LOW to meet I3C slave limitations. */ in cdns_i3c_master_upd_i3c_scl_lim() 1122 /* Disable I3C master before updating PRESCL_CTRL1. */ in cdns_i3c_master_upd_i3c_scl_lim() 1172 * Clear slots that ended up not being used. Can be caused by I3C in cdns_i3c_master_do_daa() 1173 * device creation failure or when the I3C device was already known in cdns_i3c_master_do_daa() 1236 pres = DIV_ROUND_UP(sysclk_rate, (bus->scl_rate.i3c * 4)) - 1; in cdns_i3c_master_bus_init() 1240 bus->scl_rate.i3c = sysclk_rate / ((pres + 1) * 4); in cdns_i3c_master_bus_init() 1259 pres_step = 1000000000 / (bus->scl_rate.i3c * 4); in cdns_i3c_master_bus_init() [all …]
|
/Linux-v5.10/drivers/iio/imu/st_lsm6dsx/ |
D | st_lsm6dsx_i3c.c | 10 #include <linux/i3c/device.h> 11 #include <linux/i3c/master.h> 23 MODULE_DEVICE_TABLE(i3c, st_lsm6dsx_i3c_ids); 37 dev_err(&i3cdev->dev, "Failed to register i3c regmap %d\n", in st_lsm6dsx_i3c_probe() 56 MODULE_DESCRIPTION("STMicroelectronics st_lsm6dsx i3c driver");
|
D | Kconfig | 5 depends on (I2C || SPI || I3C) 10 select IIO_ST_LSM6DSX_I3C if (I3C)
|
/Linux-v5.10/arch/powerpc/include/asm/ |
D | sfp-machine.h | 242 __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2" \ 245 __asm__ ("subf%I3c %1,%4,%3\n\tsubfme %0,%2" \ 248 __asm__ ("subf%I3c %1,%4,%3\n\taddme %0,%2" \ 251 __asm__ ("subf%I3c %1,%4,%3\n\taddze %0,%2" \
|