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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/common-properties.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/common-properties.txt (Version linux-6.12-rc7) and /Documentation/devicetree/bindings/common-properties.txt (Version linux-4.9.337)


  1 Common properties                                   1 Common properties
  2 =================                              << 
  3                                                     2 
  4 Endianness                                     !!   3 The ePAPR specification does not define any properties related to hardware
  5 ----------                                     !!   4 byteswapping, but endianness issues show up frequently in porting Linux to
  6                                                << 
  7 The Devicetree Specification does not define a << 
  8 byte swapping, but endianness issues show up f << 
  9 different machine types.  This document attemp      5 different machine types.  This document attempts to provide a consistent
 10 way of handling byte swapping across drivers.  !!   6 way of handling byteswapping across drivers.
 11                                                     7 
 12 Optional properties:                                8 Optional properties:
 13  - big-endian: Boolean; force big endian regis      9  - big-endian: Boolean; force big endian register accesses
 14    unconditionally (e.g. ioread32be/iowrite32b     10    unconditionally (e.g. ioread32be/iowrite32be).  Use this if you
 15    know the peripheral always needs to be acce !!  11    know the peripheral always needs to be accessed in BE mode.
 16  - little-endian: Boolean; force little endian     12  - little-endian: Boolean; force little endian register accesses
 17    unconditionally (e.g. readl/writel).  Use t     13    unconditionally (e.g. readl/writel).  Use this if you know the
 18    peripheral always needs to be accessed in l !!  14    peripheral always needs to be accessed in LE mode.
 19  - native-endian: Boolean; always use register     15  - native-endian: Boolean; always use register accesses matched to the
 20    endianness of the kernel binary (e.g. LE vm     16    endianness of the kernel binary (e.g. LE vmlinux -> readl/writel,
 21    BE vmlinux -> ioread32be/iowrite32be).  In  !!  17    BE vmlinux -> ioread32be/iowrite32be).  In this case no byteswaps
 22    will ever be performed.  Use this if the ha     18    will ever be performed.  Use this if the hardware "self-adjusts"
 23    register endianness based on the CPU's conf     19    register endianness based on the CPU's configured endianness.
 24                                                    20 
 25 If a binding supports these properties, then t     21 If a binding supports these properties, then the binding should also
 26 specify the default behavior if none of these      22 specify the default behavior if none of these properties are present.
 27 In such cases, little-endian is the preferred      23 In such cases, little-endian is the preferred default, but it is not
 28 a requirement.  Some implementations assume th !!  24 a requirement.  The of_device_is_big_endian() and of_fdt_is_big_endian()
 29 the default, because most existing (PCI-based) !!  25 helper functions do assume that little-endian is the default, because
 30 default to LE for their MMIO accesses.         !!  26 most existing (PCI-based) drivers implicitly default to LE by using
                                                   >>  27 readl/writel for MMIO accesses.
 31                                                    28 
 32 Examples:                                          29 Examples:
 33 Scenario 1 : CPU in LE mode & device in LE mod     30 Scenario 1 : CPU in LE mode & device in LE mode.
 34 dev: dev@40031000 {                                31 dev: dev@40031000 {
 35               compatible = "name";                 32               compatible = "name";
 36               reg = <0x40031000 0x1000>;           33               reg = <0x40031000 0x1000>;
 37               ...                                  34               ...
 38               native-endian;                       35               native-endian;
 39 };                                                 36 };
 40                                                    37 
 41 Scenario 2 : CPU in LE mode & device in BE mod     38 Scenario 2 : CPU in LE mode & device in BE mode.
 42 dev: dev@40031000 {                                39 dev: dev@40031000 {
 43               compatible = "name";                 40               compatible = "name";
 44               reg = <0x40031000 0x1000>;           41               reg = <0x40031000 0x1000>;
 45               ...                                  42               ...
 46               big-endian;                          43               big-endian;
 47 };                                                 44 };
 48                                                    45 
 49 Scenario 3 : CPU in BE mode & device in BE mod     46 Scenario 3 : CPU in BE mode & device in BE mode.
 50 dev: dev@40031000 {                                47 dev: dev@40031000 {
 51               compatible = "name";                 48               compatible = "name";
 52               reg = <0x40031000 0x1000>;           49               reg = <0x40031000 0x1000>;
 53               ...                                  50               ...
 54               native-endian;                       51               native-endian;
 55 };                                                 52 };
 56                                                    53 
 57 Scenario 4 : CPU in BE mode & device in LE mod     54 Scenario 4 : CPU in BE mode & device in LE mode.
 58 dev: dev@40031000 {                                55 dev: dev@40031000 {
 59               compatible = "name";                 56               compatible = "name";
 60               reg = <0x40031000 0x1000>;           57               reg = <0x40031000 0x1000>;
 61               ...                                  58               ...
 62               little-endian;                       59               little-endian;
 63 };                                             << 
 64                                                << 
 65 Daisy-chained devices                          << 
 66 ---------------------                          << 
 67                                                << 
 68 Many serially-attached GPIO and IIO devices ar << 
 69 host controller, a daisy-chain appears as a si << 
 70 of inputs and outputs it provides is the sum o << 
 71 by all of its devices.  The driver needs to kn << 
 72 daisy-chain comprises to determine the amount  << 
 73 inputs and outputs to register and so on.      << 
 74                                                << 
 75 Optional properties:                           << 
 76  - #daisy-chained-devices: Number of devices i << 
 77                                                << 
 78 Example:                                       << 
 79 gpio@0 {                                       << 
 80               compatible = "name";             << 
 81               reg = <0>;                       << 
 82               gpio-controller;                 << 
 83               #gpio-cells = <2>;               << 
 84               #daisy-chained-devices = <3>;    << 
 85 };                                                 60 };
                                                      

~ [ 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