ao_cec 333 drivers/media/platform/meson/ao-cec-g12a.c static int meson_ao_cec_g12a_setup_clk(struct meson_ao_cec_g12a_device *ao_cec) ao_cec 336 drivers/media/platform/meson/ao-cec-g12a.c struct device *dev = &ao_cec->pdev->dev; ao_cec 350 drivers/media/platform/meson/ao-cec-g12a.c parent_name = __clk_get_name(ao_cec->oscin); ao_cec 357 drivers/media/platform/meson/ao-cec-g12a.c dualdiv_clk->regmap = ao_cec->regmap; ao_cec 367 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->core = clk; ao_cec 375 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = context; ao_cec 379 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_write(ao_cec->regmap, CECB_RW_REG, reg); ao_cec 383 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_read_poll_timeout(ao_cec->regmap, CECB_RW_REG, reg, ao_cec 389 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_read(ao_cec->regmap, CECB_RW_REG, ®); ao_cec 399 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = context; ao_cec 404 drivers/media/platform/meson/ao-cec-g12a.c return regmap_write(ao_cec->regmap, CECB_RW_REG, reg); ao_cec 416 drivers/media/platform/meson/ao-cec-g12a.c meson_ao_cec_g12a_irq_setup(struct meson_ao_cec_g12a_device *ao_cec, ao_cec 423 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap, CECB_INTR_MASKN_REG, ao_cec 427 drivers/media/platform/meson/ao-cec-g12a.c static void meson_ao_cec_g12a_irq_rx(struct meson_ao_cec_g12a_device *ao_cec) ao_cec 432 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_read(ao_cec->regmap_cec, CECB_RX_CNT, &val); ao_cec 434 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->rx_msg.len = val; ao_cec 435 drivers/media/platform/meson/ao-cec-g12a.c if (ao_cec->rx_msg.len > CEC_MAX_MSG_SIZE) ao_cec 436 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->rx_msg.len = CEC_MAX_MSG_SIZE; ao_cec 438 drivers/media/platform/meson/ao-cec-g12a.c for (i = 0; i < ao_cec->rx_msg.len; i++) { ao_cec 439 drivers/media/platform/meson/ao-cec-g12a.c ret |= regmap_read(ao_cec->regmap_cec, ao_cec 442 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->rx_msg.msg[i] = val & 0xff; ao_cec 445 drivers/media/platform/meson/ao-cec-g12a.c ret |= regmap_write(ao_cec->regmap_cec, CECB_LOCK_BUF, 0); ao_cec 449 drivers/media/platform/meson/ao-cec-g12a.c cec_received_msg(ao_cec->adap, &ao_cec->rx_msg); ao_cec 454 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = data; ao_cec 457 drivers/media/platform/meson/ao-cec-g12a.c regmap_read(ao_cec->regmap, CECB_INTR_STAT_REG, &stat); ao_cec 466 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = data; ao_cec 469 drivers/media/platform/meson/ao-cec-g12a.c regmap_read(ao_cec->regmap, CECB_INTR_STAT_REG, &stat); ao_cec 470 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap, CECB_INTR_CLR_REG, stat); ao_cec 473 drivers/media/platform/meson/ao-cec-g12a.c cec_transmit_attempt_done(ao_cec->adap, CEC_TX_STATUS_OK); ao_cec 476 drivers/media/platform/meson/ao-cec-g12a.c meson_ao_cec_g12a_irq_rx(ao_cec); ao_cec 479 drivers/media/platform/meson/ao-cec-g12a.c cec_transmit_attempt_done(ao_cec->adap, CEC_TX_STATUS_NACK); ao_cec 482 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap_cec, CECB_TX_CNT, 0); ao_cec 483 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap_cec, CECB_CTRL, ao_cec 485 drivers/media/platform/meson/ao-cec-g12a.c cec_transmit_attempt_done(ao_cec->adap, CEC_TX_STATUS_ARB_LOST); ao_cec 490 drivers/media/platform/meson/ao-cec-g12a.c cec_transmit_attempt_done(ao_cec->adap, CEC_TX_STATUS_ERROR); ao_cec 494 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap_cec, CECB_LOCK_BUF, 0); ao_cec 502 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = adap->priv; ao_cec 507 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap_cec, CECB_LADD_LOW, 0); ao_cec 508 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap_cec, CECB_LADD_HIGH, 0); ao_cec 512 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_update_bits(ao_cec->regmap_cec, CECB_LADD_LOW, ao_cec 516 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_update_bits(ao_cec->regmap_cec, CECB_LADD_HIGH, ao_cec 522 drivers/media/platform/meson/ao-cec-g12a.c ret |= regmap_update_bits(ao_cec->regmap_cec, CECB_LADD_HIGH, ao_cec 532 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = adap->priv; ao_cec 539 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_read(ao_cec->regmap_cec, CECB_LOCK_BUF, &val); ao_cec 546 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_read(ao_cec->regmap_cec, CECB_CTRL, &val); ao_cec 566 drivers/media/platform/meson/ao-cec-g12a.c ret |= regmap_write(ao_cec->regmap_cec, CECB_TX_DATA00 + i, ao_cec 569 drivers/media/platform/meson/ao-cec-g12a.c ret |= regmap_write(ao_cec->regmap_cec, CECB_TX_CNT, msg->len); ao_cec 573 drivers/media/platform/meson/ao-cec-g12a.c ret = regmap_update_bits(ao_cec->regmap_cec, CECB_CTRL, ao_cec 584 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = adap->priv; ao_cec 586 drivers/media/platform/meson/ao-cec-g12a.c meson_ao_cec_g12a_irq_setup(ao_cec, false); ao_cec 588 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap, CECB_GEN_CNTL_REG, ao_cec 595 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap, CECB_GEN_CNTL_REG, ao_cec 603 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap, CECB_GEN_CNTL_REG, ao_cec 608 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap, CECB_GEN_CNTL_REG, ao_cec 614 drivers/media/platform/meson/ao-cec-g12a.c regmap_update_bits(ao_cec->regmap, CECB_GEN_CNTL_REG, ao_cec 617 drivers/media/platform/meson/ao-cec-g12a.c if (ao_cec->data->ctrl2_setup) ao_cec 618 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap_cec, CECB_CTRL2, ao_cec 621 drivers/media/platform/meson/ao-cec-g12a.c meson_ao_cec_g12a_irq_setup(ao_cec, true); ao_cec 634 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec; ao_cec 644 drivers/media/platform/meson/ao-cec-g12a.c ao_cec = devm_kzalloc(&pdev->dev, sizeof(*ao_cec), GFP_KERNEL); ao_cec 645 drivers/media/platform/meson/ao-cec-g12a.c if (!ao_cec) ao_cec 648 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->data = of_device_get_match_data(&pdev->dev); ao_cec 649 drivers/media/platform/meson/ao-cec-g12a.c if (!ao_cec->data) { ao_cec 654 drivers/media/platform/meson/ao-cec-g12a.c spin_lock_init(&ao_cec->cec_reg_lock); ao_cec 655 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->pdev = pdev; ao_cec 657 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->adap = cec_allocate_adapter(&meson_ao_cec_g12a_ops, ao_cec, ao_cec 662 drivers/media/platform/meson/ao-cec-g12a.c if (IS_ERR(ao_cec->adap)) ao_cec 663 drivers/media/platform/meson/ao-cec-g12a.c return PTR_ERR(ao_cec->adap); ao_cec 665 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->adap->owner = THIS_MODULE; ao_cec 674 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->regmap = devm_regmap_init_mmio(&pdev->dev, base, ao_cec 676 drivers/media/platform/meson/ao-cec-g12a.c if (IS_ERR(ao_cec->regmap)) { ao_cec 677 drivers/media/platform/meson/ao-cec-g12a.c ret = PTR_ERR(ao_cec->regmap); ao_cec 681 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->regmap_cec = devm_regmap_init(&pdev->dev, NULL, ao_cec, ao_cec 683 drivers/media/platform/meson/ao-cec-g12a.c if (IS_ERR(ao_cec->regmap_cec)) { ao_cec 684 drivers/media/platform/meson/ao-cec-g12a.c ret = PTR_ERR(ao_cec->regmap_cec); ao_cec 692 drivers/media/platform/meson/ao-cec-g12a.c 0, NULL, ao_cec); ao_cec 698 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->oscin = devm_clk_get(&pdev->dev, "oscin"); ao_cec 699 drivers/media/platform/meson/ao-cec-g12a.c if (IS_ERR(ao_cec->oscin)) { ao_cec 701 drivers/media/platform/meson/ao-cec-g12a.c ret = PTR_ERR(ao_cec->oscin); ao_cec 705 drivers/media/platform/meson/ao-cec-g12a.c ret = meson_ao_cec_g12a_setup_clk(ao_cec); ao_cec 709 drivers/media/platform/meson/ao-cec-g12a.c ret = clk_prepare_enable(ao_cec->core); ao_cec 717 drivers/media/platform/meson/ao-cec-g12a.c platform_set_drvdata(pdev, ao_cec); ao_cec 719 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL, ao_cec 720 drivers/media/platform/meson/ao-cec-g12a.c ao_cec->adap); ao_cec 721 drivers/media/platform/meson/ao-cec-g12a.c if (!ao_cec->notify) { ao_cec 726 drivers/media/platform/meson/ao-cec-g12a.c ret = cec_register_adapter(ao_cec->adap, &pdev->dev); ao_cec 731 drivers/media/platform/meson/ao-cec-g12a.c regmap_write(ao_cec->regmap, CECB_GEN_CNTL_REG, CECB_GEN_CNTL_RESET); ao_cec 736 drivers/media/platform/meson/ao-cec-g12a.c cec_notifier_cec_adap_unregister(ao_cec->notify); ao_cec 739 drivers/media/platform/meson/ao-cec-g12a.c clk_disable_unprepare(ao_cec->core); ao_cec 742 drivers/media/platform/meson/ao-cec-g12a.c cec_delete_adapter(ao_cec->adap); ao_cec 751 drivers/media/platform/meson/ao-cec-g12a.c struct meson_ao_cec_g12a_device *ao_cec = platform_get_drvdata(pdev); ao_cec 753 drivers/media/platform/meson/ao-cec-g12a.c clk_disable_unprepare(ao_cec->core); ao_cec 755 drivers/media/platform/meson/ao-cec-g12a.c cec_notifier_cec_adap_unregister(ao_cec->notify); ao_cec 757 drivers/media/platform/meson/ao-cec-g12a.c cec_unregister_adapter(ao_cec->adap); ao_cec 231 drivers/media/platform/meson/ao-cec.c static inline int meson_ao_cec_wait_busy(struct meson_ao_cec_device *ao_cec) ao_cec 235 drivers/media/platform/meson/ao-cec.c while (readl_relaxed(ao_cec->base + CEC_RW_REG) & CEC_RW_BUS_BUSY) { ao_cec 243 drivers/media/platform/meson/ao-cec.c static void meson_ao_cec_read(struct meson_ao_cec_device *ao_cec, ao_cec 254 drivers/media/platform/meson/ao-cec.c spin_lock_irqsave(&ao_cec->cec_reg_lock, flags); ao_cec 256 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_wait_busy(ao_cec); ao_cec 260 drivers/media/platform/meson/ao-cec.c writel_relaxed(reg, ao_cec->base + CEC_RW_REG); ao_cec 262 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_wait_busy(ao_cec); ao_cec 267 drivers/media/platform/meson/ao-cec.c readl_relaxed(ao_cec->base + CEC_RW_REG)); ao_cec 270 drivers/media/platform/meson/ao-cec.c spin_unlock_irqrestore(&ao_cec->cec_reg_lock, flags); ao_cec 276 drivers/media/platform/meson/ao-cec.c static void meson_ao_cec_write(struct meson_ao_cec_device *ao_cec, ao_cec 289 drivers/media/platform/meson/ao-cec.c spin_lock_irqsave(&ao_cec->cec_reg_lock, flags); ao_cec 291 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_wait_busy(ao_cec); ao_cec 295 drivers/media/platform/meson/ao-cec.c writel_relaxed(reg, ao_cec->base + CEC_RW_REG); ao_cec 298 drivers/media/platform/meson/ao-cec.c spin_unlock_irqrestore(&ao_cec->cec_reg_lock, flags); ao_cec 304 drivers/media/platform/meson/ao-cec.c static inline void meson_ao_cec_irq_setup(struct meson_ao_cec_device *ao_cec, ao_cec 310 drivers/media/platform/meson/ao-cec.c ao_cec->base + CEC_INTR_MASKN_REG); ao_cec 313 drivers/media/platform/meson/ao-cec.c static inline int meson_ao_cec_clear(struct meson_ao_cec_device *ao_cec) ao_cec 317 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_MSG_CMD, RX_DISABLE, &ret); ao_cec 318 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_CMD, TX_ABORT, &ret); ao_cec 319 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_CLEAR_BUF, 1, &ret); ao_cec 320 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_CLEAR_BUF, 1, &ret); ao_cec 326 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_CLEAR_BUF, 0, &ret); ao_cec 327 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_CLEAR_BUF, 0, &ret); ao_cec 333 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_MSG_CMD, RX_NO_OP, &ret); ao_cec 334 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_CMD, TX_NO_OP, &ret); ao_cec 339 drivers/media/platform/meson/ao-cec.c static int meson_ao_cec_arbit_bit_time_set(struct meson_ao_cec_device *ao_cec, ao_cec 347 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_4BIT_BIT7_0, ao_cec 349 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_4BIT_BIT10_8, ao_cec 354 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_2BIT_BIT7_0, ao_cec 356 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_2BIT_BIT10_8, ao_cec 361 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_17MS_BIT7_0, ao_cec 363 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TXTIME_17MS_BIT10_8, ao_cec 373 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = data; ao_cec 374 drivers/media/platform/meson/ao-cec.c u32 stat = readl_relaxed(ao_cec->base + CEC_INTR_STAT_REG); ao_cec 382 drivers/media/platform/meson/ao-cec.c static void meson_ao_cec_irq_tx(struct meson_ao_cec_device *ao_cec) ao_cec 388 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_TX_MSG_STATUS, &stat, &ret); ao_cec 412 drivers/media/platform/meson/ao-cec.c writel_relaxed(CEC_INTR_TX, ao_cec->base + CEC_INTR_CLR_REG); ao_cec 415 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_CMD, TX_NO_OP, &ret); ao_cec 419 drivers/media/platform/meson/ao-cec.c cec_transmit_attempt_done(ao_cec->adap, tx_status); ao_cec 423 drivers/media/platform/meson/ao-cec.c cec_transmit_attempt_done(ao_cec->adap, CEC_TX_STATUS_ERROR); ao_cec 426 drivers/media/platform/meson/ao-cec.c static void meson_ao_cec_irq_rx(struct meson_ao_cec_device *ao_cec) ao_cec 431 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_RX_MSG_STATUS, ®, &ret); ao_cec 435 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_RX_NUM_MSG, ®, &ret); ao_cec 439 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_RX_MSG_LENGTH, ®, &ret); ao_cec 441 drivers/media/platform/meson/ao-cec.c ao_cec->rx_msg.len = reg + 1; ao_cec 442 drivers/media/platform/meson/ao-cec.c if (ao_cec->rx_msg.len > CEC_MAX_MSG_SIZE) ao_cec 443 drivers/media/platform/meson/ao-cec.c ao_cec->rx_msg.len = CEC_MAX_MSG_SIZE; ao_cec 445 drivers/media/platform/meson/ao-cec.c for (i = 0; i < ao_cec->rx_msg.len; i++) { ao_cec 448 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_RX_MSG_0_HEADER + i, &byte, &ret); ao_cec 450 drivers/media/platform/meson/ao-cec.c ao_cec->rx_msg.msg[i] = byte; ao_cec 456 drivers/media/platform/meson/ao-cec.c cec_received_msg(ao_cec->adap, &ao_cec->rx_msg); ao_cec 460 drivers/media/platform/meson/ao-cec.c writel_relaxed(CEC_INTR_RX, ao_cec->base + CEC_INTR_CLR_REG); ao_cec 463 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_MSG_CMD, RX_ACK_CURRENT, &ret); ao_cec 464 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_MSG_CMD, RX_NO_OP, &ret); ao_cec 467 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_CLEAR_BUF, CLEAR_START, &ret); ao_cec 468 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_RX_CLEAR_BUF, CLEAR_STOP, &ret); ao_cec 473 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = data; ao_cec 474 drivers/media/platform/meson/ao-cec.c u32 stat = readl_relaxed(ao_cec->base + CEC_INTR_STAT_REG); ao_cec 477 drivers/media/platform/meson/ao-cec.c meson_ao_cec_irq_tx(ao_cec); ao_cec 479 drivers/media/platform/meson/ao-cec.c meson_ao_cec_irq_rx(ao_cec); ao_cec 486 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = adap->priv; ao_cec 489 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_LOGICAL_ADDR0, ao_cec 494 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_clear(ao_cec); ao_cec 501 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_LOGICAL_ADDR0, ao_cec 508 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_LOGICAL_ADDR0, ao_cec 518 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = adap->priv; ao_cec 522 drivers/media/platform/meson/ao-cec.c meson_ao_cec_read(ao_cec, CEC_TX_MSG_STATUS, ®, &ret); ao_cec 527 drivers/media/platform/meson/ao-cec.c dev_dbg(&ao_cec->pdev->dev, "%s: busy TX: aborting\n", ao_cec 529 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_CMD, TX_ABORT, &ret); ao_cec 533 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_0_HEADER + i, ao_cec 537 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_LENGTH, msg->len - 1, &ret); ao_cec 538 drivers/media/platform/meson/ao-cec.c meson_ao_cec_write(ao_cec, CEC_TX_MSG_CMD, TX_REQ_CURRENT, &ret); ao_cec 545 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = adap->priv; ao_cec 548 drivers/media/platform/meson/ao-cec.c meson_ao_cec_irq_setup(ao_cec, false); ao_cec 551 drivers/media/platform/meson/ao-cec.c ao_cec->base + CEC_GEN_CNTL_REG); ao_cec 560 drivers/media/platform/meson/ao-cec.c ao_cec->base + CEC_GEN_CNTL_REG); ao_cec 566 drivers/media/platform/meson/ao-cec.c ao_cec->base + CEC_GEN_CNTL_REG); ao_cec 569 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_clear(ao_cec); ao_cec 574 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_arbit_bit_time_set(ao_cec, ao_cec 579 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_arbit_bit_time_set(ao_cec, ao_cec 584 drivers/media/platform/meson/ao-cec.c ret = meson_ao_cec_arbit_bit_time_set(ao_cec, ao_cec 590 drivers/media/platform/meson/ao-cec.c meson_ao_cec_irq_setup(ao_cec, true); ao_cec 603 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec; ao_cec 613 drivers/media/platform/meson/ao-cec.c ao_cec = devm_kzalloc(&pdev->dev, sizeof(*ao_cec), GFP_KERNEL); ao_cec 614 drivers/media/platform/meson/ao-cec.c if (!ao_cec) ao_cec 617 drivers/media/platform/meson/ao-cec.c spin_lock_init(&ao_cec->cec_reg_lock); ao_cec 619 drivers/media/platform/meson/ao-cec.c ao_cec->adap = cec_allocate_adapter(&meson_ao_cec_ops, ao_cec, ao_cec 624 drivers/media/platform/meson/ao-cec.c if (IS_ERR(ao_cec->adap)) ao_cec 625 drivers/media/platform/meson/ao-cec.c return PTR_ERR(ao_cec->adap); ao_cec 627 drivers/media/platform/meson/ao-cec.c ao_cec->adap->owner = THIS_MODULE; ao_cec 630 drivers/media/platform/meson/ao-cec.c ao_cec->base = devm_ioremap_resource(&pdev->dev, res); ao_cec 631 drivers/media/platform/meson/ao-cec.c if (IS_ERR(ao_cec->base)) { ao_cec 632 drivers/media/platform/meson/ao-cec.c ret = PTR_ERR(ao_cec->base); ao_cec 640 drivers/media/platform/meson/ao-cec.c 0, NULL, ao_cec); ao_cec 646 drivers/media/platform/meson/ao-cec.c ao_cec->core = devm_clk_get(&pdev->dev, "core"); ao_cec 647 drivers/media/platform/meson/ao-cec.c if (IS_ERR(ao_cec->core)) { ao_cec 649 drivers/media/platform/meson/ao-cec.c ret = PTR_ERR(ao_cec->core); ao_cec 653 drivers/media/platform/meson/ao-cec.c ret = clk_prepare_enable(ao_cec->core); ao_cec 659 drivers/media/platform/meson/ao-cec.c ret = clk_set_rate(ao_cec->core, CEC_CLK_RATE); ao_cec 667 drivers/media/platform/meson/ao-cec.c ao_cec->pdev = pdev; ao_cec 668 drivers/media/platform/meson/ao-cec.c platform_set_drvdata(pdev, ao_cec); ao_cec 670 drivers/media/platform/meson/ao-cec.c ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL, ao_cec 671 drivers/media/platform/meson/ao-cec.c ao_cec->adap); ao_cec 672 drivers/media/platform/meson/ao-cec.c if (!ao_cec->notify) { ao_cec 677 drivers/media/platform/meson/ao-cec.c ret = cec_register_adapter(ao_cec->adap, &pdev->dev); ao_cec 683 drivers/media/platform/meson/ao-cec.c ao_cec->base + CEC_GEN_CNTL_REG); ao_cec 688 drivers/media/platform/meson/ao-cec.c cec_notifier_cec_adap_unregister(ao_cec->notify); ao_cec 691 drivers/media/platform/meson/ao-cec.c clk_disable_unprepare(ao_cec->core); ao_cec 694 drivers/media/platform/meson/ao-cec.c cec_delete_adapter(ao_cec->adap); ao_cec 703 drivers/media/platform/meson/ao-cec.c struct meson_ao_cec_device *ao_cec = platform_get_drvdata(pdev); ao_cec 705 drivers/media/platform/meson/ao-cec.c clk_disable_unprepare(ao_cec->core); ao_cec 707 drivers/media/platform/meson/ao-cec.c cec_notifier_cec_adap_unregister(ao_cec->notify); ao_cec 708 drivers/media/platform/meson/ao-cec.c cec_unregister_adapter(ao_cec->adap); ao_cec 562 drivers/pinctrl/meson/pinctrl-meson-gxbb.c GROUP(ao_cec, 0, 15), ao_cec 546 drivers/pinctrl/meson/pinctrl-meson-gxl.c GROUP(ao_cec, 0, 15),