anchor.diff:  % <a href="http://www.st.com/web/en/resource/technical/document/datasheet/DM00141379.pdf">LPS25HB</a>
   % for a complete description.
   %
  -% @spec read(Comp, Registers, Opts) -> {error, Reason} | Result
  -%      Comp = acc | mag | alt
  -%      Registers = [Atom]
  -%      Opts = Map
  +-spec read(component(), [register()], opts()) -> any() | {error, any()}.
   read(Comp, Registers, Opts) when is_list(Registers) ->
       call({read, Comp, Registers, Opts}).
   
  
positive.code: % Use {@link registers/0} and {@link registers/1} to see the mapping between
  % Erlang expressions and the bits on the hardware.
  
  % @spec config(Comp, Options) -> Result
  %      Comp = acc | mag | alt
  %      Options = Map
  config(Comp, Options) when is_map(Options) -> call({config, Comp, Options}).
  
  % @equiv read(Comp, Registers, #{})
  % @spec read(Comp, Registers) -> {error, Reason} | Result
  read(Comp, Registers) -> read(Comp, Registers, #{}).
  
  % @doc Read registers of a component.
  
negative.code: -include("pmod_nav.hrl").
  
  -define(SPI_MODE, #{clock => {high, trailing}}).
  
  -type component() :: acc | mag | alt.
  -type register() :: atom().
  -type opts() :: #{}.
  
  %--- API -----------------------------------------------------------------------
  
  