@@ -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