xref: /linux/Documentation/devicetree/bindings/regmap/regmap.txt (revision f26e8817b235d8764363bffcc9cbfc61867371f2)
12596e07aSArnd BergmannDevicetree binding for regmap
2275876e2SXiubo Li
3a06c488dSMark BrownOptional properties:
42596e07aSArnd Bergmann
52596e07aSArnd Bergmann   little-endian,
62596e07aSArnd Bergmann   big-endian,
72596e07aSArnd Bergmann   native-endian:	See common-properties.txt for a definition
82596e07aSArnd Bergmann
92596e07aSArnd BergmannNote:
102596e07aSArnd BergmannRegmap defaults to little-endian register access on MMIO based
112596e07aSArnd Bergmanndevices, this is by far the most common setting. On CPU
122596e07aSArnd Bergmannarchitectures that typically run big-endian operating systems
132596e07aSArnd Bergmann(e.g. PowerPC), registers can be defined as big-endian and must
142596e07aSArnd Bergmannbe marked that way in the devicetree.
152596e07aSArnd Bergmann
162596e07aSArnd BergmannOn SoCs that can be operated in both big-endian and little-endian
17*7587eb18SOtto Kekäläinenmodes, with a single hardware switch controlling both the endianness
182596e07aSArnd Bergmannof the CPU and a byteswap for MMIO registers (e.g. many Broadcom MIPS
192596e07aSArnd Bergmannchips), "native-endian" is used to allow using the same device tree
202596e07aSArnd Bergmannblob in both cases.
21275876e2SXiubo Li
22275876e2SXiubo LiExamples:
232596e07aSArnd BergmannScenario 1 : a register set in big-endian mode.
24275876e2SXiubo Lidev: dev@40031000 {
252596e07aSArnd Bergmann	      compatible = "syscon";
26275876e2SXiubo Li	      reg = <0x40031000 0x1000>;
27275876e2SXiubo Li	      big-endian;
28275876e2SXiubo Li	      ...
29275876e2SXiubo Li};
30