diff mbox series

[5/6] ARM: dts: s5pv210: aries: Support for more devices present on Aries

Message ID 20181228161819.18931-6-pawel.mikolaj.chmiel@gmail.com (mailing list archive)
State New, archived
Headers show
Series ARM: dts: s5pv210: aries: Enable more drivers present on Samsung Aries based devices | expand

Commit Message

Paweł Chmiel Dec. 28, 2018, 4:18 p.m. UTC
From: Jonathan Bakker <xc-racer2@live.ca>

This commit enables following devices present on Aries based phones:
- pwm-vibrator attached to PWM 1
- poweroff support
- Atmel maXTouch touchscreen. It's connected to i2c2
- Broadcom BCM4329 bluetooth over uart0

Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
---
 arch/arm/boot/dts/s5pv210-aries.dtsi | 68 ++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

Comments

Krzysztof Kozlowski Dec. 31, 2018, 1:35 p.m. UTC | #1
On Fri, 28 Dec 2018 at 17:18, Paweł Chmiel
<pawel.mikolaj.chmiel@gmail.com> wrote:
>
> From: Jonathan Bakker <xc-racer2@live.ca>
>
> This commit enables following devices present on Aries based phones:
> - pwm-vibrator attached to PWM 1
> - poweroff support
> - Atmel maXTouch touchscreen. It's connected to i2c2
> - Broadcom BCM4329 bluetooth over uart0
>
> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> ---
>  arch/arm/boot/dts/s5pv210-aries.dtsi | 68 ++++++++++++++++++++++++++++
>  1 file changed, 68 insertions(+)
>
> diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi
> index 35ba009a1a33..b7246f879648 100644
> --- a/arch/arm/boot/dts/s5pv210-aries.dtsi
> +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi
> @@ -41,6 +41,13 @@
>                 };
>         };
>
> +       vibrator_pwr: regulator-fixed-0 {
> +               compatible = "regulator-fixed";
> +               regulator-name = "vibrator-en";
> +               enable-active-high;
> +               gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
> +       };
> +
>         wifi_pwrseq: wifi-pwrseq {
>                 compatible = "mmc-pwrseq-simple";
>                 reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
> @@ -314,6 +321,22 @@
>                         reg = <0x36>;
>                 };
>         };
> +
> +       vibrator: pwm-vibrator {
> +               compatible = "pwm-vibrator";
> +               pwms = <&pwm 1 44642 0>;
> +               pwm-names = "enable";
> +               vcc-supply = <&vibrator_pwr>;
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pwm1_out>;
> +       };
> +
> +       poweroff: syscon-poweroff {
> +               compatible = "syscon-poweroff";
> +               regmap = <&pmu_syscon>;
> +               offset = <0x681c>; /* PS_HOLD_CONTROL */
> +               value = <0x5200>;
> +       };
>  };
>
>  &fimd {
> @@ -347,6 +370,23 @@
>         status = "okay";
>  };
>
> +&i2c2 {
> +       samsung,i2c-sda-delay = <100>;
> +       samsung,i2c-max-bus-freq = <400000>;
> +       samsung,i2c-slave-addr = <0x10>;
> +       status = "okay";
> +
> +       touchscreen@4a {
> +               compatible = "atmel,maxtouch";
> +               reg = <0x4a>;
> +               interrupt-parent = <&gpj0>;
> +               interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&ts_irq>;
> +               reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>;
> +       };
> +};
> +
>  &mfc {
>         memory-region = <&mfc_left>, <&mfc_right>;
>  };
> @@ -372,6 +412,13 @@
>                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>         };
>
> +       bt_host_wake: bt-host-wake {
> +               samsung,pins = "gph2-5";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> +               samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
> +               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +       };
> +
>         tf_detect: tf-detect {
>                 samsung,pins = "gph3-4";
>                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> @@ -384,6 +431,17 @@
>                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>                 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
>         };
> +
> +       ts_irq: ts-irq {
> +               samsung,pins = "gpj0-5";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> +               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;

It seems there is a difference here between Aries and Fascinate. At
least in vendor kernel. One disables pull and second pulls down.
Anyway neither of them pulls it up.

Best regards,
Krzysztof
Paweł Chmiel Jan. 8, 2019, 4:53 p.m. UTC | #2
Dnia poniedziałek, 31 grudnia 2018 14:35:55 CET Krzysztof Kozlowski pisze:
> On Fri, 28 Dec 2018 at 17:18, Paweł Chmiel
> <pawel.mikolaj.chmiel@gmail.com> wrote:
> >
> > From: Jonathan Bakker <xc-racer2@live.ca>
> >
> > This commit enables following devices present on Aries based phones:
> > - pwm-vibrator attached to PWM 1
> > - poweroff support
> > - Atmel maXTouch touchscreen. It's connected to i2c2
> > - Broadcom BCM4329 bluetooth over uart0
> >
> > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
> > Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> > ---
> >  arch/arm/boot/dts/s5pv210-aries.dtsi | 68 ++++++++++++++++++++++++++++
> >  1 file changed, 68 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi
> > index 35ba009a1a33..b7246f879648 100644
> > --- a/arch/arm/boot/dts/s5pv210-aries.dtsi
> > +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi
> > @@ -41,6 +41,13 @@
> >                 };
> >         };
> >
> > +       vibrator_pwr: regulator-fixed-0 {
> > +               compatible = "regulator-fixed";
> > +               regulator-name = "vibrator-en";
> > +               enable-active-high;
> > +               gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
> > +       };
> > +
> >         wifi_pwrseq: wifi-pwrseq {
> >                 compatible = "mmc-pwrseq-simple";
> >                 reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
> > @@ -314,6 +321,22 @@
> >                         reg = <0x36>;
> >                 };
> >         };
> > +
> > +       vibrator: pwm-vibrator {
> > +               compatible = "pwm-vibrator";
> > +               pwms = <&pwm 1 44642 0>;
> > +               pwm-names = "enable";
> > +               vcc-supply = <&vibrator_pwr>;
> > +               pinctrl-names = "default";
> > +               pinctrl-0 = <&pwm1_out>;
> > +       };
> > +
> > +       poweroff: syscon-poweroff {
> > +               compatible = "syscon-poweroff";
> > +               regmap = <&pmu_syscon>;
> > +               offset = <0x681c>; /* PS_HOLD_CONTROL */
> > +               value = <0x5200>;
> > +       };
> >  };
> >
> >  &fimd {
> > @@ -347,6 +370,23 @@
> >         status = "okay";
> >  };
> >
> > +&i2c2 {
> > +       samsung,i2c-sda-delay = <100>;
> > +       samsung,i2c-max-bus-freq = <400000>;
> > +       samsung,i2c-slave-addr = <0x10>;
> > +       status = "okay";
> > +
> > +       touchscreen@4a {
> > +               compatible = "atmel,maxtouch";
> > +               reg = <0x4a>;
> > +               interrupt-parent = <&gpj0>;
> > +               interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> > +               pinctrl-names = "default";
> > +               pinctrl-0 = <&ts_irq>;
> > +               reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>;
> > +       };
> > +};
> > +
> >  &mfc {
> >         memory-region = <&mfc_left>, <&mfc_right>;
> >  };
> > @@ -372,6 +412,13 @@
> >                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> >         };
> >
> > +       bt_host_wake: bt-host-wake {
> > +               samsung,pins = "gph2-5";
> > +               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> > +               samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
> > +               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> > +       };
> > +
> >         tf_detect: tf-detect {
> >                 samsung,pins = "gph3-4";
> >                 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> > @@ -384,6 +431,17 @@
> >                 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> >                 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
> >         };
> > +
> > +       ts_irq: ts-irq {
> > +               samsung,pins = "gpj0-5";
> > +               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
> > +               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
> 
> It seems there is a difference here between Aries and Fascinate. At
> least in vendor kernel. One disables pull and second pulls down.
> Anyway neither of them pulls it up.
Fixed with all other issues in v2.
Thanks

> 
> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi
index 35ba009a1a33..b7246f879648 100644
--- a/arch/arm/boot/dts/s5pv210-aries.dtsi
+++ b/arch/arm/boot/dts/s5pv210-aries.dtsi
@@ -41,6 +41,13 @@ 
 		};
 	};
 
