18c2ecf20Sopenharmony_ciMarvell Prestera Switch Chip bindings
28c2ecf20Sopenharmony_ci-------------------------------------
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciRequired properties:
58c2ecf20Sopenharmony_ci- compatible: must be "marvell,prestera" and one of the following
68c2ecf20Sopenharmony_ci	"marvell,prestera-98dx3236",
78c2ecf20Sopenharmony_ci	"marvell,prestera-98dx3336",
88c2ecf20Sopenharmony_ci	"marvell,prestera-98dx4251",
98c2ecf20Sopenharmony_ci- reg: address and length of the register set for the device.
108c2ecf20Sopenharmony_ci- interrupts: interrupt for the device
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciOptional properties:
138c2ecf20Sopenharmony_ci- dfx: phandle reference to the "DFX Server" node
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciExample:
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciswitch {
188c2ecf20Sopenharmony_ci	compatible = "simple-bus";
198c2ecf20Sopenharmony_ci	#address-cells = <1>;
208c2ecf20Sopenharmony_ci	#size-cells = <1>;
218c2ecf20Sopenharmony_ci	ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	packet-processor@0 {
248c2ecf20Sopenharmony_ci		compatible = "marvell,prestera-98dx3236", "marvell,prestera";
258c2ecf20Sopenharmony_ci		reg = <0 0x4000000>;
268c2ecf20Sopenharmony_ci		interrupts = <33>, <34>, <35>;
278c2ecf20Sopenharmony_ci		dfx = <&dfx>;
288c2ecf20Sopenharmony_ci	};
298c2ecf20Sopenharmony_ci};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciDFX Server bindings
328c2ecf20Sopenharmony_ci-------------------
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciRequired properties:
358c2ecf20Sopenharmony_ci- compatible: must be "marvell,dfx-server", "simple-bus"
368c2ecf20Sopenharmony_ci- ranges: describes the address mapping of a memory-mapped bus.
378c2ecf20Sopenharmony_ci- reg: address and length of the register set for the device.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciExample:
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_cidfx-server {
428c2ecf20Sopenharmony_ci	compatible = "marvell,dfx-server", "simple-bus";
438c2ecf20Sopenharmony_ci	#address-cells = <1>;
448c2ecf20Sopenharmony_ci	#size-cells = <1>;
458c2ecf20Sopenharmony_ci	ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
468c2ecf20Sopenharmony_ci	reg = <MBUS_ID(0x08, 0x00) 0 0x100000>;
478c2ecf20Sopenharmony_ci};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciMarvell Prestera SwitchDev bindings
508c2ecf20Sopenharmony_ci-----------------------------------
518c2ecf20Sopenharmony_ciOptional properties:
528c2ecf20Sopenharmony_ci- compatible: must be "marvell,prestera"
538c2ecf20Sopenharmony_ci- base-mac-provider: describes handle to node which provides base mac address,
548c2ecf20Sopenharmony_ci	might be a static base mac address or nvme cell provider.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciExample:
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_cieeprom_mac_addr: eeprom-mac-addr {
598c2ecf20Sopenharmony_ci       compatible = "eeprom,mac-addr-cell";
608c2ecf20Sopenharmony_ci       status = "okay";
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci       nvmem = <&eeprom_at24>;
638c2ecf20Sopenharmony_ci};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciprestera {
668c2ecf20Sopenharmony_ci       compatible = "marvell,prestera";
678c2ecf20Sopenharmony_ci       status = "okay";
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci       base-mac-provider = <&eeprom_mac_addr>;
708c2ecf20Sopenharmony_ci};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciThe current implementation of Prestera Switchdev PCI interface driver requires
738c2ecf20Sopenharmony_cithat BAR2 is assigned to 0xf6000000 as base address from the PCI IO range:
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci&cp0_pcie0 {
768c2ecf20Sopenharmony_ci	ranges = <0x81000000 0x0 0xfb000000 0x0 0xfb000000 0x0 0xf0000
778c2ecf20Sopenharmony_ci		0x82000000 0x0 0xf6000000 0x0 0xf6000000 0x0 0x2000000
788c2ecf20Sopenharmony_ci		0x82000000 0x0 0xf9000000 0x0 0xf9000000 0x0 0x100000>;
798c2ecf20Sopenharmony_ci	phys = <&cp0_comphy0 0>;
808c2ecf20Sopenharmony_ci	status = "okay";
818c2ecf20Sopenharmony_ci};
82