Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fcbffc4 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'berlin-simple-mfd-4.2-1' of...

Merge tag 'berlin-simple-mfd-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/drivers

Merge "Berlin simple-mfd for v4.2" from Sebastian Hesselbarth:
- based on arm-soc drivers/simple-mfd branch
- rework of chip/system ctrl nodes to simple-mfd probing for
  clk, pinctrl, and reset
- add adc node

* tag 'berlin-simple-mfd-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin:
  ARM: berlin: add an ADC node for the BG2Q
  ARM: berlin: remove useless chip and system ctrl compatibles
  clk: berlin: drop direct of_iomap of nodes reg property
  ARM: berlin: move BG2Q clock node
  ARM: berlin: move BG2CD clock node
  ARM: berlin: move BG2 clock node
  clk: berlin: prepare simple-mfd conversion
  pinctrl: berlin: drop SoC stub provided regmap
  ARM: berlin: move pinctrl to simple-mfd nodes
  pinctrl: berlin: prepare to use regmap provided by syscon
  reset: berlin: drop arch_initcall initialization
  ARM: berlin: move reset to simple-mfd nodes
  reset: berlin: convert to a platform driver
  ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes
  ARM: berlin: select MFD_SYSCON by default
parents e532ffea 5be23611
Loading
Loading
Loading
Loading
+52 −38
Original line number Original line Diff line number Diff line
@@ -56,7 +56,7 @@
		sdhci0: sdhci@ab0000 {
		sdhci0: sdhci@ab0000 {
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab0000 0x200>;
			reg = <0xab0000 0x200>;
			clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
			clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
			clock-names = "io", "core";
			clock-names = "io", "core";
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			status = "disabled";
@@ -65,7 +65,7 @@
		sdhci1: sdhci@ab0800 {
		sdhci1: sdhci@ab0800 {
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab0800 0x200>;
			reg = <0xab0800 0x200>;
			clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
			clock-names = "io", "core";
			clock-names = "io", "core";
			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			status = "disabled";
@@ -75,7 +75,7 @@
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab1000 0x200>;
			reg = <0xab1000 0x200>;
			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
			clock-names = "io", "core";
			clock-names = "io", "core";
			pinctrl-0 = <&emmc_pmux>;
			pinctrl-0 = <&emmc_pmux>;
			pinctrl-names = "default";
			pinctrl-names = "default";
@@ -105,13 +105,13 @@
			compatible = "arm,cortex-a9-twd-timer";
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0xad0600 0x20>;
			reg = <0xad0600 0x20>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
			clocks = <&chip CLKID_TWD>;
			clocks = <&chip_clk CLKID_TWD>;
		};
		};


		eth1: ethernet@b90000 {
		eth1: ethernet@b90000 {
			compatible = "marvell,pxa168-eth";
			compatible = "marvell,pxa168-eth";
			reg = <0xb90000 0x10000>;
			reg = <0xb90000 0x10000>;
			clocks = <&chip CLKID_GETH1>;
			clocks = <&chip_clk CLKID_GETH1>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			/* set by bootloader */
			/* set by bootloader */
			local-mac-address = [00 00 00 00 00 00];
			local-mac-address = [00 00 00 00 00 00];
@@ -134,7 +134,7 @@
		eth0: ethernet@e50000 {
		eth0: ethernet@e50000 {
			compatible = "marvell,pxa168-eth";
			compatible = "marvell,pxa168-eth";
			reg = <0xe50000 0x10000>;
			reg = <0xe50000 0x10000>;
			clocks = <&chip CLKID_GETH0>;
			clocks = <&chip_clk CLKID_GETH0>;
			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
			/* set by bootloader */
			/* set by bootloader */
			local-mac-address = [00 00 00 00 00 00];
			local-mac-address = [00 00 00 00 00 00];
@@ -233,7 +233,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c00 0x14>;
				reg = <0x2c00 0x14>;
				interrupts = <8>;
				interrupts = <8>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "okay";
				status = "okay";
			};
			};
@@ -242,7 +242,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c14 0x14>;
				reg = <0x2c14 0x14>;
				interrupts = <9>;
				interrupts = <9>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "okay";
				status = "okay";
			};
			};
@@ -251,7 +251,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c28 0x14>;
				reg = <0x2c28 0x14>;
				interrupts = <10>;
				interrupts = <10>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -260,7 +260,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c3c 0x14>;
				reg = <0x2c3c 0x14>;
				interrupts = <11>;
				interrupts = <11>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -269,7 +269,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c50 0x14>;
				reg = <0x2c50 0x14>;
				interrupts = <12>;
				interrupts = <12>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -278,7 +278,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c64 0x14>;
				reg = <0x2c64 0x14>;
				interrupts = <13>;
				interrupts = <13>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -287,7 +287,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c78 0x14>;
				reg = <0x2c78 0x14>;
				interrupts = <14>;
				interrupts = <14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -296,7 +296,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c8c 0x14>;
				reg = <0x2c8c 0x14>;
				interrupts = <15>;
				interrupts = <15>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -315,7 +315,7 @@
			compatible = "marvell,berlin2-ahci", "generic-ahci";
			compatible = "marvell,berlin2-ahci", "generic-ahci";
			reg = <0xe90000 0x1000>;
			reg = <0xe90000 0x1000>;
			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_SATA>;
			clocks = <&chip_clk CLKID_SATA>;
			#address-cells = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			#size-cells = <0>;


@@ -335,7 +335,7 @@
		sata_phy: phy@e900a0 {
		sata_phy: phy@e900a0 {
			compatible = "marvell,berlin2-sata-phy";
			compatible = "marvell,berlin2-sata-phy";
			reg = <0xe900a0 0x200>;
			reg = <0xe900a0 0x200>;
			clocks = <&chip CLKID_SATA>;
			clocks = <&chip_clk CLKID_SATA>;
			#address-cells = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			#size-cells = <0>;
			#phy-cells = <1>;
			#phy-cells = <1>;
@@ -351,12 +351,18 @@
		};
		};


		chip: chip-control@ea0000 {
		chip: chip-control@ea0000 {
			compatible = "marvell,berlin2-chip-ctrl";
			compatible = "simple-mfd", "syscon";
			#clock-cells = <1>;
			#reset-cells = <2>;
			reg = <0xea0000 0x400>;
			reg = <0xea0000 0x400>;

			chip_clk: clock {
				compatible = "marvell,berlin2-clk";
				#clock-cells = <1>;
				clocks = <&refclk>;
				clocks = <&refclk>;
				clock-names = "refclk";
				clock-names = "refclk";
			};

			soc_pinctrl: pin-controller {
				compatible = "marvell,berlin2-soc-pinctrl";


				emmc_pmux: emmc-pmux {
				emmc_pmux: emmc-pmux {
					groups = "G26";
					groups = "G26";
@@ -364,6 +370,12 @@
				};
				};
			};
			};


			chip_rst: reset {
				compatible = "marvell,berlin2-reset";
				#reset-cells = <2>;
			};
		};

		apb@fc0000 {
		apb@fc0000 {
			compatible = "simple-bus";
			compatible = "simple-bus";
			#address-cells = <1>;
			#address-cells = <1>;
@@ -442,9 +454,11 @@
			};
			};


			sysctrl: system-controller@d000 {
			sysctrl: system-controller@d000 {
				compatible = "marvell,berlin2-system-ctrl";
				compatible = "simple-mfd", "syscon";
				reg = <0xd000 0x100>;
				reg = <0xd000 0x100>;


				sys_pinctrl: pin-controller {
					compatible = "marvell,berlin2-system-pinctrl";
					uart0_pmux: uart0-pmux {
					uart0_pmux: uart0-pmux {
						groups = "GSM4";
						groups = "GSM4";
						function = "uart0";
						function = "uart0";
@@ -454,12 +468,12 @@
						groups = "GSM5";
						groups = "GSM5";
						function = "uart1";
						function = "uart1";
					};
					};

					uart2_pmux: uart2-pmux {
					uart2_pmux: uart2-pmux {
						groups = "GSM3";
						groups = "GSM3";
						function = "uart2";
						function = "uart2";
					};
					};
				};
				};
			};


			sic: interrupt-controller@e000 {
			sic: interrupt-controller@e000 {
				compatible = "snps,dw-apb-ictl";
				compatible = "snps,dw-apb-ictl";
+41 −25
Original line number Original line Diff line number Diff line
@@ -53,7 +53,7 @@
		sdhci0: sdhci@ab0000 {
		sdhci0: sdhci@ab0000 {
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab0000 0x200>;
			reg = <0xab0000 0x200>;
			clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
			clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
			clock-names = "io", "core";
			clock-names = "io", "core";
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			status = "disabled";
@@ -77,14 +77,14 @@
			compatible = "arm,cortex-a9-twd-timer";
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0xad0600 0x20>;
			reg = <0xad0600 0x20>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
			clocks = <&chip CLKID_TWD>;
			clocks = <&chip_clk CLKID_TWD>;
		};
		};


		usb_phy0: usb-phy@b74000 {
		usb_phy0: usb-phy@b74000 {
			compatible = "marvell,berlin2cd-usb-phy";
			compatible = "marvell,berlin2cd-usb-phy";
			reg = <0xb74000 0x128>;
			reg = <0xb74000 0x128>;
			#phy-cells = <0>;
			#phy-cells = <0>;
			resets = <&chip 0x178 23>;
			resets = <&chip_rst 0x178 23>;
			status = "disabled";
			status = "disabled";
		};
		};


@@ -92,14 +92,14 @@
			compatible = "marvell,berlin2cd-usb-phy";
			compatible = "marvell,berlin2cd-usb-phy";
			reg = <0xb78000 0x128>;
			reg = <0xb78000 0x128>;
			#phy-cells = <0>;
			#phy-cells = <0>;
			resets = <&chip 0x178 24>;
			resets = <&chip_rst 0x178 24>;
			status = "disabled";
			status = "disabled";
		};
		};


		eth1: ethernet@b90000 {
		eth1: ethernet@b90000 {
			compatible = "marvell,pxa168-eth";
			compatible = "marvell,pxa168-eth";
			reg = <0xb90000 0x10000>;
			reg = <0xb90000 0x10000>;
			clocks = <&chip CLKID_GETH1>;
			clocks = <&chip_clk CLKID_GETH1>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			/* set by bootloader */
			/* set by bootloader */
			local-mac-address = [00 00 00 00 00 00];
			local-mac-address = [00 00 00 00 00 00];
@@ -117,7 +117,7 @@
		eth0: ethernet@e50000 {
		eth0: ethernet@e50000 {
			compatible = "marvell,pxa168-eth";
			compatible = "marvell,pxa168-eth";
			reg = <0xe50000 0x10000>;
			reg = <0xe50000 0x10000>;
			clocks = <&chip CLKID_GETH0>;
			clocks = <&chip_clk CLKID_GETH0>;
			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
			/* set by bootloader */
			/* set by bootloader */
			local-mac-address = [00 00 00 00 00 00];
			local-mac-address = [00 00 00 00 00 00];
@@ -216,7 +216,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c00 0x14>;
				reg = <0x2c00 0x14>;
				interrupts = <8>;
				interrupts = <8>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "okay";
				status = "okay";
			};
			};
@@ -225,7 +225,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c14 0x14>;
				reg = <0x2c14 0x14>;
				interrupts = <9>;
				interrupts = <9>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "okay";
				status = "okay";
			};
			};
@@ -234,7 +234,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c28 0x14>;
				reg = <0x2c28 0x14>;
				interrupts = <10>;
				interrupts = <10>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -243,7 +243,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c3c 0x14>;
				reg = <0x2c3c 0x14>;
				interrupts = <11>;
				interrupts = <11>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -252,7 +252,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c50 0x14>;
				reg = <0x2c50 0x14>;
				interrupts = <12>;
				interrupts = <12>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -261,7 +261,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c64 0x14>;
				reg = <0x2c64 0x14>;
				interrupts = <13>;
				interrupts = <13>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -270,7 +270,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c78 0x14>;
				reg = <0x2c78 0x14>;
				interrupts = <14>;
				interrupts = <14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -279,7 +279,7 @@
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c8c 0x14>;
				reg = <0x2c8c 0x14>;
				interrupts = <15>;
				interrupts = <15>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -295,12 +295,18 @@
		};
		};


		chip: chip-control@ea0000 {
		chip: chip-control@ea0000 {
			compatible = "marvell,berlin2cd-chip-ctrl";
			compatible = "simple-mfd", "syscon";
			#clock-cells = <1>;
			#reset-cells = <2>;
			reg = <0xea0000 0x400>;
			reg = <0xea0000 0x400>;

			chip_clk: clock {
				compatible = "marvell,berlin2-clk";
				#clock-cells = <1>;
				clocks = <&refclk>;
				clocks = <&refclk>;
				clock-names = "refclk";
				clock-names = "refclk";
			};

			soc_pinctrl: pin-controller {
				compatible = "marvell,berlin2cd-soc-pinctrl";


				uart0_pmux: uart0-pmux {
				uart0_pmux: uart0-pmux {
					groups = "G6";
					groups = "G6";
@@ -308,11 +314,17 @@
				};
				};
			};
			};


			chip_rst: reset {
				compatible = "marvell,berlin2-reset";
				#reset-cells = <2>;
			};
		};

		usb0: usb@ed0000 {
		usb0: usb@ed0000 {
			compatible = "chipidea,usb2";
			compatible = "chipidea,usb2";
			reg = <0xed0000 0x200>;
			reg = <0xed0000 0x200>;
			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_USB0>;
			clocks = <&chip_clk CLKID_USB0>;
			phys = <&usb_phy0>;
			phys = <&usb_phy0>;
			phy-names = "usb-phy";
			phy-names = "usb-phy";
			status = "disabled";
			status = "disabled";
@@ -322,7 +334,7 @@
			compatible = "chipidea,usb2";
			compatible = "chipidea,usb2";
			reg = <0xee0000 0x200>;
			reg = <0xee0000 0x200>;
			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_USB1>;
			clocks = <&chip_clk CLKID_USB1>;
			phys = <&usb_phy1>;
			phys = <&usb_phy1>;
			phy-names = "usb-phy";
			phy-names = "usb-phy";
			status = "disabled";
			status = "disabled";
@@ -389,8 +401,12 @@
			};
			};


			sysctrl: system-controller@d000 {
			sysctrl: system-controller@d000 {
				compatible = "marvell,berlin2cd-system-ctrl";
				compatible = "simple-mfd", "syscon";
				reg = <0xd000 0x100>;
				reg = <0xd000 0x100>;

				sys_pinctrl: pin-controller {
					compatible = "marvell,berlin2cd-system-pinctrl";
				};
			};
			};


			sic: interrupt-controller@e000 {
			sic: interrupt-controller@e000 {
+71 −49
Original line number Original line Diff line number Diff line
@@ -74,7 +74,7 @@
		sdhci0: sdhci@ab0000 {
		sdhci0: sdhci@ab0000 {
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab0000 0x200>;
			reg = <0xab0000 0x200>;
			clocks = <&chip CLKID_SDIO1XIN>;
			clocks = <&chip_clk CLKID_SDIO1XIN>;
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			status = "disabled";
		};
		};
@@ -82,7 +82,7 @@
		sdhci1: sdhci@ab0800 {
		sdhci1: sdhci@ab0800 {
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab0800 0x200>;
			reg = <0xab0800 0x200>;
			clocks = <&chip CLKID_SDIO1XIN>;
			clocks = <&chip_clk CLKID_SDIO1XIN>;
			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			status = "disabled";
		};
		};
@@ -91,7 +91,7 @@
			compatible = "mrvl,pxav3-mmc";
			compatible = "mrvl,pxav3-mmc";
			reg = <0xab1000 0x200>;
			reg = <0xab1000 0x200>;
			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
			clock-names = "io", "core";
			clock-names = "io", "core";
			status = "disabled";
			status = "disabled";
		};
		};
