Lines Matching +full:tcsr +full:- +full:syscon

1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/mfd/syscon.h>
24 struct regmap_field *field = lock->priv; in qcom_hwspinlock_trylock()
41 struct regmap_field *field = lock->priv; in qcom_hwspinlock_unlock()
67 { .compatible = "qcom,sfpb-mutex" },
68 { .compatible = "qcom,tcsr-mutex" },
76 struct device_node *syscon; in qcom_hwspinlock_probe_syscon() local
80 syscon = of_parse_phandle(pdev->dev.of_node, "syscon", 0); in qcom_hwspinlock_probe_syscon()
81 if (!syscon) in qcom_hwspinlock_probe_syscon()
82 return ERR_PTR(-ENODEV); in qcom_hwspinlock_probe_syscon()
84 regmap = syscon_node_to_regmap(syscon); in qcom_hwspinlock_probe_syscon()
85 of_node_put(syscon); in qcom_hwspinlock_probe_syscon()
89 ret = of_property_read_u32_index(pdev->dev.of_node, "syscon", 1, base); in qcom_hwspinlock_probe_syscon()
91 dev_err(&pdev->dev, "no offset in syscon\n"); in qcom_hwspinlock_probe_syscon()
92 return ERR_PTR(-EINVAL); in qcom_hwspinlock_probe_syscon()
95 ret = of_property_read_u32_index(pdev->dev.of_node, "syscon", 2, stride); in qcom_hwspinlock_probe_syscon()
97 dev_err(&pdev->dev, "no stride syscon\n"); in qcom_hwspinlock_probe_syscon()
98 return ERR_PTR(-EINVAL); in qcom_hwspinlock_probe_syscon()
115 struct device *dev = &pdev->dev; in qcom_hwspinlock_probe_mmio()
140 if (IS_ERR(regmap) && PTR_ERR(regmap) == -ENODEV) in qcom_hwspinlock_probe()
147 bank = devm_kzalloc(&pdev->dev, sizeof(*bank) + array_size, GFP_KERNEL); in qcom_hwspinlock_probe()
149 return -ENOMEM; in qcom_hwspinlock_probe()
158 bank->lock[i].priv = devm_regmap_field_alloc(&pdev->dev, in qcom_hwspinlock_probe()
162 return devm_hwspin_lock_register(&pdev->dev, bank, &qcom_hwspinlock_ops, in qcom_hwspinlock_probe()