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 = dev_err_probe(&iris->dev, PTR_ERR(iris->xo_clk), in qcom_iris_probe()
163 iris->num_vregs = data->num_vregs; in qcom_iris_probe()
164 iris->vregs = devm_kcalloc(&iris->dev, in qcom_iris_probe()
165 iris->num_vregs, in qcom_iris_probe()
168 if (!iris->vregs) { in qcom_iris_probe()
173 for (i = 0; i < iris->num_vregs; i++) in qcom_iris_probe()
174 iris->vregs[i].supply = data->vregs[i].name; in qcom_iris_probe()
176 ret = devm_regulator_bulk_get(&iris->dev, iris->num_vregs, iris->vregs); in qcom_iris_probe()
178 dev_err(&iris->dev, "failed to get regulators\n"); in qcom_iris_probe()
182 for (i = 0; i < iris->num_vregs; i++) { in qcom_iris_probe()
184 regulator_set_voltage(iris->vregs[i].consumer, in qcom_iris_probe()
189 regulator_set_load(iris->vregs[i].consumer, in qcom_iris_probe()
195 return iris; in qcom_iris_probe()
198 device_del(&iris->dev); in qcom_iris_probe()
203 void qcom_iris_remove(struct qcom_iris *iris) in qcom_iris_remove() argument
205 device_del(&iris->dev); in qcom_iris_remove()