Lines Matching refs:sprd_hwlock

44 	struct sprd_hwspinlock_dev *sprd_hwlock =  in sprd_hwspinlock_trylock()  local
54 user_id = readl(sprd_hwlock->base + HWSPINLOCK_MASTERID(lock_id)); in sprd_hwspinlock_trylock()
55 dev_warn(sprd_hwlock->bank.dev, in sprd_hwspinlock_trylock()
83 struct sprd_hwspinlock_dev *sprd_hwlock = data; in sprd_hwspinlock_disable() local
85 clk_disable_unprepare(sprd_hwlock->clk); in sprd_hwspinlock_disable()
90 struct sprd_hwspinlock_dev *sprd_hwlock; in sprd_hwspinlock_probe() local
97 sprd_hwlock = devm_kzalloc(&pdev->dev, in sprd_hwspinlock_probe()
101 if (!sprd_hwlock) in sprd_hwspinlock_probe()
104 sprd_hwlock->base = devm_platform_ioremap_resource(pdev, 0); in sprd_hwspinlock_probe()
105 if (IS_ERR(sprd_hwlock->base)) in sprd_hwspinlock_probe()
106 return PTR_ERR(sprd_hwlock->base); in sprd_hwspinlock_probe()
108 sprd_hwlock->clk = devm_clk_get(&pdev->dev, "enable"); in sprd_hwspinlock_probe()
109 if (IS_ERR(sprd_hwlock->clk)) { in sprd_hwspinlock_probe()
111 return PTR_ERR(sprd_hwlock->clk); in sprd_hwspinlock_probe()
114 ret = clk_prepare_enable(sprd_hwlock->clk); in sprd_hwspinlock_probe()
119 sprd_hwlock); in sprd_hwspinlock_probe()
127 writel(HWSPINLOCK_USER_BITS, sprd_hwlock->base + HWSPINLOCK_RECCTRL); in sprd_hwspinlock_probe()
130 lock = &sprd_hwlock->bank.lock[i]; in sprd_hwspinlock_probe()
131 lock->priv = sprd_hwlock->base + HWSPINLOCK_TOKEN(i); in sprd_hwspinlock_probe()
134 platform_set_drvdata(pdev, sprd_hwlock); in sprd_hwspinlock_probe()
136 return devm_hwspin_lock_register(&pdev->dev, &sprd_hwlock->bank, in sprd_hwspinlock_probe()