Skip to content

Commit f0c3274

Browse files
committed
drivers: stepper: tmc5xxx: generalized macros for tmc5xxx
This commit generalizes macros which are common to tmc5xxx drivers Signed-off-by: Jilay Pandya <[email protected]>
1 parent 68361ea commit f0c3274

File tree

1 file changed

+58
-60
lines changed

1 file changed

+58
-60
lines changed

drivers/stepper/adi_tmc/adi_tmc_reg.h

Lines changed: 58 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,64 @@ extern "C" {
2020
/** Common Registers for TMC5041 and TMC51XX */
2121
#if defined(CONFIG_STEPPER_ADI_TMC5041)
2222

23-
#define TMC5XXX_CLOCK_FREQ_SHIFT 24
23+
#define TMC5XXX_WRITE_BIT 0x80U
24+
#define TMC5XXX_ADDRESS_MASK 0x7FU
25+
26+
#define TMC5XXX_CLOCK_FREQ_SHIFT 24
27+
28+
#define TMC5XXX_GCONF 0x00
29+
#define TMC5XXX_GSTAT 0x01
30+
31+
#define TMC5XXX_RAMPMODE_POSITIONING_MODE 0
32+
#define TMC5XXX_RAMPMODE_POSITIVE_VELOCITY_MODE 1
33+
#define TMC5XXX_RAMPMODE_NEGATIVE_VELOCITY_MODE 2
34+
#define TMC5XXX_RAMPMODE_HOLD_MODE 3
35+
36+
#define TMC5XXX_SG_MIN_VALUE -64
37+
#define TMC5XXX_SG_MAX_VALUE 63
38+
#define TMC5XXX_SW_MODE_SG_STOP_ENABLE BIT(10)
39+
40+
#define TMC5XXX_COOLCONF_SG2_THRESHOLD_VALUE_SHIFT 16
41+
42+
#define TMC5XXX_IHOLD_MASK GENMASK(4, 0)
43+
#define TMC5XXX_IHOLD_SHIFT 0
44+
#define TMC5XXX_IHOLD(n) (((n) << TMC5XXX_IHOLD_SHIFT) & TMC5XXX_IHOLD_MASK)
45+
46+
#define TMC5XXX_IRUN_MASK GENMASK(12, 8)
47+
#define TMC5XXX_IRUN_SHIFT 8
48+
#define TMC5XXX_IRUN(n) (((n) << TMC5XXX_IRUN_SHIFT) & TMC5XXX_IRUN_MASK)
49+
50+
#define TMC5XXX_IHOLDDELAY_MASK GENMASK(19, 16)
51+
#define TMC5XXX_IHOLDDELAY_SHIFT 16
52+
#define TMC5XXX_IHOLDDELAY(n) (((n) << TMC5XXX_IHOLDDELAY_SHIFT) & TMC5XXX_IHOLDDELAY_MASK)
53+
54+
#define TMC5XXX_CHOPCONF_DRV_ENABLE_MASK GENMASK(3, 0)
55+
#define TMC5XXX_CHOPCONF_MRES_MASK GENMASK(27, 24)
56+
#define TMC5XXX_CHOPCONF_MRES_SHIFT 24
57+
58+
#define TMC5XXX_RAMPSTAT_INT_MASK GENMASK(7, 4)
59+
#define TMC5XXX_RAMPSTAT_INT_SHIFT 4
60+
61+
#define TMC5XXX_RAMPSTAT_POS_REACHED_EVENT_MASK BIT(7)
62+
#define TMC5XXX_POS_REACHED_EVENT \
63+
(TMC5XXX_RAMPSTAT_POS_REACHED_EVENT_MASK >> TMC5XXX_RAMPSTAT_INT_SHIFT)
64+
65+
#define TMC5XXX_RAMPSTAT_STOP_SG_EVENT_MASK BIT(6)
66+
#define TMC5XXX_STOP_SG_EVENT \
67+
(TMC5XXX_RAMPSTAT_STOP_SG_EVENT_MASK >> TMC5XXX_RAMPSTAT_INT_SHIFT)
68+
69+
#define TMC5XXX_RAMPSTAT_STOP_RIGHT_EVENT_MASK BIT(5)
70+
#define TMC5XXX_STOP_RIGHT_EVENT \
71+
(TMC5XXX_RAMPSTAT_STOP_RIGHT_EVENT_MASK >> TMC5XXX_RAMPSTAT_INT_SHIFT)
72+
73+
#define TMC5XXX_RAMPSTAT_STOP_LEFT_EVENT_MASK BIT(4)
74+
#define TMC5XXX_STOP_LEFT_EVENT \
75+
(TMC5XXX_RAMPSTAT_STOP_LEFT_EVENT_MASK >> TMC5XXX_RAMPSTAT_INT_SHIFT)
76+
77+
#define TMC5XXX_DRV_STATUS_STST_BIT BIT(31)
78+
#define TMC5XXX_DRV_STATUS_SG_RESULT_MASK GENMASK(9, 0)
79+
#define TMC5XXX_DRV_STATUS_SG_STATUS_MASK BIT(24)
80+
#define TMC5XXX_DRV_STATUS_SG_STATUS_SHIFT 24
2481

2582
#endif
2683

@@ -37,19 +94,11 @@ extern "C" {
3794
* @{
3895
*/
3996

40-
#define TMC5041_WRITE_BIT 0x80U
41-
#define TMC5041_ADDRESS_MASK 0x7FU
42-
4397
#define TMC5041_GCONF_POSCMP_ENABLE_SHIFT 3
4498
#define TMC5041_GCONF_TEST_MODE_SHIFT 7
4599
#define TMC5041_GCONF_SHAFT_SHIFT(n) ((n) ? 8 : 9)
46100
#define TMC5041_LOCK_GCONF_SHIFT 10
47101

48-
#define TMC5041_GCONF 0x00
49-
#define TMC5041_GSTAT 0x01
50-
#define TMC5041_INPUT 0x04
51-
#define TMC5041_X_COMPARE 0x05
52-
53102
#define TMC5041_PWMCONF(motor) (0x10 | TMC5041_MOTOR_ADDR_PWM(motor))
54103
#define TMC5041_PWM_STATUS(motor) (0x11 | TMC5041_MOTOR_ADDR_PWM(motor))
55104

@@ -89,57 +138,6 @@ extern "C" {
89138
#define TMC5041_COOLCONF(motor) (0x6D | TMC5041_MOTOR_ADDR_DRV(motor))
90139
#define TMC5041_DRVSTATUS(motor) (0x6F | TMC5041_MOTOR_ADDR_DRV(motor))
91140

92-
#define TMC5041_RAMPMODE_POSITIONING_MODE 0
93-
#define TMC5041_RAMPMODE_POSITIVE_VELOCITY_MODE 1
94-
#define TMC5041_RAMPMODE_NEGATIVE_VELOCITY_MODE 2
95-
#define TMC5041_RAMPMODE_HOLD_MODE 3
96-
97-
#define TMC5041_SW_MODE_SG_STOP_ENABLE BIT(10)
98-
99-
#define TMC5041_RAMPSTAT_INT_MASK GENMASK(7, 4)
100-
#define TMC5041_RAMPSTAT_INT_SHIFT 4
101-
102-
#define TMC5041_RAMPSTAT_POS_REACHED_EVENT_MASK BIT(7)
103-
#define TMC5041_POS_REACHED_EVENT \
104-
(TMC5041_RAMPSTAT_POS_REACHED_EVENT_MASK >> TMC5041_RAMPSTAT_INT_SHIFT)
105-
106-
#define TMC5041_RAMPSTAT_STOP_SG_EVENT_MASK BIT(6)
107-
#define TMC5041_STOP_SG_EVENT (TMC5041_RAMPSTAT_STOP_SG_EVENT_MASK >> TMC5041_RAMPSTAT_INT_SHIFT)
108-
109-
#define TMC5041_RAMPSTAT_STOP_RIGHT_EVENT_MASK BIT(5)
110-
#define TMC5041_STOP_RIGHT_EVENT \
111-
(TMC5041_RAMPSTAT_STOP_RIGHT_EVENT_MASK >> TMC5041_RAMPSTAT_INT_SHIFT)
112-
113-
#define TMC5041_RAMPSTAT_STOP_LEFT_EVENT_MASK BIT(4)
114-
#define TMC5041_STOP_LEFT_EVENT \
115-
(TMC5041_RAMPSTAT_STOP_LEFT_EVENT_MASK >> TMC5041_RAMPSTAT_INT_SHIFT)
116-
117-
#define TMC5041_DRV_STATUS_STST_BIT BIT(31)
118-
#define TMC5041_DRV_STATUS_SG_RESULT_MASK GENMASK(9, 0)
119-
#define TMC5041_DRV_STATUS_SG_STATUS_MASK BIT(24)
120-
#define TMC5041_DRV_STATUS_SG_STATUS_SHIFT 24
121-
122-
#define TMC5041_SG_MIN_VALUE -64
123-
#define TMC5041_SG_MAX_VALUE 63
124-
125-
#define TMC5041_COOLCONF_SG2_THRESHOLD_VALUE_SHIFT 16
126-
127-
#define TMC5041_IHOLD_MASK GENMASK(4, 0)
128-
#define TMC5041_IHOLD_SHIFT 0
129-
#define TMC5041_IHOLD(n) (((n) << TMC5041_IHOLD_SHIFT) & TMC5041_IHOLD_MASK)
130-
131-
#define TMC5041_IRUN_MASK GENMASK(12, 8)
132-
#define TMC5041_IRUN_SHIFT 8
133-
#define TMC5041_IRUN(n) (((n) << TMC5041_IRUN_SHIFT) & TMC5041_IRUN_MASK)
134-
135-
#define TMC5041_IHOLDDELAY_MASK GENMASK(19, 16)
136-
#define TMC5041_IHOLDDELAY_SHIFT 16
137-
#define TMC5041_IHOLDDELAY(n) (((n) << TMC5041_IHOLDDELAY_SHIFT) & TMC5041_IHOLDDELAY_MASK)
138-
139-
#define TMC5041_CHOPCONF_DRV_ENABLE_MASK GENMASK(3, 0)
140-
#define TMC5041_CHOPCONF_MRES_MASK GENMASK(27, 24)
141-
#define TMC5041_CHOPCONF_MRES_SHIFT 24
142-
143141
#endif
144142

145143
/**

0 commit comments

Comments
 (0)