~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt (Architecture m68k) and /Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt (Architecture alpha)


  1 Register-based I2C Bus Mux                          1 Register-based I2C Bus Mux
  2                                                     2 
  3 This binding describes an I2C bus multiplexer       3 This binding describes an I2C bus multiplexer that uses a single register
  4 to route the I2C signals.                           4 to route the I2C signals.
  5                                                     5 
  6 Required properties:                                6 Required properties:
  7 - compatible: i2c-mux-reg                           7 - compatible: i2c-mux-reg
  8 - i2c-parent: The phandle of the I2C bus that       8 - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side
  9   port is connected to.                             9   port is connected to.
 10 * Standard I2C mux properties. See i2c-mux.yam     10 * Standard I2C mux properties. See i2c-mux.yaml in this directory.
 11 * I2C child bus nodes. See i2c-mux.yaml in thi     11 * I2C child bus nodes. See i2c-mux.yaml in this directory.
 12                                                    12 
 13 Optional properties:                               13 Optional properties:
 14 - reg: this pair of <offset size> specifies th     14 - reg: this pair of <offset size> specifies the register to control the mux.
 15   The <offset size> depends on its parent node     15   The <offset size> depends on its parent node. It can be any memory-mapped
 16   address. The size must be either 1, 2, or 4      16   address. The size must be either 1, 2, or 4 bytes. If reg is omitted, the
 17   resource of this device will be used.            17   resource of this device will be used.
 18 - little-endian: The existence indicates the r     18 - little-endian: The existence indicates the register is in little endian.
 19 - big-endian: The existence indicates the regi     19 - big-endian: The existence indicates the register is in big endian.
 20   If both little-endian and big-endian are omi     20   If both little-endian and big-endian are omitted, the endianness of the
 21   CPU will be used.                                21   CPU will be used.
 22 - write-only: The existence indicates the regi     22 - write-only: The existence indicates the register is write-only.
 23 - idle-state: value to set the muxer to when i     23 - idle-state: value to set the muxer to when idle. When no value is
 24   given, it defaults to the last value used.       24   given, it defaults to the last value used.
 25                                                    25 
 26 Whenever an access is made to a device on a ch     26 Whenever an access is made to a device on a child bus, the value set
 27 in the relevant node's reg property will be ou     27 in the relevant node's reg property will be output to the register.
 28                                                    28 
 29 If an idle state is defined, using the idle-st     29 If an idle state is defined, using the idle-state (optional) property,
 30 whenever an access is not being made to a devi     30 whenever an access is not being made to a device on a child bus, the
 31 register will be set according to the idle val     31 register will be set according to the idle value.
 32                                                    32 
 33 If an idle state is not defined, the most rece     33 If an idle state is not defined, the most recently used value will be
 34 left programmed into the register.                 34 left programmed into the register.
 35                                                    35 
 36 Example of a mux on PCIe card, the host is a p     36 Example of a mux on PCIe card, the host is a powerpc SoC (big endian):
 37                                                    37 
 38         i2c-mux {                                  38         i2c-mux {
 39                 /* the <offset size> depends o     39                 /* the <offset size> depends on the address translation
 40                  * of the parent device. If om     40                  * of the parent device. If omitted, device resource
 41                  * will be used instead. The s     41                  * will be used instead. The size is to determine
 42                  * whether iowrite32, iowrite1     42                  * whether iowrite32, iowrite16, or iowrite8 will be used.
 43                  */                                43                  */
 44                 reg = <0x6028 0x4>;                44                 reg = <0x6028 0x4>;
 45                 little-endian;          /* lit     45                 little-endian;          /* little endian register on PCIe */
 46                 compatible = "i2c-mux-reg";        46                 compatible = "i2c-mux-reg";
 47                 #address-cells = <1>;              47                 #address-cells = <1>;
 48                 #size-cells = <0>;                 48                 #size-cells = <0>;
 49                 i2c-parent = <&i2c1>;              49                 i2c-parent = <&i2c1>;
 50                 i2c@0 {                            50                 i2c@0 {
 51                         reg = <0>;                 51                         reg = <0>;
 52                         #address-cells = <1>;      52                         #address-cells = <1>;
 53                         #size-cells = <0>;         53                         #size-cells = <0>;
 54                                                    54 
 55                         si5338: clock-generato     55                         si5338: clock-generator@70 {
 56                                 compatible = "     56                                 compatible = "silabs,si5338";
 57                                 reg = <0x70>;      57                                 reg = <0x70>;
 58                                 /* other stuff     58                                 /* other stuff */
 59                         };                         59                         };
 60                 };                                 60                 };
 61                                                    61 
 62                 i2c@1 {                            62                 i2c@1 {
 63                         /* data is written usi     63                         /* data is written using iowrite32 */
 64                         reg = <1>;                 64                         reg = <1>;
 65                         #address-cells = <1>;      65                         #address-cells = <1>;
 66                         #size-cells = <0>;         66                         #size-cells = <0>;
 67                                                    67 
 68                         si5338: clock-generato     68                         si5338: clock-generator@70 {
 69                                 compatible = "     69                                 compatible = "silabs,si5338";
 70                                 reg = <0x70>;      70                                 reg = <0x70>;
 71                                 /* other stuff     71                                 /* other stuff */
 72                         };                         72                         };
 73                 };                                 73                 };
 74         };                                         74         };
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php