arm64: dts: renesas: spider-cpu: Enable UFS device
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Fri, 13 Jan 2023 13:46:39 +0000 (22:46 +0900)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 27 Jan 2023 09:38:53 +0000 (10:38 +0100)
Enable UFS device for R-Car S4-8 Spider CPU board.

Note that the conditions of RC21012 on the Spider are:
 - OUT11 (for UFS30_REFCLK_V) is disabled as default.
 - OUT11 is controlled by GPIO0 pin.
 - The GPIO0 pin is inverted sense (low active) and pull-up enabled.

To output the clock, pin 4 of TCA9554 on the Spider board needs to
output low level so that using "gpio-gate-clock" for it.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20230113134639.338908-1-yoshihiro.shimoda.uh@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi

index 045d705..dd8e0e1 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2021 Renesas Electronics Corp.
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include "r8a779f0.dtsi"
 
 / {
                reg = <0x4 0x80000000 0x0 0x80000000>;
        };
 
+       rc21012_ufs: clk-rc21012-ufs {
+               compatible = "fixed-clock";
+               clock-frequency = <38400000>;
+               #clock-cells = <0>;
+       };
+
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
                regulator-name = "fixed-1.8V";
        status = "okay";
 };
 
+&i2c0 {
+       pinctrl-0 = <&i2c0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       gpio_exp_20: gpio@20 {
+               compatible = "ti,tca9554";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
 &i2c4 {
        pinctrl-0 = <&i2c4_pins>;
        pinctrl-names = "default";
                function = "hscif0";
        };
 
+       i2c0_pins: i2c0 {
+               groups = "i2c0";
+               function = "i2c0";
+       };
+
        i2c4_pins: i2c4 {
                groups = "i2c4";
                function = "i2c4";
 &scif_clk {
        clock-frequency = <24000000>;
 };
+
+&ufs {
+       status = "okay";
+};
+
+&ufs30_clk {
+       compatible = "gpio-gate-clock";
+       clocks = <&rc21012_ufs>;
+       enable-gpios = <&gpio_exp_20 4 GPIO_ACTIVE_LOW>;
+       /delete-property/ clock-frequency;
+};