Re: [PATCH v3 3/7] media: i2c: max2175: Add MAX2175 support
Hi Ramesh, A few little nitpicks: On 02/07/2017 04:02 PM, Ramesh Shanmugasundaram wrote: > This patch adds driver support for the MAX2175 chip. This is Maxim > Integrated's RF to Bits tuner front end chip designed for software-defined > radio solutions. This driver exposes the tuner as a sub-device instance > with standard and custom controls to configure the device. > > Signed-off-by: Ramesh Shanmugasundaram >> --- > Documentation/media/v4l-drivers/index.rst |1 + > Documentation/media/v4l-drivers/max2175.rst | 60 ++ > drivers/media/i2c/Kconfig |4 + > drivers/media/i2c/Makefile |2 + > drivers/media/i2c/max2175/Kconfig |8 + > drivers/media/i2c/max2175/Makefile |4 + > drivers/media/i2c/max2175/max2175.c | 1438 > +++ > drivers/media/i2c/max2175/max2175.h | 108 ++ > 8 files changed, 1625 insertions(+) > create mode 100644 Documentation/media/v4l-drivers/max2175.rst > create mode 100644 drivers/media/i2c/max2175/Kconfig > create mode 100644 drivers/media/i2c/max2175/Makefile > create mode 100644 drivers/media/i2c/max2175/max2175.c > create mode 100644 drivers/media/i2c/max2175/max2175.h > > + > +static const struct v4l2_ctrl_config max2175_i2s_en = { > + .ops = _ctrl_ops, > + .id = V4L2_CID_MAX2175_I2S_ENABLE, > + .name = "I2S Enable", > + .type = V4L2_CTRL_TYPE_BOOLEAN, > + .min = 0, > + .max = 1, > + .step = 1, > + .def = 1, > +}; > + > +/* > + * HSLS value control LO freq adjacent location configuration. > + * Refer to Documentation/media/v4l-drivers/max2175 for more details. > + */ > +static const struct v4l2_ctrl_config max2175_hsls = { > + .ops = _ctrl_ops, > + .id = V4L2_CID_MAX2175_HSLS, > + .name = "HSLS above/below desired", The convention is that the descriptions of controls follow the English 'title' rules w.r.t. caps. See v4l2-ctrls.c. This would become: "HSLS Above/Below Desired". > + .type = V4L2_CTRL_TYPE_INTEGER, Shouldn't this be a boolean control? > + .min = 0, > + .max = 1, > + .step = 1, > + .def = 1, > +}; > + > +/* > + * Rx modes below are a set of preset configurations that decides the tuner's > + * sck and sample rate of transmission. They are separate for EU & NA > regions. > + * Refer to Documentation/media/v4l-drivers/max2175 for more details. > + */ > +static const char * const max2175_ctrl_eu_rx_modes[] = { > + [MAX2175_EU_FM_1_2] = "EU FM 1.2", > + [MAX2175_DAB_1_2] = "DAB 1.2", > +}; > + > +static const char * const max2175_ctrl_na_rx_modes[] = { > + [MAX2175_NA_FM_1_0] = "NA FM 1.0", > + [MAX2175_NA_FM_2_0] = "NA FM 2.0", > +}; > + > +static const struct v4l2_ctrl_config max2175_eu_rx_mode = { > + .ops = _ctrl_ops, > + .id = V4L2_CID_MAX2175_RX_MODE, > + .name = "RX MODE", MODE -> Mode. > + .type = V4L2_CTRL_TYPE_MENU, > + .max = ARRAY_SIZE(max2175_ctrl_eu_rx_modes) - 1, > + .def = 0, > + .qmenu = max2175_ctrl_eu_rx_modes, > +}; > + > +static const struct v4l2_ctrl_config max2175_na_rx_mode = { > + .ops = _ctrl_ops, > + .id = V4L2_CID_MAX2175_RX_MODE, > + .name = "RX MODE", Ditto. > + .type = V4L2_CTRL_TYPE_MENU, > + .max = ARRAY_SIZE(max2175_ctrl_na_rx_modes) - 1, > + .def = 0, > + .qmenu = max2175_ctrl_na_rx_modes, > +}; > + Regards, Hans
[PATCH v3 3/7] media: i2c: max2175: Add MAX2175 support
This patch adds driver support for the MAX2175 chip. This is Maxim Integrated's RF to Bits tuner front end chip designed for software-defined radio solutions. This driver exposes the tuner as a sub-device instance with standard and custom controls to configure the device. Signed-off-by: Ramesh Shanmugasundaram--- Documentation/media/v4l-drivers/index.rst |1 + Documentation/media/v4l-drivers/max2175.rst | 60 ++ drivers/media/i2c/Kconfig |4 + drivers/media/i2c/Makefile |2 + drivers/media/i2c/max2175/Kconfig |8 + drivers/media/i2c/max2175/Makefile |4 + drivers/media/i2c/max2175/max2175.c | 1438 +++ drivers/media/i2c/max2175/max2175.h | 108 ++ 8 files changed, 1625 insertions(+) create mode 100644 Documentation/media/v4l-drivers/max2175.rst create mode 100644 drivers/media/i2c/max2175/Kconfig create mode 100644 drivers/media/i2c/max2175/Makefile create mode 100644 drivers/media/i2c/max2175/max2175.c create mode 100644 drivers/media/i2c/max2175/max2175.h diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst index a606d1c..d8cade5 100644 --- a/Documentation/media/v4l-drivers/index.rst +++ b/Documentation/media/v4l-drivers/index.rst @@ -42,6 +42,7 @@ For more details see the file COPYING in the source distribution of Linux. davinci-vpbe fimc ivtv +max2175 meye omap3isp omap4_camera diff --git a/Documentation/media/v4l-drivers/max2175.rst b/Documentation/media/v4l-drivers/max2175.rst new file mode 100644 index 000..201af8f --- /dev/null +++ b/Documentation/media/v4l-drivers/max2175.rst @@ -0,0 +1,60 @@ +Maxim Integrated MAX2175 RF to bits tuner driver + + +The MAX2175 driver implements the following driver-specific controls: + +``V4L2_CID_MAX2175_I2S_ENABLE`` +--- +Enable/Disable I2S output of the tuner. + +.. flat-table:: +:header-rows: 0 +:stub-columns: 0 +:widths: 1 4 + +* - ``(0)`` + - I2S output is disabled. +* - ``(1)`` + - I2S output is enabled. + +``V4L2_CID_MAX2175_HSLS`` +- +The high-side/low-side (HSLS) control of the tuner for a given band. + +.. flat-table:: +:header-rows: 0 +:stub-columns: 0 +:widths: 1 4 + +* - ``(0)`` + - The LO frequency position is below the desired frequency. +* - ``(1)`` + - The LO frequency position is above the desired frequency. + +``V4L2_CID_MAX2175_RX_MODE (menu)`` +--- +The Rx mode controls a number of preset parameters of the tuner like sck +rate, sampling rate etc. These multiple settings are provided under one +single label called Rx mode in the datasheet. The list below shows the +supported modes with a brief description. + +.. flat-table:: +:header-rows: 0 +:stub-columns: 0 +:widths: 1 4 + +* - ``"Europe modes"`` +* - ``"FM 1.2" (0)`` + - This configures FM band with a sample rate of 0.512 million +samples/sec with a 10.24 MHz sck. +* - ``"DAB 1.2" (1)`` + - This configures VHF band with a sample rate of 2.048 million +samples/sec with a 32.768 MHz sck. + +* - ``"North America modes"`` +* - ``"FM 1.0" (0)`` + - This configures FM band with a sample rate of 0.7441875 million +samples/sec with a 14.88375 MHz sck. +* - ``"DAB 1.2" (1)`` + - This configures FM band with a sample rate of 0.372 million +samples/sec with a 7.441875 MHz sck. diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index cee1dae..3fd1443 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -751,6 +751,10 @@ config VIDEO_SAA6752HS To compile this driver as a module, choose M here: the module will be called saa6752hs. +comment "SDR tuner chips" + +source "drivers/media/i2c/max2175/Kconfig" + comment "Miscellaneous helper chips" config VIDEO_THS7303 diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 5bc7bbe..d8a079e 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -7,6 +7,8 @@ obj-$(CONFIG_VIDEO_CX25840) += cx25840/ obj-$(CONFIG_VIDEO_M5MOLS) += m5mols/ obj-y += soc_camera/ +obj-$(CONFIG_SDR_MAX2175) += max2175/ + obj-$(CONFIG_VIDEO_APTINA_PLL) += aptina-pll.o obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o obj-$(CONFIG_VIDEO_TDA7432) += tda7432.o diff --git a/drivers/media/i2c/max2175/Kconfig b/drivers/media/i2c/max2175/Kconfig new file mode 100644 index 000..93a8f83 --- /dev/null +++ b/drivers/media/i2c/max2175/Kconfig @@ -0,0 +1,8 @@ +config SDR_MAX2175 + tristate "Maxim 2175 RF to Bits tuner" + depends on VIDEO_V4L2 && MEDIA_SDR_SUPPORT