All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alex Horn <alex.horn@cs.ox.ac.uk>,
	qemu-devel@nongnu.org, afaerber@suse.de
Cc: peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCH 1/1] tmp105: Create API for TMP105 temperature sensor.
Date: Sun, 23 Dec 2012 15:26:53 -0600	[thread overview]
Message-ID: <87fw2wtq76.fsf@codemonkey.ws> (raw)
In-Reply-To: <1354710846-10687-1-git-send-email-alex.horn@cs.ox.ac.uk>

Alex Horn <alex.horn@cs.ox.ac.uk> writes:

> * Define enum for TMP105 registers
> * Move tmp105_set() from I2C to TMP105 header
> * Document units and range of temperature as preconditions
>
> Signed-off-by: Alex Horn <alex.horn@cs.ox.ac.uk>

Applied. Thanks.

Regards,

Anthony Liguori

> ---
>  hw/i2c.h    |    3 --
>  hw/tmp105.c |   17 ++++++++-------
>  hw/tmp105.h |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 76 insertions(+), 11 deletions(-)
>  create mode 100644 hw/tmp105.h
>
> diff --git a/hw/i2c.h b/hw/i2c.h
> index 0f5682b..883b5c5 100644
> --- a/hw/i2c.h
> +++ b/hw/i2c.h
> @@ -73,9 +73,6 @@ void *wm8750_dac_buffer(void *opaque, int samples);
>  void wm8750_dac_commit(void *opaque);
>  void wm8750_set_bclk_in(void *opaque, int new_hz);
>  
> -/* tmp105.c */
> -void tmp105_set(I2CSlave *i2c, int temp);
> -
>  /* lm832x.c */
>  void lm832x_key_event(DeviceState *dev, int key, int state);
>  
> diff --git a/hw/tmp105.c b/hw/tmp105.c
> index 8e8dbd9..9c67e64 100644
> --- a/hw/tmp105.c
> +++ b/hw/tmp105.c
> @@ -20,6 +20,7 @@
>  
>  #include "hw.h"
>  #include "i2c.h"
> +#include "tmp105.h"
>  
>  typedef struct {
>      I2CSlave i2c;
> @@ -92,22 +93,22 @@ static void tmp105_read(TMP105State *s)
>      }
>  
>      switch (s->pointer & 3) {
> -    case 0:	/* Temperature */
> +    case TMP105_REG_TEMPERATURE:
>          s->buf[s->len ++] = (((uint16_t) s->temperature) >> 8);
>          s->buf[s->len ++] = (((uint16_t) s->temperature) >> 0) &
>                  (0xf0 << ((~s->config >> 5) & 3));		/* R */
>          break;
>  
> -    case 1:	/* Configuration */
> +    case TMP105_REG_CONFIG:
>          s->buf[s->len ++] = s->config;
>          break;
>  
> -    case 2:	/* T_LOW */
> +    case TMP105_REG_T_LOW:
>          s->buf[s->len ++] = ((uint16_t) s->limit[0]) >> 8;
>          s->buf[s->len ++] = ((uint16_t) s->limit[0]) >> 0;
>          break;
>  
> -    case 3:	/* T_HIGH */
> +    case TMP105_REG_T_HIGH:
>          s->buf[s->len ++] = ((uint16_t) s->limit[1]) >> 8;
>          s->buf[s->len ++] = ((uint16_t) s->limit[1]) >> 0;
>          break;
> @@ -117,10 +118,10 @@ static void tmp105_read(TMP105State *s)
>  static void tmp105_write(TMP105State *s)
>  {
>      switch (s->pointer & 3) {
> -    case 0:	/* Temperature */
> +    case TMP105_REG_TEMPERATURE:
>          break;
>  
> -    case 1:	/* Configuration */
> +    case TMP105_REG_CONFIG:
>          if (s->buf[0] & ~s->config & (1 << 0))			/* SD */
>              printf("%s: TMP105 shutdown\n", __FUNCTION__);
>          s->config = s->buf[0];
> @@ -128,8 +129,8 @@ static void tmp105_write(TMP105State *s)
>          tmp105_alarm_update(s);
>          break;
>  
> -    case 2:	/* T_LOW */
> -    case 3:	/* T_HIGH */
> +    case TMP105_REG_T_LOW:
> +    case TMP105_REG_T_HIGH:
>          if (s->len >= 3)
>              s->limit[s->pointer & 1] = (int16_t)
>                      ((((uint16_t) s->buf[0]) << 8) | s->buf[1]);
> diff --git a/hw/tmp105.h b/hw/tmp105.h
> new file mode 100644
> index 0000000..51eff4b
> --- /dev/null
> +++ b/hw/tmp105.h
> @@ -0,0 +1,67 @@
> +/*
> + * Texas Instruments TMP105 Temperature Sensor
> + *
> + * Browse the data sheet:
> + *
> + *    http://www.ti.com/lit/gpn/tmp105
> + *
> + * Copyright (C) 2012 Alex Horn <alex.horn@cs.ox.ac.uk>
> + * Copyright (C) 2008-2012 Andrzej Zaborowski <balrogg@gmail.com>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * later. See the COPYING file in the top-level directory.
> + */
> +#ifndef QEMU_TMP105_H
> +#define QEMU_TMP105_H
> +
> +#include "i2c.h"
> +
> +/**
> + * TMP105Reg:
> + * @TMP105_REG_TEMPERATURE: Temperature register
> + * @TMP105_REG_CONFIG: Configuration register
> + * @TMP105_REG_T_LOW: Low temperature register (also known as T_hyst)
> + * @TMP105_REG_T_HIGH: High temperature register (also known as T_OS)
> + *
> + * The following temperature sensors are
> + * compatible with the TMP105 registers:
> + * - adt75
> + * - ds1775
> + * - ds75
> + * - lm75
> + * - lm75a
> + * - max6625
> + * - max6626
> + * - mcp980x
> + * - stds75
> + * - tcn75
> + * - tmp100
> + * - tmp101
> + * - tmp105
> + * - tmp175
> + * - tmp275
> + * - tmp75
> + **/
> +typedef enum TMP105Reg {
> +    TMP105_REG_TEMPERATURE = 0,
> +    TMP105_REG_CONFIG,
> +    TMP105_REG_T_LOW,
> +    TMP105_REG_T_HIGH,
> +} TMP105Reg;
> +
> +/**
> + * tmp105_set:
> + * @i2c: dispatcher to TMP105 hardware model
> + * @temp: temperature with 0.001 centigrades units in the range -40 C to +125 C
> + *
> + * Sets the temperature of the TMP105 hardware model.
> + *
> + * Bits 5 and 6 (value 32 and 64) in the register indexed by TMP105_REG_CONFIG
> + * determine the precision of the temperature. See Table 8 in the data sheet.
> + *
> + * @see_also: I2C_SLAVE macro
> + * @see_also: http://www.ti.com/lit/gpn/tmp105
> + */
> +void tmp105_set(I2CSlave *i2c, int temp);
> +
> +#endif
> -- 
> 1.7.6.5

  parent reply	other threads:[~2012-12-23 21:27 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-05 12:34 [Qemu-devel] [PATCH 1/1] tmp105: Create API for TMP105 temperature sensor Alex Horn
2012-12-05 12:47 ` Andreas Färber
2012-12-23 21:26 ` Anthony Liguori [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-12-04 19:23 Alex Horn
2012-12-04 21:50 ` Andreas Färber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fw2wtq76.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=afaerber@suse.de \
    --cc=alex.horn@cs.ox.ac.uk \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.