Lines Matching refs:sprd_hwlock
42 struct sprd_hwspinlock_dev *sprd_hwlock =
52 user_id = readl(sprd_hwlock->base + HWSPINLOCK_MASTERID(lock_id));
53 dev_warn(sprd_hwlock->bank.dev,
81 struct sprd_hwspinlock_dev *sprd_hwlock = data;
83 clk_disable_unprepare(sprd_hwlock->clk);
88 struct sprd_hwspinlock_dev *sprd_hwlock;
95 sprd_hwlock = devm_kzalloc(&pdev->dev,
96 struct_size(sprd_hwlock, bank.lock, SPRD_HWLOCKS_NUM),
98 if (!sprd_hwlock)
101 sprd_hwlock->base = devm_platform_ioremap_resource(pdev, 0);
102 if (IS_ERR(sprd_hwlock->base))
103 return PTR_ERR(sprd_hwlock->base);
105 sprd_hwlock->clk = devm_clk_get(&pdev->dev, "enable");
106 if (IS_ERR(sprd_hwlock->clk)) {
108 return PTR_ERR(sprd_hwlock->clk);
111 ret = clk_prepare_enable(sprd_hwlock->clk);
116 sprd_hwlock);
124 writel(HWSPINLOCK_USER_BITS, sprd_hwlock->base + HWSPINLOCK_RECCTRL);
127 lock = &sprd_hwlock->bank.lock[i];
128 lock->priv = sprd_hwlock->base + HWSPINLOCK_TOKEN(i);
131 platform_set_drvdata(pdev, sprd_hwlock);
133 return devm_hwspin_lock_register(&pdev->dev, &sprd_hwlock->bank,