emhell-0.1.1.0: src/EmHell/SVD/Query.hs
module EmHell.SVD.Query
( getRegWithAddr
) where
import Data.SVD (Device, Register)
import qualified Data.SVD.Util
-- | Get @Register@ and its address
-- based on peripheral name and device
getRegWithAddr
:: String -- ^ Peripheral name
-> String -- ^ Register name
-> Device
-> Either String (Register, Int)
getRegWithAddr pName rName dev =
let
reg =
Data.SVD.Util.getPeriphReg
pName
rName
dev
regAddr =
Data.SVD.Util.getPeriphRegAddr
pName
rName
dev
in
case (reg, regAddr) of
(Right r, Right ra) -> Right (r, ra)
(_, _) -> Left "Register not found"