Home
last modified time | relevance | path

Searched full:i3c (Results 1 – 25 of 96) sorted by relevance

1234

/kernel/linux/linux-5.10/Documentation/ABI/testing/
Dsysfs-bus-i3c1 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 …]
/kernel/linux/linux-6.6/Documentation/ABI/testing/
Dsysfs-bus-i3c1 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 …]
/kernel/linux/linux-5.10/include/linux/i3c/
Dmaster.h15 #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 …]
Ddevice.h19 * 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 …]
/kernel/linux/linux-6.6/include/linux/i3c/
Dmaster.h15 #include <linux/i3c/ccc.h>
16 #include <linux/i3c/device.h>
32 * struct i3c_i2c_dev_desc - Common part of the I3C/I2C device descriptor
33 * @node: node element used to insert the slot into the I2C or I3C device
35 * @master: I3C master that instantiated this device. Will be used to do
36 * I2C/I3C transfers
40 * This structure is describing common I3C/I2C dev information.
58 * @lvr: LVR (Legacy Virtual Register) needed by the I3C core to know about
62 * Each I2C device connected on the I3C bus should have one.
76 * @lvr: LVR (Legacy Virtual Register) needed by the I3C core to know about
[all …]
Ddevice.h19 * enum i3c_error_code - I3C error codes
21 * @I3C_ERROR_UNKNOWN: unknown error, usually means the error is not I3C
27 * These are the standard error codes as defined by the I3C specification.
54 * struct i3c_priv_xfer - I3C SDR private transfer
61 * @err: I3C error code
75 * enum i3c_dcr - I3C DCR values
76 * @I3C_DCR_GENERIC_DEVICE: generic I3C device
100 * struct i3c_device_info - I3C device information
114 * These are all basic information that should be advertised by an I3C device.
117 * For each I3C slave attached to a master with
[all …]
/kernel/linux/linux-6.6/drivers/i3c/master/
DKconfig3 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.
26 tristate "ASPEED AST2600 I3C master driver"
31 Support for ASPEED AST2600 I3C Controller.
33 This hardware is an instance of the DW I3C controller; this
[all …]
Dast2600-i3c-master.c14 #include "dw-i3c-master.h"
79 struct ast2600_i3c *i3c = to_ast2600_i3c(dw); in ast2600_i3c_init() local
84 rc = ast2600_i3c_pullup_to_reg(i3c->sda_pullup, &reg); in ast2600_i3c_init()
88 rc = regmap_write(i3c->global_regs, in ast2600_i3c_init()
89 AST2600_I3CG_REG0(i3c->global_idx), reg); in ast2600_i3c_init()
96 reg = AST2600_I3CG_REG1_INST_ID(i3c->global_idx); in ast2600_i3c_init()
97 rc = regmap_write(i3c->global_regs, in ast2600_i3c_init()
98 AST2600_I3CG_REG1(i3c->global_idx), reg); in ast2600_i3c_init()
103 static void ast2600_i3c_set_dat_ibi(struct dw_i3c_master *i3c, in ast2600_i3c_set_dat_ibi() argument
108 * The ast2600 i3c controller will lock up on receiving 4n+1-byte IBIs in ast2600_i3c_set_dat_ibi()
[all …]
DMakefile2 obj-$(CONFIG_CDNS_I3C_MASTER) += i3c-master-cdns.o
3 obj-$(CONFIG_DW_I3C_MASTER) += dw-i3c-master.o
4 obj-$(CONFIG_AST2600_I3C_MASTER) += ast2600-i3c-master.o
5 obj-$(CONFIG_SVC_I3C_MASTER) += svc-i3c-master.o
6 obj-$(CONFIG_MIPI_I3C_HCI) += mipi-i3c-hci/
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/i3c/
Di3c.txt1 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 …]
Dcdns,i3c-master.txt1 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 …]
Dsnps,dw-i3c-master.txt1 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 …]
/kernel/linux/linux-5.10/Documentation/driver-api/i3c/
Dprotocol.rst4 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 …]
/kernel/linux/linux-6.6/Documentation/driver-api/i3c/
Dprotocol.rst4 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 …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/i3c/
Di3c.yaml4 $id: http://devicetree.org/schemas/i3c/i3c.yaml#
7 title: I3C bus
14 I3C busses can be described with a node for the primary I3C controller device
15 and a set of child nodes for each I2C or I3C slave on the bus. Each of them
20 pattern: "^i3c-master@[0-9a-f]+$"
27 All I3C devices are supposed to support DAA (Dynamic Address Assignment),
28 and are thus discoverable. So, by default, I3C devices do not have to be
32 I3C devices.
34 Another use case for describing an I3C device in the device tree is when
35 this I3C device has a static I2C address and we want to assign it a
[all …]
Dmipi-i3c-hci.yaml4 $id: http://devicetree.org/schemas/i3c/mipi-i3c-hci.yaml#
7 title: MIPI I3C HCI
13 - $ref: /schemas/i3c/i3c.yaml#
16 MIPI I3C Host Controller Interface
18 The MIPI I3C HCI (Host Controller Interface) specification defines
19 a common software driver interface to support compliant MIPI I3C
27 https://www.mipi.org/specifications/i3c-hci
31 const: mipi-i3c-hci
46 i3c-master@a0000000 {
47 compatible = "mipi-i3c-hci";
Daspeed,ast2600-i3c.yaml4 $id: http://devicetree.org/schemas/i3c/aspeed,ast2600-i3c.yaml#
7 title: ASPEED AST2600 i3c controller
13 - $ref: i3c.yaml#
17 const: aspeed,ast2600-i3c
41 - description: phandle to i3c global register syscon node
42 - description: index of this i3c controller in the global register set
44 A (phandle, controller index) reference to the i3c global register set
60 i3c-master@2000 {
61 compatible = "aspeed,ast2600-i3c";
Dsnps,dw-i3c-master.yaml4 $id: http://devicetree.org/schemas/i3c/snps,dw-i3c-master.yaml#
7 title: Synopsys DesignWare I3C master block
13 - $ref: i3c.yaml#
17 const: snps,dw-i3c-master-1.00a
38 i3c-master@2000 {
39 compatible = "snps,dw-i3c-master-1.00a";
Dcdns,i3c-master.yaml4 $id: http://devicetree.org/schemas/i3c/cdns,i3c-master.yaml#
7 title: Cadence I3C master block
13 - $ref: i3c.yaml#
17 const: cdns,i3c-master
44 i3c-master@d040000 {
45 compatible = "cdns,i3c-master";
Dsilvaco,i3c-master.yaml4 $id: http://devicetree.org/schemas/i3c/silvaco,i3c-master.yaml#
7 title: Silvaco I3C master
13 - $ref: i3c.yaml#
17 const: silvaco,i3c-master-v1
51 i3c-master@a0000000 {
52 compatible = "silvaco,i3c-master-v1";
/kernel/linux/linux-5.10/drivers/i3c/
DKconfig3 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
/kernel/linux/linux-6.6/drivers/i3c/
DKconfig3 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
/kernel/linux/linux-5.10/drivers/base/regmap/
Dregmap-i3c.c5 #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, &regmap_i3c, &i3c->dev, config, in __devm_regmap_init_i3c()
59 MODULE_DESCRIPTION("Regmap I3C Module");
/kernel/linux/linux-6.6/drivers/base/regmap/
Dregmap-i3c.c5 #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, &regmap_i3c, &i3c->dev, config, in __devm_regmap_init_i3c()
59 MODULE_DESCRIPTION("Regmap I3C Module");
/kernel/linux/linux-5.10/drivers/i3c/master/
DKconfig3 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.

1234