Hi, On Fri, May 25, 2018 at 04:52:35PM +0300, Sakari Ailus wrote: > Use the "rotation" property to tell that the sensor is mounted upside > down. This reverses the behaviour of the VFLIP and HFLIP controls as well > as the pixel order. > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> -- Sebastian > since v2.2: > > - Fix property name in code. > > .../devicetree/bindings/media/i2c/nokia,smia.txt | 2 ++ > drivers/media/i2c/smiapp/smiapp-core.c | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt b/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt > index 33f10a94c381..6f509657470e 100644 > --- a/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt > +++ b/Documentation/devicetree/bindings/media/i2c/nokia,smia.txt > @@ -29,6 +29,8 @@ Optional properties > - reset-gpios: XSHUTDOWN GPIO > - flash-leds: See ../video-interfaces.txt > - lens-focus: See ../video-interfaces.txt > +- rotation: Integer property; valid values are 0 (sensor mounted upright) > + and 180 (sensor mounted upside down). > > > Endpoint node mandatory properties > diff --git a/drivers/media/i2c/smiapp/smiapp-core.c b/drivers/media/i2c/smiapp/smiapp-core.c > index e1f8208581aa..e9e0f21efc2a 100644 > --- a/drivers/media/i2c/smiapp/smiapp-core.c > +++ b/drivers/media/i2c/smiapp/smiapp-core.c > @@ -2764,6 +2764,7 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev) > struct v4l2_fwnode_endpoint *bus_cfg; > struct fwnode_handle *ep; > struct fwnode_handle *fwnode = dev_fwnode(dev); > + u32 rotation; > int i; > int rval; > > @@ -2800,6 +2801,21 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev) > > dev_dbg(dev, "lanes %u\n", hwcfg->lanes); > > + rval = fwnode_property_read_u32(fwnode, "rotation", &rotation); > + if (!rval) { > + switch (rotation) { > + case 180: > + hwcfg->module_board_orient = > + SMIAPP_MODULE_BOARD_ORIENT_180; > + /* Fall through */ > + case 0: > + break; > + default: > + dev_err(dev, "invalid rotation %u\n", rotation); > + goto out_err; > + } > + } > + > /* NVM size is not mandatory */ > fwnode_property_read_u32(fwnode, "nokia,nvm-size", &hwcfg->nvm_size); > > -- > 2.11.0 >
Attachment:
signature.asc
Description: PGP signature