64 #include <drivers/hw_include/cslr_cmpss.h>
65 #include <drivers/hw_include/cslr_soc.h>
66 #include <drivers/hw_include/hw_types.h>
75 #define CMPSS_HICMP_CTL_M (CSL_CMPSSA_COMPCTL_COMPHSOURCE_MASK | \
76 CSL_CMPSSA_COMPCTL_COMPHINV_MASK | \
77 CSL_CMPSSA_COMPCTL_ASYNCHEN_MASK)
79 #define CMPSS_LOCMP_CTL_M (CSL_CMPSSA_COMPCTL_COMPLSOURCE_MASK | \
80 CSL_CMPSSA_COMPCTL_COMPLINV_MASK | \
81 CSL_CMPSSA_COMPCTL_ASYNCLEN_MASK)
93 #define CMPSS_INSRC_DAC (0x0000U)
94 #define CMPSS_INSRC_PIN (0x0001U)
101 #define CMPSS_INV_INVERTED (0x0002U)
102 #define CMPSS_OR_ASYNC_OUT_W_FILT (0x0040U)
115 #define CMPSS_TRIPOUT_ASYNC_COMP (0x0000U)
116 #define CMPSS_TRIPOUT_SYNC_COMP (0x0010U)
118 #define CMPSS_TRIPOUT_FILTER (0x0020U)
120 #define CMPSS_TRIPOUT_LATCH (0x0030U)
127 #define CMPSS_TRIP_ASYNC_COMP (0x0000U)
128 #define CMPSS_TRIP_SYNC_COMP (0x0004U)
130 #define CMPSS_TRIP_FILTER (0x0008U)
132 #define CMPSS_TRIP_LATCH (0x000CU)
141 #define CMPSS_STS_HI_FILTOUT (0x0001U)
142 #define CMPSS_STS_HI_LATCHFILTOUT (0x0002U)
144 #define CMPSS_STS_LO_FILTOUT (0x0100U)
146 #define CMPSS_STS_LO_LATCHFILTOUT (0x0200U)
158 #define CMPSS_DACVAL_SYSCLK (0x0000U)
159 #define CMPSS_DACVAL_PWMSYNC (0x0080U)
166 #define CMPSS_DACREF_VDDA (0x0000U)
167 #define CMPSS_DACREF_VDAC (0x0020U)
174 #define CMPSS_DACSRC_SHDW (0x0000U)
175 #define CMPSS_DACSRC_RAMP (0x0001U)
200 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
201 HW_RD_REG16(base + CSL_CMPSSA_COMPCTL) |
202 CSL_CMPSSA_COMPCTL_COMPDACE_MASK);
222 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
223 HW_RD_REG16(base + CSL_CMPSSA_COMPCTL) &
224 ~CSL_CMPSSA_COMPCTL_COMPDACE_MASK);
260 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
297 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
336 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
337 (HW_RD_REG16(base + CSL_CMPSSA_COMPCTL) &
338 ~(CSL_CMPSSA_COMPCTL_CTRIPOUTHSEL_MASK |
339 CSL_CMPSSA_COMPCTL_CTRIPHSEL_MASK)) | config);
376 HW_WR_REG16((base + CSL_CMPSSA_COMPCTL),
377 (HW_RD_REG16(base + CSL_CMPSSA_COMPCTL) &
378 ~(CSL_CMPSSA_COMPCTL_CTRIPOUTLSEL_MASK |
379 CSL_CMPSSA_COMPCTL_CTRIPLSEL_MASK)) | (config << 8U));
400 static inline uint16_t
406 return(HW_RD_REG16(base + CSL_CMPSSA_COMPSTS));
448 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL),
449 (HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL) &
450 ~(CSL_CMPSSA_COMPDACCTL_SWLOADSEL_MASK |
451 CSL_CMPSSA_COMPDACCTL_SELREF_MASK |
452 CSL_CMPSSA_COMPDACCTL_DACSOURCE_MASK)) | config);
478 HW_WR_REG16((base + CSL_CMPSSA_DACHVALS), value);
504 HW_WR_REG16((base + CSL_CMPSSA_DACLVALS), value);
528 HW_WR_REG16((base + CSL_CMPSSA_CTRIPHFILCTL),
529 HW_RD_REG16(base + CSL_CMPSSA_CTRIPHFILCTL) |
530 CSL_CMPSSA_CTRIPHFILCTL_FILINIT_MASK);
554 HW_WR_REG16((base + CSL_CMPSSA_CTRIPLFILCTL),
555 HW_RD_REG16(base + CSL_CMPSSA_CTRIPLFILCTL) |
556 CSL_CMPSSA_CTRIPLFILCTL_FILINIT_MASK);
572 static inline uint16_t
578 return(HW_RD_REG16(base + CSL_CMPSSA_DACHVALA));
594 static inline uint16_t
600 return(HW_RD_REG16(base + CSL_CMPSSA_DACLVALA));
621 HW_WR_REG16((base + CSL_CMPSSA_COMPSTSCLR),
622 HW_RD_REG16(base + CSL_CMPSSA_COMPSTSCLR) |
623 CSL_CMPSSA_COMPSTSCLR_HLATCHCLR_MASK);
644 HW_WR_REG16((base + CSL_CMPSSA_COMPSTSCLR),
645 HW_RD_REG16(base + CSL_CMPSSA_COMPSTSCLR) |
646 CSL_CMPSSA_COMPSTSCLR_LLATCHCLR_MASK);
668 HW_WR_REG16((base + CSL_CMPSSA_RAMPMAXREFS), value);
681 static inline uint16_t
687 return(HW_RD_REG16(base + CSL_CMPSSA_RAMPMAXREFA));
709 HW_WR_REG16((base + CSL_CMPSSA_RAMPDECVALS), value);
722 static inline uint16_t
728 return(HW_RD_REG16(base + CSL_CMPSSA_RAMPDECVALA));
753 HW_WR_REG16((base + CSL_CMPSSA_RAMPDLYS), value);
766 static inline uint16_t
772 return(HW_RD_REG16(base + CSL_CMPSSA_RAMPDLYA));
802 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL),
803 (HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL) &
804 ~CSL_CMPSSA_COMPDACCTL_BLANKSOURCE_MASK) | (((pwmBlankSrc - 1U)&0xF) <<
805 CSL_CMPSSA_COMPDACCTL_BLANKSOURCE_SHIFT));
808 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL2),
809 (HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL2) &
810 ~CSL_CMPSSA_COMPDACCTL2_BLANKSOURCEUSEL_MASK) | ((((pwmBlankSrc-1)>>4) <<
811 CSL_CMPSSA_COMPDACCTL2_BLANKSOURCEUSEL_SHIFT) &
812 CSL_CMPSSA_COMPDACCTL2_BLANKSOURCEUSEL_MASK));
833 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL),
834 HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL) |
835 CSL_CMPSSA_COMPDACCTL_BLANKEN_MASK);
856 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL),
857 HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL) &
858 ~CSL_CMPSSA_COMPDACCTL_BLANKEN_MASK);
875 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL2),
876 HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL2) |
877 (0x1<<CSL_CMPSSA_COMPDACCTL2_DEENABLE_SHIFT) &
878 CSL_CMPSSA_COMPDACCTL2_DEENABLE_MASK);
896 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL2),
897 HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL2) &
898 ~((0x1<<CSL_CMPSSA_COMPDACCTL2_DEENABLE_SHIFT) &
899 CSL_CMPSSA_COMPDACCTL2_DEENABLE_MASK));
917 HW_WR_REG16((base + CSL_CMPSSA_COMPDACCTL2),
918 (HW_RD_REG16(base + CSL_CMPSSA_COMPDACCTL2) &
919 ~CSL_CMPSSA_COMPDACCTL2_DEACTIVESEL_MASK) |
920 ((deactivesel << CSL_CMPSSA_COMPDACCTL2_DEACTIVESEL_SHIFT) &
921 CSL_CMPSSA_COMPDACCTL2_DEACTIVESEL_MASK));
941 HW_WR_REG16((base + CSL_CMPSSA_DACHVALS2),
942 dacval & CSL_CMPSSA_DACHVALS2_DACVAL_MASK);
962 HW_WR_REG16((base + CSL_CMPSSA_DACLVALS2),
963 dacval & CSL_CMPSSA_DACLVALS2_DACVAL_MASK);
991 HW_WR_REG16((base + CSL_CMPSSA_CONFIG1),
992 CSL_CMPSSA_CONFIG1_COMPHHYS_MASK &
993 (value << CSL_CMPSSA_CONFIG1_COMPHHYS_SHIFT));
1021 HW_WR_REG16((base + CSL_CMPSSA_CONFIG1),
1022 CSL_CMPSSA_CONFIG1_COMPLHYS_MASK &
1023 (value << CSL_CMPSSA_CONFIG1_COMPLHYS_SHIFT));
1073 uint16_t sampleWindow, uint16_t threshold);
1121 uint16_t sampleWindow, uint16_t threshold);
1184 uint16_t delayVal, uint16_t pwmSyncSrc,
bool useRampValShdw);
1202 #endif // CMPSS_V0_H_