| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- Marvell Berlin SoC Family Device Tree Bindings
- ---------------------------------------------------------------
- Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
- shall have the following properties:
- * Required root node properties:
- compatible: must contain "marvell,berlin"
- In addition, the above compatible shall be extended with the specific
- SoC and board used. Currently known SoC compatibles are:
- "marvell,berlin2" for Marvell Armada 1500 (BG2, 88DE3100),
- "marvell,berlin2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005)
- "marvell,berlin2ct" for Marvell Armada ? (BG2CT, 88DE????)
- "marvell,berlin2q" for Marvell Armada 1500-pro (BG2Q, 88DE3114)
- "marvell,berlin3" for Marvell Armada ? (BG3, 88DE????)
- * Example:
- / {
- model = "Sony NSZ-GS7";
- compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin";
- ...
- }
- * Marvell Berlin CPU control bindings
- CPU control register allows various operations on CPUs, like resetting them
- independently.
- Required properties:
- - compatible: should be "marvell,berlin-cpu-ctrl"
- - reg: address and length of the register set
- Example:
- cpu-ctrl@f7dd0000 {
- compatible = "marvell,berlin-cpu-ctrl";
- reg = <0xf7dd0000 0x10000>;
- };
- * Marvell Berlin2 chip control binding
- Marvell Berlin SoCs have a chip control register set providing several
- individual registers dealing with pinmux, padmux, clock, reset, and secondary
- CPU boot address. Unfortunately, the individual registers are spread among the
- chip control registers, so there should be a single DT node only providing the
- different functions which are described below.
- Required properties:
- - compatible: shall be one of
- "marvell,berlin2-chip-ctrl" for BG2
- "marvell,berlin2cd-chip-ctrl" for BG2CD
- "marvell,berlin2q-chip-ctrl" for BG2Q
- - reg: address and length of following register sets for
- BG2/BG2CD: chip control register set
- BG2Q: chip control register set and cpu pll registers
- * Marvell Berlin2 system control binding
- Marvell Berlin SoCs have a system control register set providing several
- individual registers dealing with pinmux, padmux, and reset.
- Required properties:
- - compatible: should be one of
- "marvell,berlin2-system-ctrl" for BG2
- "marvell,berlin2cd-system-ctrl" for BG2CD
- "marvell,berlin2q-system-ctrl" for BG2Q
- - reg: address and length of the system control register set
- * Clock provider binding
- As clock related registers are spread among the chip control registers, the
- chip control node also provides the clocks. Marvell Berlin2 (BG2, BG2CD, BG2Q)
- SoCs share the same IP for PLLs and clocks, with some minor differences in
- features and register layout.
- Required properties:
- - #clock-cells: shall be set to 1
- - clocks: clock specifiers referencing the core clock input clocks
- - clock-names: array of strings describing the input clock specifiers above.
- Allowed clock-names for the reference clocks are
- "refclk" for the SoCs osciallator input on all SoCs,
- and SoC-specific input clocks for
- BG2/BG2CD: "video_ext0" for the external video clock input
- Clocks provided by core clocks shall be referenced by a clock specifier
- indexing one of the provided clocks. Refer to dt-bindings/clock/berlin<soc>.h
- for the corresponding index mapping.
- * Pin controller binding
- Pin control registers are part of both register sets, chip control and system
- control. The pins controlled are organized in groups, so no actual pin
- information is needed.
- A pin-controller node should contain subnodes representing the pin group
- configurations, one per function. Each subnode has the group name and the muxing
- function used.
- Be aware the Marvell Berlin datasheets use the keyword 'mode' for what is called
- a 'function' in the pin-controller subsystem.
- Required subnode-properties:
- - groups: a list of strings describing the group names.
- - function: a string describing the function used to mux the groups.
- Example:
- chip: chip-control@ea0000 {
- compatible = "marvell,berlin2-chip-ctrl";
- #clock-cells = <1>;
- reg = <0xea0000 0x400>;
- clocks = <&refclk>, <&externaldev 0>;
- clock-names = "refclk", "video_ext0";
- spi1_pmux: spi1-pmux {
- groups = "G0";
- function = "spi1";
- };
- };
- sysctrl: system-controller@d000 {
- compatible = "marvell,berlin2-system-ctrl";
- reg = <0xd000 0x100>;
- uart0_pmux: uart0-pmux {
- groups = "GSM4";
- function = "uart0";
- };
- uart1_pmux: uart1-pmux {
- groups = "GSM5";
- function = "uart1";
- };
- uart2_pmux: uart2-pmux {
- groups = "GSM3";
- function = "uart2";
- };
- };
|