Lines Matching full:gsbi
15 #include <dt-bindings/soc/qcom,gsbi.h>
132 struct gsbi_info *gsbi; in gsbi_probe() local
137 gsbi = devm_kzalloc(&pdev->dev, sizeof(*gsbi), GFP_KERNEL); in gsbi_probe()
139 if (!gsbi) in gsbi_probe()
148 gsbi->tcsr = syscon_regmap_lookup_by_phandle(node, "syscon-tcsr"); in gsbi_probe()
150 if (!IS_ERR(gsbi->tcsr)) { in gsbi_probe()
173 if (of_property_read_u32(node, "qcom,mode", &gsbi->mode)) { in gsbi_probe()
179 of_property_read_u32(node, "qcom,crci", &gsbi->crci); in gsbi_probe()
181 dev_info(&pdev->dev, "GSBI port protocol: %d crci: %d\n", in gsbi_probe()
182 gsbi->mode, gsbi->crci); in gsbi_probe()
183 gsbi->hclk = devm_clk_get(&pdev->dev, "iface"); in gsbi_probe()
184 if (IS_ERR(gsbi->hclk)) in gsbi_probe()
185 return PTR_ERR(gsbi->hclk); in gsbi_probe()
187 clk_prepare_enable(gsbi->hclk); in gsbi_probe()
189 writel_relaxed((gsbi->mode << GSBI_PROTOCOL_SHIFT) | gsbi->crci, in gsbi_probe()
194 * Each gsbi contains a pair of bits, one for RX and one for TX in gsbi_probe()
201 if (gsbi->mode == GSBI_PROT_SPI) in gsbi_probe()
202 regmap_update_bits(gsbi->tcsr, in gsbi_probe()
205 regmap_update_bits(gsbi->tcsr, in gsbi_probe()
211 /* make sure the gsbi control write is not reordered */ in gsbi_probe()
214 platform_set_drvdata(pdev, gsbi); in gsbi_probe()
218 clk_disable_unprepare(gsbi->hclk); in gsbi_probe()
224 struct gsbi_info *gsbi = platform_get_drvdata(pdev); in gsbi_remove() local
226 clk_disable_unprepare(gsbi->hclk); in gsbi_remove()
232 { .compatible = "qcom,gsbi-v1.0.0", },
240 .name = "gsbi",
250 MODULE_DESCRIPTION("QCOM GSBI driver");