Lines Matching full:iris
3 * Qualcomm Wireless Connectivity Subsystem Iris driver
69 int qcom_iris_enable(struct qcom_iris *iris) in qcom_iris_enable() argument
73 ret = regulator_bulk_enable(iris->num_vregs, iris->vregs); in qcom_iris_enable()
77 ret = clk_prepare_enable(iris->xo_clk); in qcom_iris_enable()
79 dev_err(&iris->dev, "failed to enable xo clk\n"); in qcom_iris_enable()
86 regulator_bulk_disable(iris->num_vregs, iris->vregs); in qcom_iris_enable()
91 void qcom_iris_disable(struct qcom_iris *iris) in qcom_iris_disable() argument
93 clk_disable_unprepare(iris->xo_clk); in qcom_iris_disable()
94 regulator_bulk_disable(iris->num_vregs, iris->vregs); in qcom_iris_disable()
107 struct qcom_iris *iris = container_of(dev, struct qcom_iris, dev); in qcom_iris_release() local
109 of_node_put(iris->dev.of_node); in qcom_iris_release()
110 kfree(iris); in qcom_iris_release()
118 struct qcom_iris *iris; in qcom_iris_probe() local
122 of_node = of_get_child_by_name(parent->of_node, "iris"); in qcom_iris_probe()
124 dev_err(parent, "No child node \"iris\" found\n"); in qcom_iris_probe()
128 iris = kzalloc(sizeof(*iris), GFP_KERNEL); in qcom_iris_probe()
129 if (!iris) { in qcom_iris_probe()
134 device_initialize(&iris->dev); in qcom_iris_probe()
135 iris->dev.parent = parent; in qcom_iris_probe()
136 iris->dev.release = qcom_iris_release; in qcom_iris_probe()
137 iris->dev.of_node = of_node; in qcom_iris_probe()
139 dev_set_name(&iris->dev, "%s.iris", dev_name(parent)); in qcom_iris_probe()
141 ret = device_add(&iris->dev); in qcom_iris_probe()
143 put_device(&iris->dev); in qcom_iris_probe()
147 match = of_match_device(iris_of_match, &iris->dev); in qcom_iris_probe()
149 dev_err(&iris->dev, "no matching compatible for iris\n"); in qcom_iris_probe()
156 iris->xo_clk = devm_clk_get(&iris->dev, "xo"); in qcom_iris_probe()
157 if (IS_ERR(iris->xo_clk)) { in qcom_iris_probe()
158 ret = PTR_ERR(iris->xo_clk); in qcom_iris_probe()
160 dev_err(&iris->dev, "failed to acquire xo clk\n"); in qcom_iris_probe()
164 iris->num_vregs = data->num_vregs; in qcom_iris_probe()
165 iris->vregs = devm_kcalloc(&iris->dev, in qcom_iris_probe()
166 iris->num_vregs, in qcom_iris_probe()
169 if (!iris->vregs) { in qcom_iris_probe()
174 for (i = 0; i < iris->num_vregs; i++) in qcom_iris_probe()
175 iris->vregs[i].supply = data->vregs[i].name; in qcom_iris_probe()
177 ret = devm_regulator_bulk_get(&iris->dev, iris->num_vregs, iris->vregs); in qcom_iris_probe()
179 dev_err(&iris->dev, "failed to get regulators\n"); in qcom_iris_probe()
183 for (i = 0; i < iris->num_vregs; i++) { in qcom_iris_probe()
185 regulator_set_voltage(iris->vregs[i].consumer, in qcom_iris_probe()
190 regulator_set_load(iris->vregs[i].consumer, in qcom_iris_probe()
196 return iris; in qcom_iris_probe()
199 device_del(&iris->dev); in qcom_iris_probe()
204 void qcom_iris_remove(struct qcom_iris *iris) in qcom_iris_remove() argument
206 device_del(&iris->dev); in qcom_iris_remove()