Marvell Prestera Switch Chip bindings
-------------------------------------

Required properties:
- compatible: must be "marvell,prestera" and one of the following
	"marvell,prestera-98dx3236",
	"marvell,prestera-98dx3336",
	"marvell,prestera-98dx4251",
- reg: address and length of the register set for the device.
- interrupts: interrupt for the device

Optional properties:
- dfx: phandle reference to the "DFX Server" node

Example:

switch {
	compatible = "simple-bus";
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;

	packet-processor@0 {
		compatible = "marvell,prestera-98dx3236", "marvell,prestera";
		reg = <0 0x4000000>;
		interrupts = <33>, <34>, <35>;
		dfx = <&dfx>;
	};
};

DFX Server bindings
-------------------

Required properties:
- compatible: must be "marvell,dfx-server", "simple-bus"
- ranges: describes the address mapping of a memory-mapped bus.
- reg: address and length of the register set for the device.

Example:

dfx-server {
	compatible = "marvell,dfx-server", "simple-bus";
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
	reg = <MBUS_ID(0x08, 0x00) 0 0x100000>;
};

Marvell Prestera SwitchDev bindings
-----------------------------------
Optional properties:
- compatible: must be "marvell,prestera"
- base-mac-provider: describes handle to node which provides base mac address,
	might be a static base mac address or nvme cell provider.

Example:

eeprom_mac_addr: eeprom-mac-addr {
       compatible = "eeprom,mac-addr-cell";
       status = "okay";

       nvmem = <&eeprom_at24>;
};

prestera {
       compatible = "marvell,prestera";
       status = "okay";

       base-mac-provider = <&eeprom_mac_addr>;
};

The current implementation of Prestera Switchdev PCI interface driver requires
that BAR2 is assigned to 0xf6000000 as base address from the PCI IO range:

&cp0_pcie0 {
	ranges = <0x81000000 0x0 0xfb000000 0x0 0xfb000000 0x0 0xf0000
		0x82000000 0x0 0xf6000000 0x0 0xf6000000 0x0 0x2000000
		0x82000000 0x0 0xf9000000 0x0 0xf9000000 0x0 0x100000>;
	phys = <&cp0_comphy0 0>;
	status = "okay";
};
