18c2ecf20Sopenharmony_ciSynaptics SoC Device Tree Bindings
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciAccording to https://www.synaptics.com/company/news/conexant-marvell
48c2ecf20Sopenharmony_ciSynaptics has acquired the Multimedia Solutions Business of Marvell, so
58c2ecf20Sopenharmony_ciberlin SoCs are now Synaptics' SoCs now.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci---------------------------------------------------------------
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciWork in progress statement:
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciDevice tree files and bindings applying to Marvell Berlin SoCs and boards are
128c2ecf20Sopenharmony_ciconsidered "unstable". Any Marvell Berlin device tree binding may change at any
138c2ecf20Sopenharmony_citime. Be sure to use a device tree binary and a kernel image generated from the
148c2ecf20Sopenharmony_cisame source tree.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciPlease refer to Documentation/devicetree/bindings/ABI.rst for a definition of a
178c2ecf20Sopenharmony_cistable binding/ABI.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci---------------------------------------------------------------
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciBoards with the Synaptics AS370 SoC shall have the following properties:
228c2ecf20Sopenharmony_ci  Required root node property:
238c2ecf20Sopenharmony_ci    compatible: "syna,as370"
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciBoards with a SoC of the Marvell Berlin family, e.g. Armada 1500
268c2ecf20Sopenharmony_cishall have the following properties:
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci* Required root node properties:
298c2ecf20Sopenharmony_cicompatible: must contain "marvell,berlin"
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciIn addition, the above compatible shall be extended with the specific
328c2ecf20Sopenharmony_ciSoC and board used. Currently known SoC compatibles are:
338c2ecf20Sopenharmony_ci    "marvell,berlin2"      for Marvell Armada 1500 (BG2, 88DE3100),
348c2ecf20Sopenharmony_ci    "marvell,berlin2cd"    for Marvell Armada 1500-mini (BG2CD, 88DE3005)
358c2ecf20Sopenharmony_ci    "marvell,berlin2ct"    for Marvell Armada ? (BG2CT, 88DE????)
368c2ecf20Sopenharmony_ci    "marvell,berlin2q"     for Marvell Armada 1500-pro (BG2Q, 88DE3114)
378c2ecf20Sopenharmony_ci    "marvell,berlin3"      for Marvell Armada ? (BG3, 88DE????)
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci* Example:
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci/ {
428c2ecf20Sopenharmony_ci	model = "Sony NSZ-GS7";
438c2ecf20Sopenharmony_ci	compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin";
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	...
468c2ecf20Sopenharmony_ci}
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci* Marvell Berlin CPU control bindings
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciCPU control register allows various operations on CPUs, like resetting them
518c2ecf20Sopenharmony_ciindependently.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciRequired properties:
548c2ecf20Sopenharmony_ci- compatible: should be "marvell,berlin-cpu-ctrl"
558c2ecf20Sopenharmony_ci- reg: address and length of the register set
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ciExample:
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_cicpu-ctrl@f7dd0000 {
608c2ecf20Sopenharmony_ci	compatible = "marvell,berlin-cpu-ctrl";
618c2ecf20Sopenharmony_ci	reg = <0xf7dd0000 0x10000>;
628c2ecf20Sopenharmony_ci};
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci* Marvell Berlin2 chip control binding
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciMarvell Berlin SoCs have a chip control register set providing several
678c2ecf20Sopenharmony_ciindividual registers dealing with pinmux, padmux, clock, reset, and secondary
688c2ecf20Sopenharmony_ciCPU boot address. Unfortunately, the individual registers are spread among the
698c2ecf20Sopenharmony_cichip control registers, so there should be a single DT node only providing the
708c2ecf20Sopenharmony_cidifferent functions which are described below.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciRequired properties:
738c2ecf20Sopenharmony_ci- compatible:
748c2ecf20Sopenharmony_ci	* the first and second values must be:
758c2ecf20Sopenharmony_ci		"simple-mfd", "syscon"
768c2ecf20Sopenharmony_ci- reg: address and length of following register sets for
778c2ecf20Sopenharmony_ci  BG2/BG2CD: chip control register set
788c2ecf20Sopenharmony_ci  BG2Q: chip control register set and cpu pll registers
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci* Marvell Berlin2 system control binding
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciMarvell Berlin SoCs have a system control register set providing several
838c2ecf20Sopenharmony_ciindividual registers dealing with pinmux, padmux, and reset.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciRequired properties:
868c2ecf20Sopenharmony_ci- compatible:
878c2ecf20Sopenharmony_ci	* the first and second values must be:
888c2ecf20Sopenharmony_ci		"simple-mfd", "syscon"
898c2ecf20Sopenharmony_ci- reg: address and length of the system control register set
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ciExample:
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_cichip: chip-control@ea0000 {
948c2ecf20Sopenharmony_ci	compatible = "simple-mfd", "syscon";
958c2ecf20Sopenharmony_ci	reg = <0xea0000 0x400>;
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci	/* sub-device nodes */
988c2ecf20Sopenharmony_ci};
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_cisysctrl: system-controller@d000 {
1018c2ecf20Sopenharmony_ci	compatible = "simple-mfd", "syscon";
1028c2ecf20Sopenharmony_ci	reg = <0xd000 0x100>;
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci	/* sub-device nodes */
1058c2ecf20Sopenharmony_ci};
106