Lines Matching +full:gmsl +full:- +full:deserializer
1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2017-2020 Jacopo Mondi
4 * Copyright (C) 2017-2020 Kieran Bingham
5 * Copyright (C) 2017-2020 Laurent Pinchart
6 * Copyright (C) 2017-2020 Niklas Söderlund
10 * This file exports functions to control the Maxim MAX9271 GMSL serializer
11 * chip. This is not a self-contained driver, as MAX9271 is usually embedded in
16 * functions exported from this library driver to maximize code re-use.
29 dev_dbg(&dev->client->dev, "%s(0x%02x)\n", __func__, reg); in max9271_read()
31 ret = i2c_smbus_read_byte_data(dev->client, reg); in max9271_read()
33 dev_dbg(&dev->client->dev, in max9271_read()
44 dev_dbg(&dev->client->dev, "%s(0x%02x, 0x%02x)\n", __func__, reg, val); in max9271_write()
46 ret = i2c_smbus_write_byte_data(dev->client, reg, val); in max9271_write()
48 dev_err(&dev->client->dev, in max9271_write()
56 * max9271_pclk_detect() - Detect valid pixel clock from image sensor
78 dev_err(&dev->client->dev, "Unable to detect valid pixel clock\n"); in max9271_pclk_detect()
80 return -EIO; in max9271_pclk_detect()
89 dev->client->addr = MAX9271_DEFAULT_ADDR; in max9271_wake_up()
90 i2c_smbus_read_byte(dev->client); in max9271_wake_up()
113 * deserializer synchronization time isn't clearly documented. in max9271_set_serial_link()
116 * according to the deserializer datasheet we should wait 5ms. in max9271_set_serial_link()
118 * Short delays here appear to show bit-errors in the writes following. in max9271_set_serial_link()
176 * Configure the GMSL link: in max9271_configure_gmsl_link()
178 * - Double input mode, high data rate, 24-bit mode in max9271_configure_gmsl_link()
179 * - Latch input data on PCLKIN rising edge in max9271_configure_gmsl_link()
180 * - Enable HS/VS encoding in max9271_configure_gmsl_link()
181 * - 1-bit parity error detection in max9271_configure_gmsl_link()
183 * TODO: Make the GMSL link configuration parametric. in max9271_configure_gmsl_link()
193 * Adjust spread spectrum to +4% and auto-detect pixel clock in max9271_configure_gmsl_link()
220 dev_err(&dev->client->dev, "Failed to set gpio (%d)\n", ret); in max9271_set_gpios()
241 dev_err(&dev->client->dev, "Failed to clear gpio (%d)\n", ret); in max9271_clear_gpios()
263 dev_err(&dev->client->dev, "Failed to enable gpio (%d)\n", ret); in max9271_enable_gpios()
285 dev_err(&dev->client->dev, "Failed to disable gpio (%d)\n", ret); in max9271_disable_gpios()
301 dev_err(&dev->client->dev, "MAX9271 ID read failed (%d)\n", in max9271_verify_id()
307 dev_err(&dev->client->dev, "MAX9271 ID mismatch (0x%02x)\n", in max9271_verify_id()
309 return -ENXIO; in max9271_verify_id()
322 dev_err(&dev->client->dev, in max9271_set_address()
338 dev_err(&dev->client->dev, in max9271_set_deserializer_address()
339 "MAX9271 deserializer address set failed (%d)\n", ret); in max9271_set_deserializer_address()
354 dev_err(&dev->client->dev, in max9271_set_translation()
362 dev_err(&dev->client->dev, in max9271_set_translation()
372 MODULE_DESCRIPTION("Maxim MAX9271 GMSL Serializer");