Lines Matching +full:iovcc18 +full:- +full:supply

1 // SPDX-License-Identifier: GPL-2.0-or-later
198 struct i2c_client *client = ctx->client[id];
200 if (ctx->i2c_error)
201 return ctx->i2c_error;
205 dev_err(ctx->dev, "writeb: %4s[0x%02x] <- 0x%02x\n",
207 ctx->i2c_error = ret;
216 struct i2c_client *client = ctx->client[id];
218 if (ctx->i2c_error)
219 return ctx->i2c_error;
223 dev_err(ctx->dev, "writebm: %4s[0x%02x] <- 0x%02x\n",
225 ctx->i2c_error = ret;
231 dev_err(ctx->dev, "writebm: %4s[0x%02x] <- 0x%02x\n",
233 ctx->i2c_error = ret;
241 dev_err(ctx->dev, "writebm: %4s[0x%02x] <- 0x%02x\n",
243 ctx->i2c_error = ret;
252 struct i2c_client *client = ctx->client[id];
254 if (ctx->i2c_error)
255 return ctx->i2c_error;
259 dev_err(ctx->dev, "readb: %4s[0x%02x]\n",
261 ctx->i2c_error = ret;
267 dev_err(ctx->dev, "readb: %4s[0x%02x]\n",
269 ctx->i2c_error = ret;
277 int ret = ctx->i2c_error;
279 ctx->i2c_error = 0;
550 dev_dbg(ctx->dev, "sii9234: detection started d3\n");
561 ctx->state = ST_D3;
565 dev_err(ctx->dev, "%s failed\n", __func__);
566 return -1;
571 return regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
576 gpiod_set_value(ctx->gpio_reset, 1);
578 regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
583 gpiod_set_value(ctx->gpio_reset, 1);
585 gpiod_set_value(ctx->gpio_reset, 0);
592 mutex_lock(&ctx->lock);
593 if (ctx->state != ST_OFF)
602 enable_irq(to_i2c_client(ctx->dev)->irq);
605 mutex_unlock(&ctx->lock);
610 mutex_lock(&ctx->lock);
612 if (ctx->state == ST_OFF)
615 disable_irq(to_i2c_client(ctx->dev)->irq);
620 ctx->state = ST_OFF;
623 mutex_unlock(&ctx->lock);
630 if (ctx->state == ST_D3) {
633 dev_dbg(ctx->dev, "RGND_READY_INT\n");
638 dev_err(ctx->dev, "sii9234_reset() failed\n");
646 if (ctx->state != ST_RGND_INIT)
654 dev_warn(ctx->dev, "RGND is not 1k\n");
657 dev_dbg(ctx->dev, "RGND 1K!!\n");
670 dev_dbg(ctx->dev, "mhl est interrupt\n");
704 return ctx->state;
712 if (ctx->state != ST_RGND_1K) {
713 dev_err(ctx->dev, "RSEN_HIGH without RGND_1K\n");
721 dev_dbg(ctx->dev, "MHL cable connected.. RSEN High\n");
724 dev_dbg(ctx->dev, "RSEN lost\n");
736 dev_dbg(ctx->dev, "sys_stat: %x\n", value);
739 dev_dbg(ctx->dev, "RSEN recovery\n");
742 dev_dbg(ctx->dev, "RSEN Really LOW\n");
758 dev_dbg(ctx->dev, "%s\n", __func__);
760 mutex_lock(&ctx->lock);
772 dev_dbg(ctx->dev, "irq %02x/%02x %02x/%02x %02x/%02x\n",
776 ctx->state = sii9234_rgnd_ready_irq(ctx);
778 ctx->state = sii9234_rsen_change(ctx);
780 ctx->state = sii9234_mhl_established(ctx);
782 ctx->state = sii9234_hpd_change(ctx);
784 ctx->state = ST_FAILURE;
786 ctx->state = ST_FAILURE_DISCOVERY;
799 if (ctx->state == ST_FAILURE) {
800 dev_dbg(ctx->dev, "try to reset after failure\n");
805 if (ctx->state == ST_FAILURE_DISCOVERY) {
806 dev_err(ctx->dev, "discovery failed, no power for MHL?\n");
808 ctx->state = ST_D3;
811 mutex_unlock(&ctx->lock);
819 struct i2c_adapter *adapter = client->adapter;
822 if (!ctx->dev->of_node) {
823 dev_err(ctx->dev, "not DT device\n");
824 return -ENODEV;
827 ctx->gpio_reset = devm_gpiod_get(ctx->dev, "reset", GPIOD_OUT_LOW);
828 if (IS_ERR(ctx->gpio_reset)) {
829 dev_err(ctx->dev, "failed to get reset gpio from DT\n");
830 return PTR_ERR(ctx->gpio_reset);
833 ctx->supplies[0].supply = "avcc12";
834 ctx->supplies[1].supply = "avcc33";
835 ctx->supplies[2].supply = "iovcc18";
836 ctx->supplies[3].supply = "cvcc12";
837 ret = devm_regulator_bulk_get(ctx->dev, 4, ctx->supplies);
839 if (ret != -EPROBE_DEFER)
840 dev_err(ctx->dev, "regulator_bulk failed\n");
844 ctx->client[I2C_MHL] = client;
846 ctx->client[I2C_TPI] = devm_i2c_new_dummy_device(&client->dev, adapter,
848 if (IS_ERR(ctx->client[I2C_TPI])) {
849 dev_err(ctx->dev, "failed to create TPI client\n");
850 return PTR_ERR(ctx->client[I2C_TPI]);
853 ctx->client[I2C_HDMI] = devm_i2c_new_dummy_device(&client->dev, adapter,
855 if (IS_ERR(ctx->client[I2C_HDMI])) {
856 dev_err(ctx->dev, "failed to create HDMI RX client\n");
857 return PTR_ERR(ctx->client[I2C_HDMI]);
860 ctx->client[I2C_CBUS] = devm_i2c_new_dummy_device(&client->dev, adapter,
862 if (IS_ERR(ctx->client[I2C_CBUS])) {
863 dev_err(ctx->dev, "failed to create CBUS client\n");
864 return PTR_ERR(ctx->client[I2C_CBUS]);
874 if (mode->clock > MHL1_MAX_CLK)
886 struct i2c_adapter *adapter = client->adapter;
888 struct device *dev = &client->dev;
896 ctx->dev = dev;
897 mutex_init(&ctx->lock);
901 return -EIO;
904 if (!client->irq) {
906 return -EINVAL;
909 irq_set_status_flags(client->irq, IRQ_NOAUTOEN);
910 ret = devm_request_threaded_irq(dev, client->irq, NULL,
925 ctx->bridge.of_node = dev->of_node;
926 drm_bridge_add(&ctx->bridge);
938 drm_bridge_remove(&ctx->bridge);