no-OS
Classes | Macros | Functions | Variables
hmc7044.h File Reference

Header file of HMC7044, HMC7043 Driver. More...

#include <stdbool.h>
#include <stdint.h>
#include "no_os_delay.h"
#include "no_os_spi.h"
Include dependency graph for hmc7044.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hmc7044_chan_spec
 
struct  hmc7044_dev
 
struct  hmc7044_init_param
 

Macros

#define HMC7044_PULSE_GEN_LEVEL_SENSITIVE   0
 
#define HMC7044_PULSE_GEN_1_PULSE   1
 
#define HMC7044_PULSE_GEN_2_PULSE   2
 
#define HMC7044_PULSE_GEN_4_PULSE   3
 
#define HMC7044_PULSE_GEN_8_PULSE   4
 
#define HMC7044_PULSE_GEN_16_PULSE   5
 
#define HMC7044_PULSE_GEN_CONT_PULSE   7
 
#define HMC7044_SYNC_PIN_DISABLED   0
 
#define HMC7044_SYNC_PIN_SYNC   1
 
#define HMC7044_SYNC_PIN_PULSE_GEN_REQ   2
 
#define HMC7044_SYNC_PIN_SYNC_THEN_PULSE_GEN   3
 

Functions

int32_t hmc7044_init (struct hmc7044_dev **device, const struct hmc7044_init_param *init_param)
 
int32_t hmc7044_remove (struct hmc7044_dev *device)
 
int32_t hmc7044_read (struct hmc7044_dev *dev, uint16_t reg, uint8_t *val)
 
int32_t hmc7044_clk_recalc_rate (struct hmc7044_dev *dev, uint32_t chan_num, uint64_t *rate)
 
int32_t hmc7044_clk_round_rate (struct hmc7044_dev *dev, uint32_t rate, uint64_t *rounded_rate)
 
int32_t hmc7044_clk_set_rate (struct hmc7044_dev *dev, uint32_t chan_num, uint64_t rate)
 

Variables

const struct no_os_clk_platform_ops hmc7044_clk_ops
 hmc7044 specific CLK platform ops structure More...
 

Detailed Description

Header file of HMC7044, HMC7043 Driver.

Author
DBogdan (drago.nosp@m.s.bo.nosp@m.gdan@.nosp@m.anal.nosp@m.og.co.nosp@m.m)

Copyright 2018-2020(c) Analog Devices, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

◆ HMC7044_PULSE_GEN_16_PULSE

#define HMC7044_PULSE_GEN_16_PULSE   5

◆ HMC7044_PULSE_GEN_1_PULSE

#define HMC7044_PULSE_GEN_1_PULSE   1

◆ HMC7044_PULSE_GEN_2_PULSE

#define HMC7044_PULSE_GEN_2_PULSE   2

◆ HMC7044_PULSE_GEN_4_PULSE

#define HMC7044_PULSE_GEN_4_PULSE   3

◆ HMC7044_PULSE_GEN_8_PULSE

#define HMC7044_PULSE_GEN_8_PULSE   4

◆ HMC7044_PULSE_GEN_CONT_PULSE

#define HMC7044_PULSE_GEN_CONT_PULSE   7

◆ HMC7044_PULSE_GEN_LEVEL_SENSITIVE

#define HMC7044_PULSE_GEN_LEVEL_SENSITIVE   0

◆ HMC7044_SYNC_PIN_DISABLED

#define HMC7044_SYNC_PIN_DISABLED   0

◆ HMC7044_SYNC_PIN_PULSE_GEN_REQ

#define HMC7044_SYNC_PIN_PULSE_GEN_REQ   2

◆ HMC7044_SYNC_PIN_SYNC

#define HMC7044_SYNC_PIN_SYNC   1

◆ HMC7044_SYNC_PIN_SYNC_THEN_PULSE_GEN

#define HMC7044_SYNC_PIN_SYNC_THEN_PULSE_GEN   3

Function Documentation

◆ hmc7044_clk_recalc_rate()

int32_t hmc7044_clk_recalc_rate ( struct hmc7044_dev dev,
uint32_t  chan_num,
uint64_t *  rate 
)

Recalculate rate corresponding to a channel.

Parameters
dev- The device structure.
chan_num- Channel number.
rate- Channel rate.
Returns
0 in case of success, negative error code otherwise.

◆ hmc7044_clk_round_rate()

int32_t hmc7044_clk_round_rate ( struct hmc7044_dev dev,
uint32_t  rate,
uint64_t *  rounded_rate 
)

Calculate closest possible rate

Parameters
dev- The device structure
rate- The desired rate.
rounded_rate- The closest possible rate of desired rate.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ hmc7044_clk_set_rate()

int32_t hmc7044_clk_set_rate ( struct hmc7044_dev dev,
uint32_t  chan_num,
uint64_t  rate 
)

Set channel rate.

Parameters
dev- The device structure.
chan_num- Channel number.
rate- Channel rate.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ hmc7044_init()

int32_t hmc7044_init ( struct hmc7044_dev **  device,
const struct hmc7044_init_param init_param 
)

Initialize the device.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ hmc7044_read()

int32_t hmc7044_read ( struct hmc7044_dev dev,
uint16_t  reg,
uint8_t *  val 
)

SPI register read from device.

Parameters
dev- The device structure.
reg- The register address.
val- The register data.
Returns
0 in case of success, negative error code otherwise.

◆ hmc7044_remove()

int32_t hmc7044_remove ( struct hmc7044_dev device)

Remove the device - release resources.

Parameters
device- The device structure.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

Variable Documentation

◆ hmc7044_clk_ops

const struct no_os_clk_platform_ops hmc7044_clk_ops

hmc7044 specific CLK platform ops structure

hmc7044 specific CLK platform ops structure