Lines Matching refs:sprd_hwlock

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