ARM: dts: s5pv210: Add si470x FM radio to Galaxy S
authorPaweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
Fri, 1 May 2020 23:50:12 +0000 (16:50 -0700)
committerKrzysztof Kozlowski <krzk@kernel.org>
Mon, 4 May 2020 15:13:04 +0000 (17:13 +0200)
Add support for the Silicon Labs si4709 FM radio, which can be found
on Galaxy S GT-i9000 (but not on most of other Aries variants).

Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/s5pv210-aries.dtsi
arch/arm/boot/dts/s5pv210-galaxys.dts

index a374870..0fa3de3 100644 (file)
@@ -11,7 +11,7 @@
 / {
        compatible = "samsung,aries", "samsung,s5pv210";
 
-       aliases {
+       aliases: aliases {
                i2c4 = &i2c_sound;
                i2c5 = &i2c_accel;
                i2c6 = &i2c_pmic;
index 9bf4a5b..a99fdda 100644 (file)
                        wakeup-source;
                };
        };
+
+       i2c_fmradio: i2c-gpio-8 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&fm_i2c_pins>;
+
+               fmradio@10 {
+                       compatible = "silabs,si470x";
+                       reg = <0x10>;
+                       interrupt-parent = <&gpj2>;
+                       interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&fm_irq &fm_rst>;
+               };
+       };
+};
+
+&aliases {
+       i2c8 = &i2c_fmradio;
 };
 
 &pinctrl0 {
        pinctrl-names = "default";
        pinctrl-0 = <&sleep_cfg>;
 
+       fm_i2c_pins: fm-i2c-pins {
+               samsung,pins = "gpd1-2", "gpd1-3";
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+
+       fm_irq: fm-irq {
+               samsung,pins = "gpj2-4";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+
+       fm_rst: fm-rst {
+               samsung,pins = "gpj2-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+
        massmemory_en: massmemory-en {
                samsung,pins = "gpj2-7";
                samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;