Lines Matching +full:enable +full:- +full:mask

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
102 { "rockchip,rk3399-emmc-phy", 1 },
112 #define LOWEST_SET_BIT(mask) ((((mask) - 1) & (mask)) ^ (mask)) argument
113 #define SHIFTIN(x, mask) ((x) * LOWEST_SET_BIT(mask)) argument
116 static int rk_emmcphy_enable(struct phynode *phynode, bool enable);
126 rk_emmcphy_enable(struct phynode *phynode, bool enable) in rk_emmcphy_enable() argument
132 uint32_t mask, val; in rk_emmcphy_enable() local
146 if (enable) { in rk_emmcphy_enable()
148 mask = PHYCTRL_DR_TY; in rk_emmcphy_enable()
150 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON6, in rk_emmcphy_enable()
151 (mask << 16) | val); in rk_emmcphy_enable()
153 /* Enable output tap delay */ in rk_emmcphy_enable()
154 mask = PHYCTRL_OTAPDLYENA | PHYCTRL_OTAPDLYSEL; in rk_emmcphy_enable()
156 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON0, in rk_emmcphy_enable()
157 (mask << 16) | val); in rk_emmcphy_enable()
161 mask = PHYCTRL_ENDLL | PHYCTRL_PDB; in rk_emmcphy_enable()
163 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON6, (mask << 16) | val); in rk_emmcphy_enable()
165 if (enable == false) in rk_emmcphy_enable()
168 sc->phy_conf = (struct rk_emmcphy_conf *)ofw_bus_search_compatible(dev, in rk_emmcphy_enable()
169 compat_data)->ocd_data; in rk_emmcphy_enable()
172 error = clk_get_by_ofw_name(dev, 0, "emmcclk", &sc->clk); in rk_emmcphy_enable()
175 sc->clk = NULL; in rk_emmcphy_enable()
179 if (sc->clk) { in rk_emmcphy_enable()
180 error = clk_get_freq(sc->clk, &rate); in rk_emmcphy_enable()
203 mask = PHYCTRL_PDB; in rk_emmcphy_enable()
205 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON6, (mask << 16) | val); in rk_emmcphy_enable()
209 val = SYSCON_READ_4(sc->syscon, GRF_EMMCPHY_STATUS); in rk_emmcphy_enable()
216 mask = PHYCTRL_FRQSEL; in rk_emmcphy_enable()
218 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON0, (mask << 16) | val); in rk_emmcphy_enable()
220 /* Enable DLL */ in rk_emmcphy_enable()
221 mask = PHYCTRL_ENDLL; in rk_emmcphy_enable()
223 SYSCON_WRITE_4(sc->syscon, GRF_EMMCPHY_CON6, (mask << 16) | val); in rk_emmcphy_enable()
245 val = SYSCON_READ_4(sc->syscon, GRF_EMMCPHY_STATUS); in rk_emmcphy_enable()
262 if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) in rk_emmcphy_probe()
289 if (OF_hasprop(xnode, "arasan,soc-ctl-syscon") && in rk_emmcphy_attach()
291 "arasan,soc-ctl-syscon", &sc->syscon) != 0) { in rk_emmcphy_attach()
296 if (sc->syscon == NULL) { in rk_emmcphy_attach()