@@ -112,7 +112,7 @@
		local-timer@ad0600 {
		local-timer@ad0600 {
			compatible = "arm,cortex-a9-twd-timer";
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0xad0600 0x20>;
			reg = <0xad0600 0x20>;
			clocks = <&chip CLKID_TWD>;
			clocks = <&chip_clk CLKID_TWD>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
		};
		};


@@ -127,7 +127,7 @@
			compatible = "marvell,berlin2-usb-phy";
			compatible = "marvell,berlin2-usb-phy";
			reg = <0xa2f400 0x128>;
			reg = <0xa2f400 0x128>;
			#phy-cells = <0>;
			#phy-cells = <0>;
			resets = <&chip 0x104 14>;
			resets = <&chip_rst 0x104 14>;
			status = "disabled";
			status = "disabled";
		};
		};


@@ -135,7 +135,7 @@
			compatible = "chipidea,usb2";
			compatible = "chipidea,usb2";
			reg = <0xa30000 0x10000>;
			reg = <0xa30000 0x10000>;
			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_USB2>;
			clocks = <&chip_clk CLKID_USB2>;
			phys = <&usb_phy2>;
			phys = <&usb_phy2>;
			phy-names = "usb-phy";
			phy-names = "usb-phy";
			status = "disabled";
			status = "disabled";
