rj54n1 425 drivers/media/i2c/rj54n1cb0c.c static struct rj54n1 *to_rj54n1(const struct i2c_client *client) rj54n1 427 drivers/media/i2c/rj54n1cb0c.c return container_of(i2c_get_clientdata(client), struct rj54n1, subdev); rj54n1 432 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 436 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->bank != reg >> 8) { rj54n1 441 drivers/media/i2c/rj54n1cb0c.c rj54n1->bank = reg >> 8; rj54n1 449 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 453 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->bank != reg >> 8) { rj54n1 458 drivers/media/i2c/rj54n1cb0c.c rj54n1->bank = reg >> 8; rj54n1 548 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 561 drivers/media/i2c/rj54n1cb0c.c output_w = (input_w * 1024 + rj54n1->resize / 2) / rj54n1->resize; rj54n1 562 drivers/media/i2c/rj54n1cb0c.c output_h = (input_h * 1024 + rj54n1->resize / 2) / rj54n1->resize; rj54n1 565 drivers/media/i2c/rj54n1cb0c.c input_w, input_h, rj54n1->resize, output_w, output_h); rj54n1 571 drivers/media/i2c/rj54n1cb0c.c rj54n1->width = output_w; rj54n1 572 drivers/media/i2c/rj54n1cb0c.c rj54n1->height = output_h; rj54n1 573 drivers/media/i2c/rj54n1cb0c.c rj54n1->resize = ret; rj54n1 574 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.width = input_w; rj54n1 575 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.height = input_h; rj54n1 585 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 598 drivers/media/i2c/rj54n1cb0c.c sel->r = rj54n1->rect; rj54n1 611 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 616 drivers/media/i2c/rj54n1cb0c.c mf->code = rj54n1->fmt->code; rj54n1 617 drivers/media/i2c/rj54n1cb0c.c mf->colorspace = rj54n1->fmt->colorspace; rj54n1 622 drivers/media/i2c/rj54n1cb0c.c mf->width = rj54n1->width; rj54n1 623 drivers/media/i2c/rj54n1cb0c.c mf->height = rj54n1->height; rj54n1 637 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 757 drivers/media/i2c/rj54n1cb0c.c if (!rj54n1->auto_wb) { rj54n1 779 drivers/media/i2c/rj54n1cb0c.c peak = 12 * RJ54N1_MAX_WIDTH * (1 << 14) * resize / rj54n1->tgclk_mhz / rj54n1 822 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 839 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div.ratio_tg); rj54n1 842 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div.ratio_t); rj54n1 845 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div.ratio_r); rj54n1 858 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div.ratio_op); rj54n1 861 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div.ratio_o); rj54n1 906 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 946 drivers/media/i2c/rj54n1cb0c.c rj54n1->auto_wb = ret & 0x80; rj54n1 981 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 984 drivers/media/i2c/rj54n1cb0c.c input_w = rj54n1->rect.width, input_h = rj54n1->rect.height; rj54n1 1001 drivers/media/i2c/rj54n1cb0c.c fmt = rj54n1->fmt; rj54n1 1113 drivers/media/i2c/rj54n1cb0c.c rj54n1->fmt = fmt; rj54n1 1114 drivers/media/i2c/rj54n1cb0c.c rj54n1->resize = ret; rj54n1 1115 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.width = input_w; rj54n1 1116 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.height = input_h; rj54n1 1117 drivers/media/i2c/rj54n1cb0c.c rj54n1->width = output_w; rj54n1 1118 drivers/media/i2c/rj54n1cb0c.c rj54n1->height = output_h; rj54n1 1166 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 1169 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->pwup_gpio) rj54n1 1170 drivers/media/i2c/rj54n1cb0c.c gpiod_set_value(rj54n1->pwup_gpio, 1); rj54n1 1171 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->enable_gpio) rj54n1 1172 drivers/media/i2c/rj54n1cb0c.c gpiod_set_value(rj54n1->enable_gpio, 1); rj54n1 1176 drivers/media/i2c/rj54n1cb0c.c return clk_prepare_enable(rj54n1->clk); rj54n1 1179 drivers/media/i2c/rj54n1cb0c.c clk_disable_unprepare(rj54n1->clk); rj54n1 1181 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->enable_gpio) rj54n1 1182 drivers/media/i2c/rj54n1cb0c.c gpiod_set_value(rj54n1->enable_gpio, 0); rj54n1 1183 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->pwup_gpio) rj54n1 1184 drivers/media/i2c/rj54n1cb0c.c gpiod_set_value(rj54n1->pwup_gpio, 0); rj54n1 1191 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = container_of(ctrl->handler, struct rj54n1, hdl); rj54n1 1192 drivers/media/i2c/rj54n1cb0c.c struct v4l2_subdev *sd = &rj54n1->subdev; rj54n1 1222 drivers/media/i2c/rj54n1cb0c.c rj54n1->auto_wb = ctrl->val; rj54n1 1266 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 1270 drivers/media/i2c/rj54n1cb0c.c ret = rj54n1_s_power(&rj54n1->subdev, 1); rj54n1 1293 drivers/media/i2c/rj54n1cb0c.c ret = v4l2_ctrl_handler_setup(&rj54n1->hdl); rj54n1 1296 drivers/media/i2c/rj54n1cb0c.c rj54n1_s_power(&rj54n1->subdev, 0); rj54n1 1303 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1; rj54n1 1321 drivers/media/i2c/rj54n1cb0c.c rj54n1 = devm_kzalloc(&client->dev, sizeof(struct rj54n1), GFP_KERNEL); rj54n1 1322 drivers/media/i2c/rj54n1cb0c.c if (!rj54n1) rj54n1 1325 drivers/media/i2c/rj54n1cb0c.c v4l2_i2c_subdev_init(&rj54n1->subdev, client, &rj54n1_subdev_ops); rj54n1 1326 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_handler_init(&rj54n1->hdl, 4); rj54n1 1327 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_new_std(&rj54n1->hdl, &rj54n1_ctrl_ops, rj54n1 1329 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_new_std(&rj54n1->hdl, &rj54n1_ctrl_ops, rj54n1 1331 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_new_std(&rj54n1->hdl, &rj54n1_ctrl_ops, rj54n1 1333 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_new_std(&rj54n1->hdl, &rj54n1_ctrl_ops, rj54n1 1335 drivers/media/i2c/rj54n1cb0c.c rj54n1->subdev.ctrl_handler = &rj54n1->hdl; rj54n1 1336 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->hdl.error) rj54n1 1337 drivers/media/i2c/rj54n1cb0c.c return rj54n1->hdl.error; rj54n1 1339 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk_div = clk_div; rj54n1 1340 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.left = RJ54N1_COLUMN_SKIP; rj54n1 1341 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.top = RJ54N1_ROW_SKIP; rj54n1 1342 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.width = RJ54N1_MAX_WIDTH; rj54n1 1343 drivers/media/i2c/rj54n1cb0c.c rj54n1->rect.height = RJ54N1_MAX_HEIGHT; rj54n1 1344 drivers/media/i2c/rj54n1cb0c.c rj54n1->width = RJ54N1_MAX_WIDTH; rj54n1 1345 drivers/media/i2c/rj54n1cb0c.c rj54n1->height = RJ54N1_MAX_HEIGHT; rj54n1 1346 drivers/media/i2c/rj54n1cb0c.c rj54n1->fmt = &rj54n1_colour_fmts[0]; rj54n1 1347 drivers/media/i2c/rj54n1cb0c.c rj54n1->resize = 1024; rj54n1 1348 drivers/media/i2c/rj54n1cb0c.c rj54n1->tgclk_mhz = (rj54n1_priv->mclk_freq / PLL_L * PLL_N) / rj54n1 1351 drivers/media/i2c/rj54n1cb0c.c rj54n1->clk = clk_get(&client->dev, NULL); rj54n1 1352 drivers/media/i2c/rj54n1cb0c.c if (IS_ERR(rj54n1->clk)) { rj54n1 1353 drivers/media/i2c/rj54n1cb0c.c ret = PTR_ERR(rj54n1->clk); rj54n1 1357 drivers/media/i2c/rj54n1cb0c.c rj54n1->pwup_gpio = gpiod_get_optional(&client->dev, "powerup", rj54n1 1359 drivers/media/i2c/rj54n1cb0c.c if (IS_ERR(rj54n1->pwup_gpio)) { rj54n1 1361 drivers/media/i2c/rj54n1cb0c.c PTR_ERR(rj54n1->pwup_gpio)); rj54n1 1362 drivers/media/i2c/rj54n1cb0c.c ret = PTR_ERR(rj54n1->pwup_gpio); rj54n1 1366 drivers/media/i2c/rj54n1cb0c.c rj54n1->enable_gpio = gpiod_get_optional(&client->dev, "enable", rj54n1 1368 drivers/media/i2c/rj54n1cb0c.c if (IS_ERR(rj54n1->enable_gpio)) { rj54n1 1370 drivers/media/i2c/rj54n1cb0c.c PTR_ERR(rj54n1->enable_gpio)); rj54n1 1371 drivers/media/i2c/rj54n1cb0c.c ret = PTR_ERR(rj54n1->enable_gpio); rj54n1 1379 drivers/media/i2c/rj54n1cb0c.c ret = v4l2_async_register_subdev(&rj54n1->subdev); rj54n1 1386 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->enable_gpio) rj54n1 1387 drivers/media/i2c/rj54n1cb0c.c gpiod_put(rj54n1->enable_gpio); rj54n1 1389 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->pwup_gpio) rj54n1 1390 drivers/media/i2c/rj54n1cb0c.c gpiod_put(rj54n1->pwup_gpio); rj54n1 1393 drivers/media/i2c/rj54n1cb0c.c clk_put(rj54n1->clk); rj54n1 1396 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_handler_free(&rj54n1->hdl); rj54n1 1403 drivers/media/i2c/rj54n1cb0c.c struct rj54n1 *rj54n1 = to_rj54n1(client); rj54n1 1405 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->enable_gpio) rj54n1 1406 drivers/media/i2c/rj54n1cb0c.c gpiod_put(rj54n1->enable_gpio); rj54n1 1407 drivers/media/i2c/rj54n1cb0c.c if (rj54n1->pwup_gpio) rj54n1 1408 drivers/media/i2c/rj54n1cb0c.c gpiod_put(rj54n1->pwup_gpio); rj54n1 1410 drivers/media/i2c/rj54n1cb0c.c clk_put(rj54n1->clk); rj54n1 1411 drivers/media/i2c/rj54n1cb0c.c v4l2_ctrl_handler_free(&rj54n1->hdl); rj54n1 1412 drivers/media/i2c/rj54n1cb0c.c v4l2_async_unregister_subdev(&rj54n1->subdev);