#include <dt-bindings/clock/mediatek,mt8189-clk.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/ti-syscon.h>
/ {
compatible = "mediatek,mt8189";
#interrupt-cells = <2>;
};
+ ufshci: ufshci@112b0000 {
+ compatible = "mediatek,mt8183-ufshci";
+ reg = <0 0x112b0000 0 0x2300>;
+ interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
+
+ clocks = <&topckgen_clk CLK_TOP_U_SEL>,
+ <&clk26m>,
+ <&topckgen_clk CLK_TOP_MSDCPLL_D2>,
+ <&topckgen_clk CLK_TOP_AES_UFSFDE_SEL>,
+ <&topckgen_clk CLK_TOP_U_MBIST_SEL>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_UNIPRO_TX_SYM>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_UNIPRO_RX_SYM0>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_UNIPRO_RX_SYM1>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_UNIPRO_SYS>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_U_SAP_CFG>,
+ <&ufscfg_ao_reg_clk CLK_UFSCFG_AO_REG_U_PHY_TOP_AHB_S_BUS>,
+ <&ufscfg_pdn_reg_clk CLK_UFSCFG_REG_UFSHCI_UFS>,
+ <&ufscfg_pdn_reg_clk CLK_UFSCFG_REG_UFSHCI_AES>,
+ <&ufscfg_pdn_reg_clk CLK_UFSCFG_REG_UFSHCI_U_AHB>,
+ <&ufscfg_pdn_reg_clk CLK_UFSCFG_REG_UFSHCI_U_AXI>;
+
+ clock-names = "ufs_sel",
+ "ufs_sel_min_src",
+ "ufs_sel_max_src",
+ "ufs_fde",
+ "ufs_mbist",
+ "unipro_tx_sym",
+ "unipro_rx_sym0",
+ "unipro_rx_sym1",
+ "unipro_sys",
+ "unipro_phy_sap",
+ "phy_top_ahb_s_bus",
+ "ufshci_ufs",
+ "ufshci_aes",
+ "ufshci_ufs_ahb",
+ "ufshci_aes_axi";
+
+ freq-table-hz = <26000000 208000000>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>,
+ <0 0>;
+
+ vcc-supply = <&mt6359_vemc_1_ldo_reg>;
+ vccq-supply = <&mt6359_vio18_ldo_reg>;
+ vccq2-supply = <&mt6359_vufs_ldo_reg>;
+
+ resets = <&ufscfgpdn_rst 0>,
+ <&ufscfgpdn_rst 1>,
+ <&ufscfgpdn_rst 2>;
+
+ reset-names = "unipro_rst",
+ "crypto_rst",
+ "hci_rst";
+
+ mediatek,ufs-disable-mcq;
+ mediatek,ufs-rtff-mtcmos;
+ mediatek,ufs-broken-vcc;
+
+ status = "disabled";
+ };
+
+ ufscfg_ao_reg_clk: syscon@112b8000 {
+ compatible = "mediatek,mt8189-ufscfg-ao", "syscon", "simple-mfd";
+ reg = <0 0x112b8000 0 0x1000>;
+ #clock-cells = <1>;
+
+ ufscfgao_rst: reset-controller {
+ compatible = "ti,syscon-reset";
+ #reset-cells = <1>;
+
+ ti,reset-bits = <
+ /* ufs mphy reset */
+ /* 8: mphy */
+ 0x48 8 0x4c 8 0 0
+ (ASSERT_SET | DEASSERT_SET | STATUS_NONE)
+ >;
+ };
+ };
+
+ ufscfg_pdn_reg_clk: syscon@112bb000 {
+ compatible = "mediatek,mt8189-ufscfg-pdn", "syscon", "simple-mfd";
+ reg = <0 0x112bb000 0 0x1000>;
+ #clock-cells = <1>;
+
+ ufscfgpdn_rst: reset-controller {
+ compatible = "ti,syscon-reset";
+ #reset-cells = <1>;
+
+ ti,reset-bits = <
+ /* ufs ufschi/crypto/unipro reset */
+ /* 0: unipro */
+ 0x48 0 0x4c 0 0 0
+ (ASSERT_SET | DEASSERT_SET | STATUS_NONE)
+ /* 1: ufs-crypto */
+ 0x48 1 0x4c 1 0 0
+ (ASSERT_SET | DEASSERT_SET | STATUS_NONE)
+ /* 2: ufshci */
+ 0x48 2 0x4c 2 0 0
+ (ASSERT_SET | DEASSERT_SET | STATUS_NONE)
+ >;
+ };
+ };
+
pwrap: pwrap@1cc04000 {
compatible = "mediatek,mt8189-pwrap", "mediatek,mt8195-pwrap", "syscon";
reg = <0 0x1cc04000 0 0x1000>;