From 2523cc91e6c7ca570d8d04db2035f6b2eb2341f2 Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 16 Nov 2015 18:43:37 +0800 Subject: [PATCH 1/6] arm: dts: berlin2q-marvell-dmp: remove broken-cd from eMMC node The eMMC is non-removable so is marked with the non-removable DT property to avoid having to redetect it after a suspend/resume. But it also has the broken-cd property which is wrong since only one of the DT properties for card detection should be used Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2q-marvell-dmp.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts index da28c9704a9d..cdcf89bfec33 100644 --- a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts +++ b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts @@ -94,7 +94,6 @@ }; &sdhci2 { - broken-cd; bus-width = <8>; non-removable; status = "okay"; From 5ee90578bbe82e06eae8a83f8676ec0ee95b8224 Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 16 Nov 2015 18:46:31 +0800 Subject: [PATCH 2/6] arm: dts: berlin2q: remove duplicated interrupt-parent The default interrupt-parent has been set in the upper layer, apb@e80000 and apb@fc0000 for example. So if the interrupt-parent isn't changed, we don't need to set it again. This patch removes the dumplicated interrupt-parent settings. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2q.dtsi | 6 ------ 1 file changed, 6 deletions(-) diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi index 8ea177f375dd..155430a2d747 100644 --- a/arch/arm/boot/dts/berlin2q.dtsi +++ b/arch/arm/boot/dts/berlin2q.dtsi @@ -309,7 +309,6 @@ #address-cells = <1>; #size-cells = <0>; reg = <0x1400 0x100>; - interrupt-parent = <&aic>; interrupts = <4>; clocks = <&chip_clk CLKID_CFG>; pinctrl-0 = <&twsi0_pmux>; @@ -322,7 +321,6 @@ #address-cells = <1>; #size-cells = <0>; reg = <0x1800 0x100>; - interrupt-parent = <&aic>; interrupts = <5>; clocks = <&chip_clk CLKID_CFG>; pinctrl-0 = <&twsi1_pmux>; @@ -528,7 +526,6 @@ #address-cells = <1>; #size-cells = <0>; reg = <0x7000 0x100>; - interrupt-parent = <&sic>; interrupts = <6>; clocks = <&refclk>; pinctrl-0 = <&twsi2_pmux>; @@ -541,7 +538,6 @@ #address-cells = <1>; #size-cells = <0>; reg = <0x8000 0x100>; - interrupt-parent = <&sic>; interrupts = <7>; clocks = <&refclk>; pinctrl-0 = <&twsi3_pmux>; @@ -552,7 +548,6 @@ uart0: uart@9000 { compatible = "snps,dw-apb-uart"; reg = <0x9000 0x100>; - interrupt-parent = <&sic>; interrupts = <8>; clocks = <&refclk>; reg-shift = <2>; @@ -564,7 +559,6 @@ uart1: uart@a000 { compatible = "snps,dw-apb-uart"; reg = <0xa000 0x100>; - interrupt-parent = <&sic>; interrupts = <9>; clocks = <&refclk>; reg-shift = <2>; From a94eaa98d402d6337392c040fe29f5fa50e859db Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 16 Nov 2015 19:09:47 +0800 Subject: [PATCH 3/6] arm: dts: berlin2q: add watchdog nodes The Marvell Berlin BG2Q has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2q.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi index 155430a2d747..4241a615a74f 100644 --- a/arch/arm/boot/dts/berlin2q.dtsi +++ b/arch/arm/boot/dts/berlin2q.dtsi @@ -506,6 +506,29 @@ ranges = <0 0xfc0000 0x10000>; interrupt-parent = <&sic>; + wdt0: watchdog@1000 { + compatible = "snps,dw-wdt"; + reg = <0x1000 0x100>; + clocks = <&refclk>; + interrupts = <0>; + }; + + wdt1: watchdog@2000 { + compatible = "snps,dw-wdt"; + reg = <0x2000 0x100>; + clocks = <&refclk>; + interrupts = <1>; + status = "disabled"; + }; + + wdt2: watchdog@3000 { + compatible = "snps,dw-wdt"; + reg = <0x3000 0x100>; + clocks = <&refclk>; + interrupts = <2>; + status = "disabled"; + }; + sm_gpio1: gpio@5000 { compatible = "snps,dw-apb-gpio"; reg = <0x5000 0x400>; From 096d74d7be2ed32f1d5904bb57caf60b1f10e713 Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 16 Nov 2015 19:09:48 +0800 Subject: [PATCH 4/6] arm: dts: berlin2cd: add watchdog nodes The Marvell Berlin BG2CD has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. NOTE: although BG2CD doesn't have a HW sysmgr, but the sysmgr domain exists. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2cd.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi index b16df157214d..6d06b6118d83 100644 --- a/arch/arm/boot/dts/berlin2cd.dtsi +++ b/arch/arm/boot/dts/berlin2cd.dtsi @@ -396,6 +396,29 @@ ranges = <0 0xfc0000 0x10000>; interrupt-parent = <&sic>; + wdt0: watchdog@1000 { + compatible = "snps,dw-wdt"; + reg = <0x1000 0x100>; + clocks = <&refclk>; + interrupts = <0>; + }; + + wdt1: watchdog@2000 { + compatible = "snps,dw-wdt"; + reg = <0x2000 0x100>; + clocks = <&refclk>; + interrupts = <1>; + status = "disabled"; + }; + + wdt2: watchdog@3000 { + compatible = "snps,dw-wdt"; + reg = <0x3000 0x100>; + clocks = <&refclk>; + interrupts = <2>; + status = "disabled"; + }; + sm_gpio1: gpio@5000 { compatible = "snps,dw-apb-gpio"; reg = <0x5000 0x400>; From 4b6c390b63ee4b1c9a4c53885fea01c1c4e0d87b Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 16 Nov 2015 19:09:49 +0800 Subject: [PATCH 5/6] arm: dts: berlin2: add watchdog nodes The Marvell Berlin BG2 has 3 watchdogs which are compatible with the snps,dw-wdt driver sit in the sysmgr domain. This patch adds the corresponding device tree nodes. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi index eaadac3bdd44..ae81009741ff 100644 --- a/arch/arm/boot/dts/berlin2.dtsi +++ b/arch/arm/boot/dts/berlin2.dtsi @@ -435,6 +435,29 @@ ranges = <0 0xfc0000 0x10000>; interrupt-parent = <&sic>; + wdt0: watchdog@1000 { + compatible = "snps,dw-wdt"; + reg = <0x1000 0x100>; + clocks = <&refclk>; + interrupts = <0>; + }; + + wdt1: watchdog@2000 { + compatible = "snps,dw-wdt"; + reg = <0x2000 0x100>; + clocks = <&refclk>; + interrupts = <1>; + status = "disabled"; + }; + + wdt2: watchdog@3000 { + compatible = "snps,dw-wdt"; + reg = <0x3000 0x100>; + clocks = <&refclk>; + interrupts = <2>; + status = "disabled"; + }; + sm_gpio1: gpio@5000 { compatible = "snps,dw-apb-gpio"; reg = <0x5000 0x400>; From ac4111abf3521dfb3038c44c053f7c43ee1fb1bd Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Mon, 30 Nov 2015 21:54:39 +0800 Subject: [PATCH 6/6] arm: dts: berlin2q-marvell-dmp: add sdhci1 fully functionality The sdhci1 on Marvell BG2Q DMP board is used as sdcard interface, we have gpios for card detection, write-protect, vqmmc and vmmc. This patch adds pinmux for this sdcard interface, then adds regulators for vmmc and vqmmc, lastly adds cd-gpios, wp-gpios properties. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth --- arch/arm/boot/dts/berlin2q-marvell-dmp.dts | 37 ++++++++++++++++++++-- arch/arm/boot/dts/berlin2q.dtsi | 5 +++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts index cdcf89bfec33..33b28757b8f6 100644 --- a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts +++ b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts @@ -84,12 +84,45 @@ gpio = <&portb 12 GPIO_ACTIVE_HIGH>; enable-active-high; }; + + reg_sdio1_vmmc: regulator@3 { + compatible = "regulator-fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "sdio1_vmmc"; + enable-active-high; + regulator-boot-on; + gpio = <&portb 21 GPIO_ACTIVE_HIGH>; + }; + + reg_sdio1_vqmmc: regulator@4 { + compatible = "regulator-gpio"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-name = "sdio1_vqmmc"; + regulator-type = "voltage"; + enable-active-high; + gpios = <&portb 16 GPIO_ACTIVE_HIGH>; + states = <3300000 0x1 + 1800000 0x0>; + }; + }; +}; + +&soc_pinctrl { + sd1gpio_pmux: sd1pwr-pmux { + groups = "G23", "G32"; + function = "gpio"; }; }; &sdhci1 { - broken-cd; - sdhci,wp-inverted; + vmmc-supply = <®_sdio1_vmmc>; + vqmmc-supply = <®_sdio1_vqmmc>; + cd-gpios = <&portc 30 GPIO_ACTIVE_LOW>; + wp-gpios = <&portd 0 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&sd1gpio_pmux>, <&sd1_pmux>; + pinctrl-names = "default"; status = "okay"; }; diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi index 4241a615a74f..5f0abf6a89eb 100644 --- a/arch/arm/boot/dts/berlin2q.dtsi +++ b/arch/arm/boot/dts/berlin2q.dtsi @@ -415,6 +415,11 @@ soc_pinctrl: pin-controller { compatible = "marvell,berlin2q-soc-pinctrl"; + sd1_pmux: sd1-pmux { + groups = "G31"; + function = "sd1"; + }; + twsi0_pmux: twsi0-pmux { groups = "G6"; function = "twsi0";