From: Frank Mori Hess Date: Tue, 7 Mar 2006 02:44:34 +0000 (+0000) Subject: Added INSN_CONFIG_GET_PWM_OUTPUT config insn. X-Git-Tag: r0_7_71~49 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=85a894067fc858c702b2a3974e3e3c9fd9a61a1b;p=comedi.git Added INSN_CONFIG_GET_PWM_OUTPUT config insn. --- diff --git a/comedi/drivers/ni_mio_common.c b/comedi/drivers/ni_mio_common.c index cb92c71c..0e72d7c3 100644 --- a/comedi/drivers/ni_mio_common.c +++ b/comedi/drivers/ni_mio_common.c @@ -3341,6 +3341,13 @@ static int ni_m_series_eeprom_insn_read(comedi_device *dev,comedi_subdevice *s, return 1; } +static int ni_get_pwm_config(comedi_device *dev, lsampl_t *data) +{ + data[1] = devpriv->pwm_up_count * TIMER_BASE; + data[2] = devpriv->pwm_down_count * TIMER_BASE; + return 3; +} + static int ni_m_series_pwm_config(comedi_device *dev, comedi_subdevice *s, comedi_insn *insn, lsampl_t *data) { @@ -3386,8 +3393,13 @@ static int ni_m_series_pwm_config(comedi_device *dev, comedi_subdevice *s, return -EAGAIN; } ni_writel(MSeries_Cal_PWM_High_Time_Bits(up_count) | MSeries_Cal_PWM_Low_Time_Bits(down_count), M_Offset_Cal_PWM); + devpriv->pwm_up_count = up_count; + devpriv->pwm_down_count = down_count; return 5; break; + case INSN_CONFIG_GET_PWM_OUTPUT: + return ni_get_pwm_config(dev, data); + break; default: return -EINVAL; break; @@ -3440,9 +3452,13 @@ static int ni_6143_pwm_config(comedi_device *dev, comedi_subdevice *s, return -EAGAIN; } ni_writel(up_count, Calibration_HighTime_6143); + devpriv->pwm_up_count = up_count; ni_writel(down_count, Calibration_LowTime_6143); + devpriv->pwm_down_count = down_count; return 5; break; + case INSN_CONFIG_GET_PWM_OUTPUT: + return ni_get_pwm_config(dev, data); default: return -EINVAL; break; diff --git a/comedi/drivers/ni_stc.h b/comedi/drivers/ni_stc.h index 0d98b8d7..29f091f3 100644 --- a/comedi/drivers/ni_stc.h +++ b/comedi/drivers/ni_stc.h @@ -1145,7 +1145,10 @@ static ni_board ni_boards[]; unsigned short atrig_mode; \ unsigned short atrig_high; \ unsigned short atrig_low; \ - \ + \ + unsigned short pwm_up_count; \ + unsigned short pwm_down_count; \ + \ sampl_t ai_fifo_buffer[0x2000]; \ uint8_t eeprom_buffer[M_SERIES_EEPROM_SIZE]; diff --git a/include/linux/comedi.h b/include/linux/comedi.h index 698ad1e0..f18d55c4 100644 --- a/include/linux/comedi.h +++ b/include/linux/comedi.h @@ -238,6 +238,7 @@ enum configuration_ids INSN_CONFIG_BIDIRECTIONAL_DATA = 27, INSN_CONFIG_DIO_QUERY = 28, INSN_CONFIG_PWM_OUTPUT = 29, + INSN_CONFIG_GET_PWM_OUTPUT = 30, INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001, // Use CTR as single pulsegenerator INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002, // Use CTR as pulsetraingenerator INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003, // Use the counter as encoder