@@ -145,7 +145,7 @@
			compatible = "marvell,berlin2-usb-phy";
			compatible = "marvell,berlin2-usb-phy";
			reg = <0xb74000 0x128>;
			reg = <0xb74000 0x128>;
			#phy-cells = <0>;
			#phy-cells = <0>;
			resets = <&chip 0x104 12>;
			resets = <&chip_rst 0x104 12>;
			status = "disabled";
			status = "disabled";
		};
		};


@@ -153,14 +153,14 @@
			compatible = "marvell,berlin2-usb-phy";
			compatible = "marvell,berlin2-usb-phy";
			reg = <0xb78000 0x128>;
			reg = <0xb78000 0x128>;
			#phy-cells = <0>;
			#phy-cells = <0>;
			resets = <&chip 0x104 13>;
			resets = <&chip_rst 0x104 13>;
			status = "disabled";
			status = "disabled";
		};
		};


		eth0: ethernet@b90000 {
		eth0: ethernet@b90000 {
			compatible = "marvell,pxa168-eth";
			compatible = "marvell,pxa168-eth";
			reg = <0xb90000 0x10000>;
			reg = <0xb90000 0x10000>;
			clocks = <&chip CLKID_GETH0>;
			clocks = <&chip_clk CLKID_GETH0>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
			/* set by bootloader */
			/* set by bootloader */
			local-mac-address = [00 00 00 00 00 00];
			local-mac-address = [00 00 00 00 00 00];
@@ -267,7 +267,7 @@
				reg = <0x1400 0x100>;
				reg = <0x1400 0x100>;
				interrupt-parent = <&aic>;
				interrupt-parent = <&aic>;
				interrupts = <4>;
				interrupts = <4>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				pinctrl-0 = <&twsi0_pmux>;
				pinctrl-0 = <&twsi0_pmux>;
				pinctrl-names = "default";
				pinctrl-names = "default";
				status = "disabled";
				status = "disabled";
@@ -280,7 +280,7 @@
				reg = <0x1800 0x100>;
				reg = <0x1800 0x100>;
				interrupt-parent = <&aic>;
				interrupt-parent = <&aic>;
				interrupts = <5>;
				interrupts = <5>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				pinctrl-0 = <&twsi1_pmux>;
				pinctrl-0 = <&twsi1_pmux>;
				pinctrl-names = "default";
				pinctrl-names = "default";
				status = "disabled";
				status = "disabled";
@@ -289,7 +289,7 @@
			timer0: timer@2c00 {
			timer0: timer@2c00 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c00 0x14>;
				reg = <0x2c00 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				interrupts = <8>;
				interrupts = <8>;
			};
			};
@@ -297,14 +297,14 @@
			timer1: timer@2c14 {
			timer1: timer@2c14 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c14 0x14>;
				reg = <0x2c14 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
			};
			};


			timer2: timer@2c28 {
			timer2: timer@2c28 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c28 0x14>;
				reg = <0x2c28 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -312,7 +312,7 @@
			timer3: timer@2c3c {
			timer3: timer@2c3c {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c3c 0x14>;
				reg = <0x2c3c 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -320,7 +320,7 @@
			timer4: timer@2c50 {
			timer4: timer@2c50 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c50 0x14>;
				reg = <0x2c50 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -328,7 +328,7 @@
			timer5: timer@2c64 {
			timer5: timer@2c64 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c64 0x14>;
				reg = <0x2c64 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -336,7 +336,7 @@
			timer6: timer@2c78 {
			timer6: timer@2c78 {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c78 0x14>;
				reg = <0x2c78 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -344,7 +344,7 @@
			timer7: timer@2c8c {
			timer7: timer@2c8c {
				compatible = "snps,dw-apb-timer";
				compatible = "snps,dw-apb-timer";
				reg = <0x2c8c 0x14>;
				reg = <0x2c8c 0x14>;
				clocks = <&chip CLKID_CFG>;
				clocks = <&chip_clk CLKID_CFG>;
				clock-names = "timer";
				clock-names = "timer";
				status = "disabled";
				status = "disabled";
			};
			};
@@ -360,12 +360,18 @@
		};
		};


		chip: chip-control@ea0000 {
		chip: chip-control@ea0000 {
			compatible = "marvell,berlin2q-chip-ctrl";
			compatible = "simple-mfd", "syscon";
			#clock-cells = <1>;
			#reset-cells = <2>;
			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
			reg = <0xea0000 0x400>, <0xdd0170 0x10>;

			chip_clk: clock {
				compatible = "marvell,berlin2q-clk";
				#clock-cells = <1>;
				clocks = <&refclk>;
				clocks = <&refclk>;
				clock-names = "refclk";
				clock-names = "refclk";
			};

			soc_pinctrl: pin-controller {
				compatible = "marvell,berlin2q-soc-pinctrl";


				twsi0_pmux: twsi0-pmux {
				twsi0_pmux: twsi0-pmux {
					groups = "G6";
					groups = "G6";
@@ -378,11 +384,17 @@
				};
				};
			};
			};


			chip_rst: reset {
				compatible = "marvell,berlin2-reset";
				#reset-cells = <2>;
			};
		};

		ahci: sata@e90000 {
		ahci: sata@e90000 {
			compatible = "marvell,berlin2q-ahci", "generic-ahci";
			compatible = "marvell,berlin2q-ahci", "generic-ahci";
			reg = <0xe90000 0x1000>;
			reg = <0xe90000 0x1000>;
			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_SATA>;
			clocks = <&chip_clk CLKID_SATA>;
			#address-cells = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			#size-cells = <0>;


@@ -402,7 +414,7 @@
		sata_phy: phy@e900a0 {
		sata_phy: phy@e900a0 {
			compatible = "marvell,berlin2q-sata-phy";
			compatible = "marvell,berlin2q-sata-phy";
			reg = <0xe900a0 0x200>;
			reg = <0xe900a0 0x200>;
			clocks = <&chip CLKID_SATA>;
			clocks = <&chip_clk CLKID_SATA>;
			#address-cells = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			#size-cells = <0>;
			#phy-cells = <1>;
			#phy-cells = <1>;
@@ -421,7 +433,7 @@
			compatible = "chipidea,usb2";
			compatible = "chipidea,usb2";
			reg = <0xed0000 0x10000>;
			reg = <0xed0000 0x10000>;
			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_USB0>;
			clocks = <&chip_clk CLKID_USB0>;
			phys = <&usb_phy0>;
			phys = <&usb_phy0>;
			phy-names = "usb-phy";
			phy-names = "usb-phy";
			status = "disabled";
			status = "disabled";
@@ -431,7 +443,7 @@
			compatible = "chipidea,usb2";
			compatible = "chipidea,usb2";
			reg = <0xee0000 0x10000>;
			reg = <0xee0000 0x10000>;
			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&chip CLKID_USB1>;
			clocks = <&chip_clk CLKID_USB1>;
			phys = <&usb_phy1>;
			phys = <&usb_phy1>;
			phy-names = "usb-phy";
			phy-names = "usb-phy";
			status = "disabled";
			status = "disabled";
@@ -526,9 +538,12 @@
			};
			};


			sysctrl: pin-controller@d000 {
			sysctrl: pin-controller@d000 {
				compatible = "marvell,berlin2q-system-ctrl";
				compatible = "simple-mfd", "syscon";
				reg = <0xd000 0x100>;
				reg = <0xd000 0x100>;


				sys_pinctrl: pin-controller {
					compatible = "marvell,berlin2q-system-pinctrl";

					uart0_pmux: uart0-pmux {
					uart0_pmux: uart0-pmux {
						groups = "GSM12";
						groups = "GSM12";
						function = "uart0";
						function = "uart0";
@@ -550,6 +565,13 @@
					};
					};
				};
				};


				adc: adc {
					compatible = "marvell,berlin2-adc";
					interrupts = <12>, <14>;
					interrupt-names = "adc", "tsen";
				};
			};

			sic: interrupt-controller@e000 {
			sic: interrupt-controller@e000 {
				compatible = "snps,dw-apb-ictl";
				compatible = "snps,dw-apb-ictl";
				reg = <0xe000 0x30>;
				reg = <0xe000 0x30>;
+1 −0
Original line number Original line Diff line number Diff line
@@ -6,6 +6,7 @@ menuconfig ARCH_BERLIN
	select DW_APB_ICTL
	select DW_APB_ICTL
	select DW_APB_TIMER_OF
	select DW_APB_TIMER_OF
	select GENERIC_IRQ_CHIP
	select GENERIC_IRQ_CHIP
	select MFD_SYSCON
	select PINCTRL
	select PINCTRL


if ARCH_BERLIN
if ARCH_BERLIN
+3 −4
Original line number Original line Diff line number Diff line
@@ -502,12 +502,13 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = {


static void __init berlin2_clock_setup(struct device_node *np)
static void __init berlin2_clock_setup(struct device_node *np)
{
{
	struct device_node *parent_np = of_get_parent(np);
	const char *parent_names[9];
	const char *parent_names[9];
	struct clk *clk;
	struct clk *clk;
	u8 avpll_flags = 0;
	u8 avpll_flags = 0;
	int n;
	int n;


	gbase = of_iomap(np, 0);
	gbase = of_iomap(parent_np, 0);
	if (!gbase)
	if (!gbase)
		return;
		return;


@@ -685,7 +686,5 @@ static void __init berlin2_clock_setup(struct device_node *np)
bg2_fail:
bg2_fail:
	iounmap(gbase);
	iounmap(gbase);
}
}
CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
	       berlin2_clock_setup);
CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
	       berlin2_clock_setup);
	       berlin2_clock_setup);
Loading