+	vibrator_pwr: regulator-fixed-0 {
+		compatible = "regulator-fixed";
+		regulator-name = "vibrator-en";
+		enable-active-high;
+		gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
+	};
+
 	wifi_pwrseq: wifi-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
@@ -314,6 +321,22 @@ 
 			reg = <0x36>;
 		};
 	};
+
+	vibrator: pwm-vibrator {
+		compatible = "pwm-vibrator";
+		pwms = <&pwm 1 44642 0>;
+		pwm-names = "enable";
+		vcc-supply = <&vibrator_pwr>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pwm1_out>;
+	};
+
+	poweroff: syscon-poweroff {
+		compatible = "syscon-poweroff";
+		regmap = <&pmu_syscon>;
+		offset = <0x681c>; /* PS_HOLD_CONTROL */
+		value = <0x5200>;
+	};
 };
 
 &fimd {
@@ -347,6 +370,23 @@ 
 	status = "okay";
 };
 
+&i2c2 {
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <400000>;
+	samsung,i2c-slave-addr = <0x10>;
+	status = "okay";
+
+	touchscreen@4a {
+		compatible = "atmel,maxtouch";
+		reg = <0x4a>;
+		interrupt-parent = <&gpj0>;
+		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&ts_irq>;
+		reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>;
+	};
+};
+
 &mfc {
 	memory-region = <&mfc_left>, <&mfc_right>;
 };
@@ -372,6 +412,13 @@ 
 		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 	};
 
+	bt_host_wake: bt-host-wake {
+		samsung,pins = "gph2-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+		samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+	};
+
 	tf_detect: tf-detect {
 		samsung,pins = "gph3-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
@@ -384,6 +431,17 @@ 
 		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
+
+	ts_irq: ts-irq {
+		samsung,pins = "gpj0-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+	};
+};
+
+&pwm {
+	samsung,pwm-outputs = <1>;
 };
 
 &sdhci1 {
@@ -421,6 +479,16 @@ 
 
 &uart0 {
 	status = "okay";
+
+	bluetooth {
+		compatible = "brcm,bcm43438-bt";
+		max-speed = <115200>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake>;
+		shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
+		device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
+		host-wakeup-gpios = <&gph2 5 GPIO_ACTIVE_HIGH>;
+	};
 };
 
 &uart1 {