18c2ecf20Sopenharmony_ci* Gated Clock bindings for Marvell EBU SoCs
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciMarvell Armada 370/375/380/385/39x/XP, Dove and Kirkwood allow some
48c2ecf20Sopenharmony_ciperipheral clocks to be gated to save some power. The clock consumer
58c2ecf20Sopenharmony_cishould specify the desired clock by having the clock ID in its
68c2ecf20Sopenharmony_ci"clocks" phandle cell. The clock ID is directly mapped to the
78c2ecf20Sopenharmony_cicorresponding clock gating control bit in HW to ease manual clock
88c2ecf20Sopenharmony_cilookup in datasheet.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Armada 370:
118c2ecf20Sopenharmony_ciID	Clock	Peripheral
128c2ecf20Sopenharmony_ci-----------------------------------
138c2ecf20Sopenharmony_ci0	Audio	AC97 Cntrl
148c2ecf20Sopenharmony_ci1	pex0_en	PCIe 0 Clock out
158c2ecf20Sopenharmony_ci2	pex1_en	PCIe 1 Clock out
168c2ecf20Sopenharmony_ci3	ge1	Gigabit Ethernet 1
178c2ecf20Sopenharmony_ci4	ge0	Gigabit Ethernet 0
188c2ecf20Sopenharmony_ci5	pex0	PCIe Cntrl 0
198c2ecf20Sopenharmony_ci9	pex1	PCIe Cntrl 1
208c2ecf20Sopenharmony_ci15	sata0	SATA Host 0
218c2ecf20Sopenharmony_ci17	sdio	SDHCI Host
228c2ecf20Sopenharmony_ci23	crypto	CESA (crypto engine)
238c2ecf20Sopenharmony_ci25	tdm	Time Division Mplx
248c2ecf20Sopenharmony_ci28	ddr	DDR Cntrl
258c2ecf20Sopenharmony_ci30	sata1	SATA Host 0
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Armada 375:
288c2ecf20Sopenharmony_ciID	Clock		Peripheral
298c2ecf20Sopenharmony_ci-----------------------------------
308c2ecf20Sopenharmony_ci2	mu		Management Unit
318c2ecf20Sopenharmony_ci3	pp		Packet Processor
328c2ecf20Sopenharmony_ci4	ptp		PTP
338c2ecf20Sopenharmony_ci5	pex0		PCIe 0 Clock out
348c2ecf20Sopenharmony_ci6	pex1		PCIe 1 Clock out
358c2ecf20Sopenharmony_ci8	audio		Audio Cntrl
368c2ecf20Sopenharmony_ci11	nd_clk		Nand Flash Cntrl
378c2ecf20Sopenharmony_ci14	sata0_link	SATA 0 Link
388c2ecf20Sopenharmony_ci15	sata0_core	SATA 0 Core
398c2ecf20Sopenharmony_ci16	usb3		USB3 Host
408c2ecf20Sopenharmony_ci17	sdio		SDHCI Host
418c2ecf20Sopenharmony_ci18	usb		USB Host
428c2ecf20Sopenharmony_ci19	gop		Gigabit Ethernet MAC
438c2ecf20Sopenharmony_ci20	sata1_link	SATA 1 Link
448c2ecf20Sopenharmony_ci21	sata1_core	SATA 1 Core
458c2ecf20Sopenharmony_ci22	xor0		XOR DMA 0
468c2ecf20Sopenharmony_ci23	xor1		XOR DMA 0
478c2ecf20Sopenharmony_ci24	copro		Coprocessor
488c2ecf20Sopenharmony_ci25	tdm		Time Division Mplx
498c2ecf20Sopenharmony_ci28	crypto0_enc	Cryptographic Unit Port 0 Encryption
508c2ecf20Sopenharmony_ci29	crypto0_core	Cryptographic Unit Port 0 Core
518c2ecf20Sopenharmony_ci30	crypto1_enc	Cryptographic Unit Port 1 Encryption
528c2ecf20Sopenharmony_ci31	crypto1_core	Cryptographic Unit Port 1 Core
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Armada 380/385:
558c2ecf20Sopenharmony_ciID	Clock		Peripheral
568c2ecf20Sopenharmony_ci-----------------------------------
578c2ecf20Sopenharmony_ci0	audio		Audio
588c2ecf20Sopenharmony_ci2	ge2		Gigabit Ethernet 2
598c2ecf20Sopenharmony_ci3	ge1		Gigabit Ethernet 1
608c2ecf20Sopenharmony_ci4	ge0		Gigabit Ethernet 0
618c2ecf20Sopenharmony_ci5	pex1		PCIe 1
628c2ecf20Sopenharmony_ci6	pex2		PCIe 2
638c2ecf20Sopenharmony_ci7	pex3		PCIe 3
648c2ecf20Sopenharmony_ci8	pex0		PCIe 0
658c2ecf20Sopenharmony_ci9	usb3h0		USB3 Host 0
668c2ecf20Sopenharmony_ci10	usb3h1		USB3 Host 1
678c2ecf20Sopenharmony_ci11	usb3d		USB3 Device
688c2ecf20Sopenharmony_ci13	bm		Buffer Management
698c2ecf20Sopenharmony_ci14	crypto0z	Cryptographic 0 Z
708c2ecf20Sopenharmony_ci15	sata0		SATA 0
718c2ecf20Sopenharmony_ci16	crypto1z	Cryptographic 1 Z
728c2ecf20Sopenharmony_ci17	sdio		SDIO
738c2ecf20Sopenharmony_ci18	usb2		USB 2
748c2ecf20Sopenharmony_ci21	crypto1		Cryptographic 1
758c2ecf20Sopenharmony_ci22	xor0		XOR 0
768c2ecf20Sopenharmony_ci23	crypto0		Cryptographic 0
778c2ecf20Sopenharmony_ci25	tdm		Time Division Multiplexing
788c2ecf20Sopenharmony_ci28	xor1		XOR 1
798c2ecf20Sopenharmony_ci30	sata1		SATA 1
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Armada 39x:
828c2ecf20Sopenharmony_ciID	Clock		Peripheral
838c2ecf20Sopenharmony_ci-----------------------------------
848c2ecf20Sopenharmony_ci5	pex1		PCIe 1
858c2ecf20Sopenharmony_ci6	pex2		PCIe 2
868c2ecf20Sopenharmony_ci7	pex3		PCIe 3
878c2ecf20Sopenharmony_ci8	pex0		PCIe 0
888c2ecf20Sopenharmony_ci9	usb3h0		USB3 Host 0
898c2ecf20Sopenharmony_ci10	usb3h1		USB3 Host 1
908c2ecf20Sopenharmony_ci15	sata0		SATA 0
918c2ecf20Sopenharmony_ci17	sdio		SDIO
928c2ecf20Sopenharmony_ci22	xor0		XOR 0
938c2ecf20Sopenharmony_ci28	xor1		XOR 1
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Armada XP:
968c2ecf20Sopenharmony_ciID	Clock	Peripheral
978c2ecf20Sopenharmony_ci-----------------------------------
988c2ecf20Sopenharmony_ci0	audio	Audio Cntrl
998c2ecf20Sopenharmony_ci1	ge3	Gigabit Ethernet 3
1008c2ecf20Sopenharmony_ci2	ge2	Gigabit Ethernet 2
1018c2ecf20Sopenharmony_ci3	ge1	Gigabit Ethernet 1
1028c2ecf20Sopenharmony_ci4	ge0	Gigabit Ethernet 0
1038c2ecf20Sopenharmony_ci5	pex0	PCIe Cntrl 0
1048c2ecf20Sopenharmony_ci6	pex1	PCIe Cntrl 1
1058c2ecf20Sopenharmony_ci7	pex2	PCIe Cntrl 2
1068c2ecf20Sopenharmony_ci8	pex3	PCIe Cntrl 3
1078c2ecf20Sopenharmony_ci13	bp
1088c2ecf20Sopenharmony_ci14	sata0lnk
1098c2ecf20Sopenharmony_ci15	sata0	SATA Host 0
1108c2ecf20Sopenharmony_ci16	lcd	LCD Cntrl
1118c2ecf20Sopenharmony_ci17	sdio	SDHCI Host
1128c2ecf20Sopenharmony_ci18	usb0	USB Host 0
1138c2ecf20Sopenharmony_ci19	usb1	USB Host 1
1148c2ecf20Sopenharmony_ci20	usb2	USB Host 2
1158c2ecf20Sopenharmony_ci22	xor0	XOR DMA 0
1168c2ecf20Sopenharmony_ci23	crypto	CESA engine
1178c2ecf20Sopenharmony_ci25	tdm	Time Division Mplx
1188c2ecf20Sopenharmony_ci28	xor1	XOR DMA 1
1198c2ecf20Sopenharmony_ci29	sata1lnk
1208c2ecf20Sopenharmony_ci30	sata1	SATA Host 1
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciThe following is a list of provided IDs for 98dx3236:
1238c2ecf20Sopenharmony_ciID	Clock	Peripheral
1248c2ecf20Sopenharmony_ci-----------------------------------
1258c2ecf20Sopenharmony_ci3	ge1	Gigabit Ethernet 1
1268c2ecf20Sopenharmony_ci4	ge0	Gigabit Ethernet 0
1278c2ecf20Sopenharmony_ci5	pex0	PCIe Cntrl 0
1288c2ecf20Sopenharmony_ci17	sdio	SDHCI Host
1298c2ecf20Sopenharmony_ci18	usb0	USB Host 0
1308c2ecf20Sopenharmony_ci22	xor0	XOR DMA 0
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Dove:
1338c2ecf20Sopenharmony_ciID	Clock	Peripheral
1348c2ecf20Sopenharmony_ci-----------------------------------
1358c2ecf20Sopenharmony_ci0	usb0	USB Host 0
1368c2ecf20Sopenharmony_ci1	usb1	USB Host 1
1378c2ecf20Sopenharmony_ci2	ge	Gigabit Ethernet
1388c2ecf20Sopenharmony_ci3	sata	SATA Host
1398c2ecf20Sopenharmony_ci4	pex0	PCIe Cntrl 0
1408c2ecf20Sopenharmony_ci5	pex1	PCIe Cntrl 1
1418c2ecf20Sopenharmony_ci8	sdio0	SDHCI Host 0
1428c2ecf20Sopenharmony_ci9	sdio1	SDHCI Host 1
1438c2ecf20Sopenharmony_ci10	nand	NAND Cntrl
1448c2ecf20Sopenharmony_ci11	camera	Camera Cntrl
1458c2ecf20Sopenharmony_ci12	i2s0	I2S Cntrl 0
1468c2ecf20Sopenharmony_ci13	i2s1	I2S Cntrl 1
1478c2ecf20Sopenharmony_ci15	crypto	CESA engine
1488c2ecf20Sopenharmony_ci21	ac97	AC97 Cntrl
1498c2ecf20Sopenharmony_ci22	pdma	Peripheral DMA
1508c2ecf20Sopenharmony_ci23	xor0	XOR DMA 0
1518c2ecf20Sopenharmony_ci24	xor1	XOR DMA 1
1528c2ecf20Sopenharmony_ci30	gephy	Gigabit Ethernel PHY
1538c2ecf20Sopenharmony_ciNote: gephy(30) is implemented as a parent clock of ge(2)
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciThe following is a list of provided IDs for Kirkwood:
1568c2ecf20Sopenharmony_ciID	Clock	Peripheral
1578c2ecf20Sopenharmony_ci-----------------------------------
1588c2ecf20Sopenharmony_ci0	ge0	Gigabit Ethernet 0
1598c2ecf20Sopenharmony_ci2	pex0	PCIe Cntrl 0
1608c2ecf20Sopenharmony_ci3	usb0	USB Host 0
1618c2ecf20Sopenharmony_ci4	sdio	SDIO Cntrl
1628c2ecf20Sopenharmony_ci5	tsu	Transp. Stream Unit
1638c2ecf20Sopenharmony_ci6	dunit	SDRAM Cntrl
1648c2ecf20Sopenharmony_ci7	runit	Runit
1658c2ecf20Sopenharmony_ci8	xor0	XOR DMA 0
1668c2ecf20Sopenharmony_ci9	audio	I2S Cntrl 0
1678c2ecf20Sopenharmony_ci14	sata0	SATA Host 0
1688c2ecf20Sopenharmony_ci15	sata1	SATA Host 1
1698c2ecf20Sopenharmony_ci16	xor1	XOR DMA 1
1708c2ecf20Sopenharmony_ci17	crypto	CESA engine
1718c2ecf20Sopenharmony_ci18	pex1	PCIe Cntrl 1
1728c2ecf20Sopenharmony_ci19	ge1	Gigabit Ethernet 1
1738c2ecf20Sopenharmony_ci20	tdm	Time Division Mplx
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ciRequired properties:
1768c2ecf20Sopenharmony_ci- compatible : shall be one of the following:
1778c2ecf20Sopenharmony_ci	"marvell,armada-370-gating-clock" - for Armada 370 SoC clock gating
1788c2ecf20Sopenharmony_ci	"marvell,armada-375-gating-clock" - for Armada 375 SoC clock gating
1798c2ecf20Sopenharmony_ci	"marvell,armada-380-gating-clock" - for Armada 380/385 SoC clock gating
1808c2ecf20Sopenharmony_ci	"marvell,armada-390-gating-clock" - for Armada 39x SoC clock gating
1818c2ecf20Sopenharmony_ci	"marvell,armada-xp-gating-clock" - for Armada XP SoC clock gating
1828c2ecf20Sopenharmony_ci	"marvell,mv98dx3236-gating-clock" - for 98dx3236 SoC clock gating
1838c2ecf20Sopenharmony_ci	"marvell,dove-gating-clock" - for Dove SoC clock gating
1848c2ecf20Sopenharmony_ci	"marvell,kirkwood-gating-clock" - for Kirkwood SoC clock gating
1858c2ecf20Sopenharmony_ci- reg : shall be the register address of the Clock Gating Control register
1868c2ecf20Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 1
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciOptional properties:
1898c2ecf20Sopenharmony_ci- clocks : default parent clock phandle (e.g. tclk)
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ciExample:
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_cigate_clk: clock-gating-control@d0038 {
1948c2ecf20Sopenharmony_ci	compatible = "marvell,dove-gating-clock";
1958c2ecf20Sopenharmony_ci	reg = <0xd0038 0x4>;
1968c2ecf20Sopenharmony_ci	/* default parent clock is tclk */
1978c2ecf20Sopenharmony_ci	clocks = <&core_clk 0>;
1988c2ecf20Sopenharmony_ci	#clock-cells = <1>;
1998c2ecf20Sopenharmony_ci};
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_cisdio0: sdio@92000 {
2028c2ecf20Sopenharmony_ci	compatible = "marvell,dove-sdhci";
2038c2ecf20Sopenharmony_ci	/* get clk gate bit 8 (sdio0) */
2048c2ecf20Sopenharmony_ci	clocks = <&gate_clk 8>;
2058c2ecf20Sopenharmony_ci};
206