samd51: improve TRNG

This commit is contained in:
sago35
2022-07-21 16:41:00 +09:00
committed by Ron Evans
parent 13ed58950f
commit 3047d8f321
+3 -5
View File
@@ -2067,18 +2067,16 @@ func (dac DAC) syncDAC() {
}
}
var rngInitDone = false
// GetRNG returns 32 bits of cryptographically secure random data
func GetRNG() (uint32, error) {
if !rngInitDone {
if !sam.MCLK.APBCMASK.HasBits(sam.MCLK_APBCMASK_TRNG_) {
// Turn on clock for TRNG
sam.MCLK.APBCMASK.SetBits(sam.MCLK_APBCMASK_TRNG_)
// enable
sam.TRNG.CTRLA.Set(sam.TRNG_CTRLA_ENABLE)
rngInitDone = true
}
for !sam.TRNG.INTFLAG.HasBits(sam.TRNG_INTFLAG_DATARDY) {
}
ret := sam.TRNG.DATA.Get()
return ret, nil