Home
last modified time | relevance | path

Searched full:hwspinlock (Results 1 – 25 of 26) sorted by relevance

12

/linux/drivers/hwspinlock/
H A Dhwspinlock_internal.h19 * struct hwspinlock_ops - platform-specific hwspinlock handlers
24 * @bust: optional, platform-specific bust handler, called by hwspinlock
26 * @relax: optional, platform-specific relax handler, called by hwspinlock
31 int (*trylock)(struct hwspinlock *lock);
32 void (*unlock)(struct hwspinlock *lock);
33 int (*bust)(struct hwspinlock *lock, unsigned int id);
34 void (*relax)(struct hwspinlock *lock);
38 * struct hwspinlock - this struct represents a single hwspinlock instance
40 * @lock: initialized and used by hwspinlock core
41 * @priv: private data, owned by the underlying platform-specific hwspinlock drv
[all …]
H A Dsprd_hwspinlock.c10 #include <linux/hwspinlock.h>
20 /* hwspinlock registers definition */
30 /* hwspinlock number */
40 static int sprd_hwspinlock_trylock(struct hwspinlock *lock) in sprd_hwspinlock_trylock()
54 "hwspinlock [%d] lock failed and master/user id = %d!\n", in sprd_hwspinlock_trylock()
60 static void sprd_hwspinlock_unlock(struct hwspinlock *lock) in sprd_hwspinlock_unlock()
68 static void sprd_hwspinlock_relax(struct hwspinlock *lock) in sprd_hwspinlock_relax()
89 struct hwspinlock *lock; in sprd_hwspinlock_probe()
107 dev_err(&pdev->dev, "get hwspinlock clock failed!\n"); in sprd_hwspinlock_probe()
119 "Failed to add hwspinlock disable action\n"); in sprd_hwspinlock_probe()
[all …]
H A Domap_hwspinlock.c22 #include <linux/hwspinlock.h>
38 static int omap_hwspinlock_trylock(struct hwspinlock *lock) in omap_hwspinlock_trylock()
46 static void omap_hwspinlock_unlock(struct hwspinlock *lock) in omap_hwspinlock_unlock()
64 static void omap_hwspinlock_relax(struct hwspinlock *lock) in omap_hwspinlock_relax()
80 /* Only a single hwspinlock block device is supported */ in omap_hwspinlock_probe()
127 { .compatible = "ti,omap4-hwspinlock", },
128 { .compatible = "ti,am64-hwspinlock", },
129 { .compatible = "ti,am654-hwspinlock", },
H A Dsun6i_hwspinlock.c10 #include <linux/hwspinlock.h>
24 #define SPINLOCK_BASE_ID 0 /* there is only one hwspinlock device per SoC */
63 static int sun6i_hwspinlock_trylock(struct hwspinlock *lock) in sun6i_hwspinlock_trylock()
70 static void sun6i_hwspinlock_unlock(struct hwspinlock *lock) in sun6i_hwspinlock_unlock()
94 struct hwspinlock *hwlock; in sun6i_hwspinlock_probe()
132 * bit 28 and 29 represents the hwspinlock setup in sun6i_hwspinlock_probe()
153 dev_err(&pdev->dev, "unsupported hwspinlock setup (%d)\n", num_banks); in sun6i_hwspinlock_probe()
176 dev_err(&pdev->dev, "failed to add hwspinlock disable action\n"); in sun6i_hwspinlock_probe()
194 { .compatible = "allwinner,sun6i-a31-hwspinlock", },
H A Dstm32_hwspinlock.c9 #include <linux/hwspinlock.h>
28 static int stm32_hwspinlock_trylock(struct hwspinlock *lock) in stm32_hwspinlock_trylock()
39 static void stm32_hwspinlock_unlock(struct hwspinlock *lock) in stm32_hwspinlock_unlock()
46 static void stm32_hwspinlock_relax(struct hwspinlock *lock) in stm32_hwspinlock_relax()
116 dev_err(dev, "Failed to register hwspinlock\n"); in stm32_hwspinlock_probe()
146 { .compatible = "st,stm32-hwspinlock", },
H A DKconfig3 # Generic HWSPINLOCK framework
6 menuconfig HWSPINLOCK config
9 if HWSPINLOCK
66 endif # HWSPINLOCK
H A Du8500_hsem.c21 #include <linux/hwspinlock.h>
50 static int u8500_hsem_trylock(struct hwspinlock *lock) in u8500_hsem_trylock()
63 static void u8500_hsem_unlock(struct hwspinlock *lock) in u8500_hsem_unlock()
74 static void u8500_hsem_relax(struct hwspinlock *lock) in u8500_hsem_relax()
89 struct hwspinlock *hwlock; in u8500_hsem_probe()
H A Dqcom_hwspinlock.c7 #include <linux/hwspinlock.h>
28 static int qcom_hwspinlock_trylock(struct hwspinlock *lock) in qcom_hwspinlock_trylock()
45 static void qcom_hwspinlock_unlock(struct hwspinlock *lock) in qcom_hwspinlock_unlock()
67 static int qcom_hwspinlock_bust(struct hwspinlock *lock, unsigned int id) in qcom_hwspinlock_bust()
219 array_size = QCOM_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); in qcom_hwspinlock_probe()
/linux/Documentation/devicetree/bindings/hwlock/
H A Dti,omap-hwspinlock.yaml4 $id: http://devicetree.org/schemas/hwlock/ti,omap-hwspinlock.yaml#
7 title: TI HwSpinlock for OMAP and K3 based SoCs
15 - ti,omap4-hwspinlock # for OMAP44xx, OMAP54xx, AM33xx, AM43xx, DRA7xx SoCs
16 - ti,am64-hwspinlock # for K3 AM64x SoCs
17 - ti,am654-hwspinlock # for K3 AM65x, J721E and J7200 SoCs
25 The OMAP hwspinlock users will use a 0-indexed relative hwlock number as
26 the argument specifier value for requesting a specific hwspinlock within
27 a hwspinlock bank.
43 compatible = "ti,omap4-hwspinlock";
H A Dst,stm32-hwspinlock.yaml4 $id: http://devicetree.org/schemas/hwlock/st,stm32-hwspinlock.yaml#
17 const: st,stm32-hwspinlock
41 hwspinlock@4c000000 {
42 compatible = "st,stm32-hwspinlock";
H A Dsprd,hwspinlock-r3p0.yaml4 $id: http://devicetree.org/schemas/hwlock/sprd,hwspinlock-r3p0.yaml#
16 const: sprd,hwspinlock-r3p0
44 compatible = "sprd,hwspinlock-r3p0";
H A Dallwinner,sun6i-a31-hwspinlock.yaml4 $id: http://devicetree.org/schemas/hwlock/allwinner,sun6i-a31-hwspinlock.yaml#
18 const: allwinner,sun6i-a31-hwspinlock
47 compatible = "allwinner,sun6i-a31-hwspinlock";
H A Dqcom-hwspinlock.yaml4 $id: http://devicetree.org/schemas/hwlock/qcom-hwspinlock.yaml#
/linux/drivers/irqchip/
H A Dirq-stm32mp-exti.c9 #include <linux/hwspinlock.h>
74 struct hwspinlock *hwlock;
372 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32mp_exti_set_type()
382 pr_err("%s can't get hwspinlock (%d)\n", __func__, err); in stm32mp_exti_set_type()
638 /* check for optional hwspinlock which may be not available yet */ in stm32mp_exti_probe()
641 /* hwspinlock framework not yet ready */ in stm32mp_exti_probe()
647 dev_err(dev, "Failed to request hwspinlock\n"); in stm32mp_exti_probe()
651 /* note: ENOENT is a valid case (means 'no hwspinlock') */ in stm32mp_exti_probe()
652 dev_err(dev, "Failed to get hwspinlock\n"); in stm32mp_exti_probe()
/linux/Documentation/locking/
H A Dindex.rst23 hwspinlock
/linux/Documentation/translations/zh_CN/locking/
H A Dindex.rst33 * hwspinlock
/linux/drivers/iio/adc/
H A Dsc27xx_adc.c4 #include <linux/hwspinlock.h>
92 struct hwspinlock *hwlock;
492 dev_err(data->dev, "timeout to get the hwspinlock\n"); in sc27xx_adc_read()
899 dev_err(dev, "failed to get hwspinlock id\n"); in sc27xx_adc_probe()
905 dev_err(dev, "failed to request hwspinlock\n"); in sc27xx_adc_probe()
/linux/arch/arm64/boot/dts/sprd/
H A Dwhale2.dtsi196 hwlock: hwspinlock@40500000 {
197 compatible = "sprd,hwspinlock-r3p0";
/linux/drivers/spi/
H A Dspi-sprd-adi.c8 #include <linux/hwspinlock.h>
149 struct hwspinlock *hwlock;
/linux/drivers/
H A DMakefile157 obj-$(CONFIG_HWSPINLOCK) += hwspinlock/
/linux/drivers/mfd/
H A Dsyscon.c14 #include <linux/hwspinlock.h>
/linux/arch/arm64/boot/dts/ti/
H A Dk3-am65-main.dtsi661 hwspinlock: spinlock@30e00000 { label
662 compatible = "ti,am654-hwspinlock";
/linux/arch/arm/boot/dts/ti/omap/
H A Domap4-l4.dtsi635 hwspinlock: spinlock@0 { label
636 compatible = "ti,omap4-hwspinlock";
H A Domap5-l4.dtsi651 hwspinlock: spinlock@0 { label
652 compatible = "ti,omap4-hwspinlock";
/linux/
H A DCREDITS341 D: Hardware spinlock (hwspinlock) subsystem
342 D: OMAP hwspinlock driver

12