omap 263 drivers/i2c/busses/i2c-omap.c static int omap_i2c_xfer_data(struct omap_i2c_dev *omap); omap 265 drivers/i2c/busses/i2c-omap.c static inline void omap_i2c_write_reg(struct omap_i2c_dev *omap, omap 268 drivers/i2c/busses/i2c-omap.c writew_relaxed(val, omap->base + omap 269 drivers/i2c/busses/i2c-omap.c (omap->regs[reg] << omap->reg_shift)); omap 272 drivers/i2c/busses/i2c-omap.c static inline u16 omap_i2c_read_reg(struct omap_i2c_dev *omap, int reg) omap 274 drivers/i2c/busses/i2c-omap.c return readw_relaxed(omap->base + omap 275 drivers/i2c/busses/i2c-omap.c (omap->regs[reg] << omap->reg_shift)); omap 278 drivers/i2c/busses/i2c-omap.c static void __omap_i2c_init(struct omap_i2c_dev *omap) omap 281 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, 0); omap 284 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_PSC_REG, omap->pscstate); omap 287 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_SCLL_REG, omap->scllstate); omap 288 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_SCLH_REG, omap->sclhstate); omap 289 drivers/i2c/busses/i2c-omap.c if (omap->rev >= OMAP_I2C_REV_ON_3430_3530) omap 290 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_WE_REG, omap->westate); omap 293 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN); omap 305 drivers/i2c/busses/i2c-omap.c if (omap->iestate) omap 306 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_IE_REG, omap->iestate); omap 309 drivers/i2c/busses/i2c-omap.c static int omap_i2c_reset(struct omap_i2c_dev *omap) omap 314 drivers/i2c/busses/i2c-omap.c if (omap->rev >= OMAP_I2C_OMAP1_REV_2) { omap 315 drivers/i2c/busses/i2c-omap.c sysc = omap_i2c_read_reg(omap, OMAP_I2C_SYSC_REG); omap 318 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, omap 319 drivers/i2c/busses/i2c-omap.c omap_i2c_read_reg(omap, OMAP_I2C_CON_REG) & omap 322 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); omap 326 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN); omap 327 drivers/i2c/busses/i2c-omap.c while (!(omap_i2c_read_reg(omap, OMAP_I2C_SYSS_REG) & omap 330 drivers/i2c/busses/i2c-omap.c dev_warn(omap->dev, "timeout waiting " omap 338 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_SYSC_REG, sysc); omap 340 drivers/i2c/busses/i2c-omap.c if (omap->rev > OMAP_I2C_REV_ON_3430_3530) { omap 342 drivers/i2c/busses/i2c-omap.c omap->bb_valid = 0; omap 349 drivers/i2c/busses/i2c-omap.c static int omap_i2c_init(struct omap_i2c_dev *omap) omap 358 drivers/i2c/busses/i2c-omap.c if (omap->rev >= OMAP_I2C_REV_ON_3430_3530) { omap 364 drivers/i2c/busses/i2c-omap.c omap->westate = OMAP_I2C_WE_ALL; omap 367 drivers/i2c/busses/i2c-omap.c if (omap->flags & OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK) { omap 374 drivers/i2c/busses/i2c-omap.c fclk = clk_get(omap->dev, "fck"); omap 377 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "could not get fck: %i\n", error); omap 398 drivers/i2c/busses/i2c-omap.c if (!(omap->flags & OMAP_I2C_FLAG_SIMPLE_CLOCK)) { omap 406 drivers/i2c/busses/i2c-omap.c if (omap->speed > 400 || omap 407 drivers/i2c/busses/i2c-omap.c omap->flags & OMAP_I2C_FLAG_FORCE_19200_INT_CLK) omap 409 drivers/i2c/busses/i2c-omap.c else if (omap->speed > 100) omap 413 drivers/i2c/busses/i2c-omap.c fclk = clk_get(omap->dev, "fck"); omap 416 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "could not get fck: %i\n", error); omap 428 drivers/i2c/busses/i2c-omap.c if (omap->speed > 400) { omap 437 drivers/i2c/busses/i2c-omap.c scl = fclk_rate / omap->speed; omap 440 drivers/i2c/busses/i2c-omap.c } else if (omap->speed > 100) { omap 444 drivers/i2c/busses/i2c-omap.c scl = internal_clk / omap->speed; omap 449 drivers/i2c/busses/i2c-omap.c fsscll = internal_clk / (omap->speed * 2) - 7; omap 450 drivers/i2c/busses/i2c-omap.c fssclh = internal_clk / (omap->speed * 2) - 5; omap 459 drivers/i2c/busses/i2c-omap.c scll = fclk_rate / (omap->speed * 2) - 7 + psc; omap 460 drivers/i2c/busses/i2c-omap.c sclh = fclk_rate / (omap->speed * 2) - 7 + psc; omap 463 drivers/i2c/busses/i2c-omap.c omap->iestate = (OMAP_I2C_IE_XRDY | OMAP_I2C_IE_RRDY | omap 465 drivers/i2c/busses/i2c-omap.c OMAP_I2C_IE_AL) | ((omap->fifo_size) ? omap 468 drivers/i2c/busses/i2c-omap.c omap->pscstate = psc; omap 469 drivers/i2c/busses/i2c-omap.c omap->scllstate = scll; omap 470 drivers/i2c/busses/i2c-omap.c omap->sclhstate = sclh; omap 472 drivers/i2c/busses/i2c-omap.c if (omap->rev <= OMAP_I2C_REV_ON_3430_3530) { omap 474 drivers/i2c/busses/i2c-omap.c omap->bb_valid = 1; omap 477 drivers/i2c/busses/i2c-omap.c __omap_i2c_init(omap); omap 485 drivers/i2c/busses/i2c-omap.c static int omap_i2c_recover_bus(struct omap_i2c_dev *omap) omap 489 drivers/i2c/busses/i2c-omap.c systest = omap_i2c_read_reg(omap, OMAP_I2C_SYSTEST_REG); omap 495 drivers/i2c/busses/i2c-omap.c return i2c_recover_bus(&omap->adapter); omap 501 drivers/i2c/busses/i2c-omap.c static int omap_i2c_wait_for_bb(struct omap_i2c_dev *omap) omap 506 drivers/i2c/busses/i2c-omap.c while (omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG) & OMAP_I2C_STAT_BB) { omap 508 drivers/i2c/busses/i2c-omap.c return omap_i2c_recover_bus(omap); omap 543 drivers/i2c/busses/i2c-omap.c static int omap_i2c_wait_for_bb_valid(struct omap_i2c_dev *omap) omap 550 drivers/i2c/busses/i2c-omap.c if (omap->bb_valid) omap 555 drivers/i2c/busses/i2c-omap.c stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 568 drivers/i2c/busses/i2c-omap.c systest = omap_i2c_read_reg(omap, OMAP_I2C_SYSTEST_REG); omap 594 drivers/i2c/busses/i2c-omap.c dev_warn(omap->dev, "timeout waiting for bus ready\n"); omap 595 drivers/i2c/busses/i2c-omap.c return omap_i2c_recover_bus(omap); omap 601 drivers/i2c/busses/i2c-omap.c omap->bb_valid = 1; omap 605 drivers/i2c/busses/i2c-omap.c static void omap_i2c_resize_fifo(struct omap_i2c_dev *omap, u8 size, bool is_rx) omap 609 drivers/i2c/busses/i2c-omap.c if (omap->flags & OMAP_I2C_FLAG_NO_FIFO) omap 619 drivers/i2c/busses/i2c-omap.c omap->threshold = clamp(size, (u8) 1, omap->fifo_size); omap 621 drivers/i2c/busses/i2c-omap.c buf = omap_i2c_read_reg(omap, OMAP_I2C_BUF_REG); omap 626 drivers/i2c/busses/i2c-omap.c buf |= ((omap->threshold - 1) << 8) | OMAP_I2C_BUF_RXFIF_CLR; omap 630 drivers/i2c/busses/i2c-omap.c buf |= (omap->threshold - 1) | OMAP_I2C_BUF_TXFIF_CLR; omap 633 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_BUF_REG, buf); omap 635 drivers/i2c/busses/i2c-omap.c if (omap->rev < OMAP_I2C_REV_ON_3630) omap 636 drivers/i2c/busses/i2c-omap.c omap->b_hw = 1; /* Enable hardware fixes */ omap 639 drivers/i2c/busses/i2c-omap.c if (omap->set_mpu_wkup_lat != NULL) omap 640 drivers/i2c/busses/i2c-omap.c omap->latency = (1000000 * omap->threshold) / omap 641 drivers/i2c/busses/i2c-omap.c (1000 * omap->speed / 8); omap 644 drivers/i2c/busses/i2c-omap.c static void omap_i2c_wait(struct omap_i2c_dev *omap) omap 647 drivers/i2c/busses/i2c-omap.c u16 mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG); omap 651 drivers/i2c/busses/i2c-omap.c stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 662 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = i2c_get_adapdata(adap); omap 667 drivers/i2c/busses/i2c-omap.c dev_dbg(omap->dev, "addr: 0x%04x, len: %d, flags: 0x%x, stop: %d\n", omap 670 drivers/i2c/busses/i2c-omap.c omap->receiver = !!(msg->flags & I2C_M_RD); omap 671 drivers/i2c/busses/i2c-omap.c omap_i2c_resize_fifo(omap, msg->len, omap->receiver); omap 673 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_SA_REG, msg->addr); omap 676 drivers/i2c/busses/i2c-omap.c omap->buf = msg->buf; omap 677 drivers/i2c/busses/i2c-omap.c omap->buf_len = msg->len; omap 682 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CNT_REG, omap->buf_len); omap 685 drivers/i2c/busses/i2c-omap.c w = omap_i2c_read_reg(omap, OMAP_I2C_BUF_REG); omap 687 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_BUF_REG, w); omap 690 drivers/i2c/busses/i2c-omap.c reinit_completion(&omap->cmd_complete); omap 691 drivers/i2c/busses/i2c-omap.c omap->cmd_err = 0; omap 696 drivers/i2c/busses/i2c-omap.c if (omap->speed > 400) omap 706 drivers/i2c/busses/i2c-omap.c if (!omap->b_hw && stop) omap 713 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, w); omap 718 drivers/i2c/busses/i2c-omap.c if (omap->b_hw && stop) { omap 720 drivers/i2c/busses/i2c-omap.c u16 con = omap_i2c_read_reg(omap, OMAP_I2C_CON_REG); omap 722 drivers/i2c/busses/i2c-omap.c con = omap_i2c_read_reg(omap, OMAP_I2C_CON_REG); omap 726 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "controller timed out " omap 735 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, w); omap 743 drivers/i2c/busses/i2c-omap.c timeout = wait_for_completion_timeout(&omap->cmd_complete, omap 747 drivers/i2c/busses/i2c-omap.c omap_i2c_wait(omap); omap 748 drivers/i2c/busses/i2c-omap.c ret = omap_i2c_xfer_data(omap); omap 755 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "controller timed out\n"); omap 756 drivers/i2c/busses/i2c-omap.c omap_i2c_reset(omap); omap 757 drivers/i2c/busses/i2c-omap.c __omap_i2c_init(omap); omap 761 drivers/i2c/busses/i2c-omap.c if (likely(!omap->cmd_err)) omap 765 drivers/i2c/busses/i2c-omap.c if (omap->cmd_err & (OMAP_I2C_STAT_ROVR | OMAP_I2C_STAT_XUDF)) { omap 766 drivers/i2c/busses/i2c-omap.c omap_i2c_reset(omap); omap 767 drivers/i2c/busses/i2c-omap.c __omap_i2c_init(omap); omap 771 drivers/i2c/busses/i2c-omap.c if (omap->cmd_err & OMAP_I2C_STAT_AL) omap 774 drivers/i2c/busses/i2c-omap.c if (omap->cmd_err & OMAP_I2C_STAT_NACK) { omap 778 drivers/i2c/busses/i2c-omap.c w = omap_i2c_read_reg(omap, OMAP_I2C_CON_REG); omap 780 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, w); omap 795 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = i2c_get_adapdata(adap); omap 799 drivers/i2c/busses/i2c-omap.c r = pm_runtime_get_sync(omap->dev); omap 803 drivers/i2c/busses/i2c-omap.c r = omap_i2c_wait_for_bb_valid(omap); omap 807 drivers/i2c/busses/i2c-omap.c r = omap_i2c_wait_for_bb(omap); omap 811 drivers/i2c/busses/i2c-omap.c if (omap->set_mpu_wkup_lat != NULL) omap 812 drivers/i2c/busses/i2c-omap.c omap->set_mpu_wkup_lat(omap->dev, omap->latency); omap 824 drivers/i2c/busses/i2c-omap.c omap_i2c_wait_for_bb(omap); omap 826 drivers/i2c/busses/i2c-omap.c if (omap->set_mpu_wkup_lat != NULL) omap 827 drivers/i2c/busses/i2c-omap.c omap->set_mpu_wkup_lat(omap->dev, -1); omap 830 drivers/i2c/busses/i2c-omap.c pm_runtime_mark_last_busy(omap->dev); omap 831 drivers/i2c/busses/i2c-omap.c pm_runtime_put_autosuspend(omap->dev); omap 855 drivers/i2c/busses/i2c-omap.c omap_i2c_complete_cmd(struct omap_i2c_dev *omap, u16 err) omap 857 drivers/i2c/busses/i2c-omap.c omap->cmd_err |= err; omap 858 drivers/i2c/busses/i2c-omap.c complete(&omap->cmd_complete); omap 862 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(struct omap_i2c_dev *omap, u16 stat) omap 864 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_STAT_REG, stat); omap 867 drivers/i2c/busses/i2c-omap.c static inline void i2c_omap_errata_i207(struct omap_i2c_dev *omap, u16 stat) omap 878 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_RDR); omap 881 drivers/i2c/busses/i2c-omap.c if (!(omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG) omap 885 drivers/i2c/busses/i2c-omap.c if (omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG) omap 887 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_RDR); omap 888 drivers/i2c/busses/i2c-omap.c dev_dbg(omap->dev, "RDR when bus is busy.\n"); omap 901 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = dev_id; omap 904 drivers/i2c/busses/i2c-omap.c if (pm_runtime_suspended(omap->dev)) omap 907 drivers/i2c/busses/i2c-omap.c iv = omap_i2c_read_reg(omap, OMAP_I2C_IV_REG); omap 912 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "Arbitration lost\n"); omap 913 drivers/i2c/busses/i2c-omap.c omap_i2c_complete_cmd(omap, OMAP_I2C_STAT_AL); omap 916 drivers/i2c/busses/i2c-omap.c omap_i2c_complete_cmd(omap, OMAP_I2C_STAT_NACK); omap 917 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, OMAP_I2C_CON_STP); omap 920 drivers/i2c/busses/i2c-omap.c omap_i2c_complete_cmd(omap, 0); omap 923 drivers/i2c/busses/i2c-omap.c if (omap->buf_len) { omap 924 drivers/i2c/busses/i2c-omap.c w = omap_i2c_read_reg(omap, OMAP_I2C_DATA_REG); omap 925 drivers/i2c/busses/i2c-omap.c *omap->buf++ = w; omap 926 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 927 drivers/i2c/busses/i2c-omap.c if (omap->buf_len) { omap 928 drivers/i2c/busses/i2c-omap.c *omap->buf++ = w >> 8; omap 929 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 932 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "RRDY IRQ while no data requested\n"); omap 935 drivers/i2c/busses/i2c-omap.c if (omap->buf_len) { omap 936 drivers/i2c/busses/i2c-omap.c w = *omap->buf++; omap 937 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 938 drivers/i2c/busses/i2c-omap.c if (omap->buf_len) { omap 939 drivers/i2c/busses/i2c-omap.c w |= *omap->buf++ << 8; omap 940 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 942 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_DATA_REG, w); omap 944 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "XRDY IRQ while no data to send\n"); omap 961 drivers/i2c/busses/i2c-omap.c static int errata_omap3_i462(struct omap_i2c_dev *omap) omap 967 drivers/i2c/busses/i2c-omap.c stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 972 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, (OMAP_I2C_STAT_XRDY | omap 975 drivers/i2c/busses/i2c-omap.c omap->cmd_err |= OMAP_I2C_STAT_NACK; omap 976 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_NACK); omap 980 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "Arbitration lost\n"); omap 981 drivers/i2c/busses/i2c-omap.c omap->cmd_err |= OMAP_I2C_STAT_AL; omap 982 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_AL); omap 992 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "timeout waiting on XUDF bit\n"); omap 999 drivers/i2c/busses/i2c-omap.c static void omap_i2c_receive_data(struct omap_i2c_dev *omap, u8 num_bytes, omap 1005 drivers/i2c/busses/i2c-omap.c w = omap_i2c_read_reg(omap, OMAP_I2C_DATA_REG); omap 1006 drivers/i2c/busses/i2c-omap.c *omap->buf++ = w; omap 1007 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 1013 drivers/i2c/busses/i2c-omap.c if (omap->flags & OMAP_I2C_FLAG_16BIT_DATA_REG) { omap 1014 drivers/i2c/busses/i2c-omap.c *omap->buf++ = w >> 8; omap 1015 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 1020 drivers/i2c/busses/i2c-omap.c static int omap_i2c_transmit_data(struct omap_i2c_dev *omap, u8 num_bytes, omap 1026 drivers/i2c/busses/i2c-omap.c w = *omap->buf++; omap 1027 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 1033 drivers/i2c/busses/i2c-omap.c if (omap->flags & OMAP_I2C_FLAG_16BIT_DATA_REG) { omap 1034 drivers/i2c/busses/i2c-omap.c w |= *omap->buf++ << 8; omap 1035 drivers/i2c/busses/i2c-omap.c omap->buf_len--; omap 1038 drivers/i2c/busses/i2c-omap.c if (omap->errata & I2C_OMAP_ERRATA_I462) { omap 1041 drivers/i2c/busses/i2c-omap.c ret = errata_omap3_i462(omap); omap 1046 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_DATA_REG, w); omap 1055 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = dev_id; omap 1060 drivers/i2c/busses/i2c-omap.c stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 1061 drivers/i2c/busses/i2c-omap.c mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG); omap 1069 drivers/i2c/busses/i2c-omap.c static int omap_i2c_xfer_data(struct omap_i2c_dev *omap) omap 1076 drivers/i2c/busses/i2c-omap.c bits = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG); omap 1077 drivers/i2c/busses/i2c-omap.c stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 1081 drivers/i2c/busses/i2c-omap.c if (omap->receiver) omap 1092 drivers/i2c/busses/i2c-omap.c dev_dbg(omap->dev, "IRQ (ISR = 0x%04x)\n", stat); omap 1094 drivers/i2c/busses/i2c-omap.c dev_warn(omap->dev, "Too much work in one IRQ\n"); omap 1100 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_NACK); omap 1104 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "Arbitration lost\n"); omap 1106 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_AL); omap 1113 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_ARDY); omap 1117 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, (OMAP_I2C_STAT_RRDY | omap 1128 drivers/i2c/busses/i2c-omap.c if (omap->fifo_size) omap 1129 drivers/i2c/busses/i2c-omap.c num_bytes = omap->buf_len; omap 1131 drivers/i2c/busses/i2c-omap.c if (omap->errata & I2C_OMAP_ERRATA_I207) { omap 1132 drivers/i2c/busses/i2c-omap.c i2c_omap_errata_i207(omap, stat); omap 1133 drivers/i2c/busses/i2c-omap.c num_bytes = (omap_i2c_read_reg(omap, omap 1137 drivers/i2c/busses/i2c-omap.c omap_i2c_receive_data(omap, num_bytes, true); omap 1138 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_RDR); omap 1145 drivers/i2c/busses/i2c-omap.c if (omap->threshold) omap 1146 drivers/i2c/busses/i2c-omap.c num_bytes = omap->threshold; omap 1148 drivers/i2c/busses/i2c-omap.c omap_i2c_receive_data(omap, num_bytes, false); omap 1149 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_RRDY); omap 1157 drivers/i2c/busses/i2c-omap.c if (omap->fifo_size) omap 1158 drivers/i2c/busses/i2c-omap.c num_bytes = omap->buf_len; omap 1160 drivers/i2c/busses/i2c-omap.c ret = omap_i2c_transmit_data(omap, num_bytes, true); omap 1164 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_XDR); omap 1172 drivers/i2c/busses/i2c-omap.c if (omap->threshold) omap 1173 drivers/i2c/busses/i2c-omap.c num_bytes = omap->threshold; omap 1175 drivers/i2c/busses/i2c-omap.c ret = omap_i2c_transmit_data(omap, num_bytes, false); omap 1179 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_XRDY); omap 1184 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "Receive overrun\n"); omap 1186 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_ROVR); omap 1191 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "Transmit underflow\n"); omap 1193 drivers/i2c/busses/i2c-omap.c omap_i2c_ack_stat(omap, OMAP_I2C_STAT_XUDF); omap 1205 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = dev_id; omap 1207 drivers/i2c/busses/i2c-omap.c ret = omap_i2c_xfer_data(omap); omap 1209 drivers/i2c/busses/i2c-omap.c omap_i2c_complete_cmd(omap, ret); omap 1356 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap; omap 1374 drivers/i2c/busses/i2c-omap.c omap = devm_kzalloc(&pdev->dev, sizeof(struct omap_i2c_dev), GFP_KERNEL); omap 1375 drivers/i2c/busses/i2c-omap.c if (!omap) omap 1379 drivers/i2c/busses/i2c-omap.c omap->base = devm_ioremap_resource(&pdev->dev, mem); omap 1380 drivers/i2c/busses/i2c-omap.c if (IS_ERR(omap->base)) omap 1381 drivers/i2c/busses/i2c-omap.c return PTR_ERR(omap->base); omap 1388 drivers/i2c/busses/i2c-omap.c omap->flags = pdata->flags; omap 1392 drivers/i2c/busses/i2c-omap.c omap->speed = freq / 1000; omap 1394 drivers/i2c/busses/i2c-omap.c omap->speed = pdata->clkrate; omap 1395 drivers/i2c/busses/i2c-omap.c omap->flags = pdata->flags; omap 1396 drivers/i2c/busses/i2c-omap.c omap->set_mpu_wkup_lat = pdata->set_mpu_wkup_lat; omap 1399 drivers/i2c/busses/i2c-omap.c omap->dev = &pdev->dev; omap 1400 drivers/i2c/busses/i2c-omap.c omap->irq = irq; omap 1402 drivers/i2c/busses/i2c-omap.c platform_set_drvdata(pdev, omap); omap 1403 drivers/i2c/busses/i2c-omap.c init_completion(&omap->cmd_complete); omap 1405 drivers/i2c/busses/i2c-omap.c omap->reg_shift = (omap->flags >> OMAP_I2C_FLAG_BUS_SHIFT__SHIFT) & 3; omap 1407 drivers/i2c/busses/i2c-omap.c pm_runtime_enable(omap->dev); omap 1408 drivers/i2c/busses/i2c-omap.c pm_runtime_set_autosuspend_delay(omap->dev, OMAP_I2C_PM_TIMEOUT); omap 1409 drivers/i2c/busses/i2c-omap.c pm_runtime_use_autosuspend(omap->dev); omap 1411 drivers/i2c/busses/i2c-omap.c r = pm_runtime_get_sync(omap->dev); omap 1421 drivers/i2c/busses/i2c-omap.c rev = readw_relaxed(omap->base + 0x04); omap 1423 drivers/i2c/busses/i2c-omap.c omap->scheme = OMAP_I2C_SCHEME(rev); omap 1424 drivers/i2c/busses/i2c-omap.c switch (omap->scheme) { omap 1426 drivers/i2c/busses/i2c-omap.c omap->regs = (u8 *)reg_map_ip_v1; omap 1427 drivers/i2c/busses/i2c-omap.c omap->rev = omap_i2c_read_reg(omap, OMAP_I2C_REV_REG); omap 1428 drivers/i2c/busses/i2c-omap.c minor = OMAP_I2C_REV_SCHEME_0_MAJOR(omap->rev); omap 1429 drivers/i2c/busses/i2c-omap.c major = OMAP_I2C_REV_SCHEME_0_MAJOR(omap->rev); omap 1434 drivers/i2c/busses/i2c-omap.c omap->regs = (u8 *)reg_map_ip_v2; omap 1436 drivers/i2c/busses/i2c-omap.c omap_i2c_read_reg(omap, OMAP_I2C_IP_V2_REVNB_LO); omap 1439 drivers/i2c/busses/i2c-omap.c omap->rev = rev; omap 1442 drivers/i2c/busses/i2c-omap.c omap->errata = 0; omap 1444 drivers/i2c/busses/i2c-omap.c if (omap->rev >= OMAP_I2C_REV_ON_2430 && omap 1445 drivers/i2c/busses/i2c-omap.c omap->rev < OMAP_I2C_REV_ON_4430_PLUS) omap 1446 drivers/i2c/busses/i2c-omap.c omap->errata |= I2C_OMAP_ERRATA_I207; omap 1448 drivers/i2c/busses/i2c-omap.c if (omap->rev <= OMAP_I2C_REV_ON_3430_3530) omap 1449 drivers/i2c/busses/i2c-omap.c omap->errata |= I2C_OMAP_ERRATA_I462; omap 1451 drivers/i2c/busses/i2c-omap.c if (!(omap->flags & OMAP_I2C_FLAG_NO_FIFO)) { omap 1455 drivers/i2c/busses/i2c-omap.c s = (omap_i2c_read_reg(omap, OMAP_I2C_BUFSTAT_REG) >> 14) & 0x3; omap 1456 drivers/i2c/busses/i2c-omap.c omap->fifo_size = 0x8 << s; omap 1464 drivers/i2c/busses/i2c-omap.c omap->fifo_size = (omap->fifo_size / 2); omap 1466 drivers/i2c/busses/i2c-omap.c if (omap->rev < OMAP_I2C_REV_ON_3630) omap 1467 drivers/i2c/busses/i2c-omap.c omap->b_hw = 1; /* Enable hardware fixes */ omap 1470 drivers/i2c/busses/i2c-omap.c if (omap->set_mpu_wkup_lat != NULL) omap 1471 drivers/i2c/busses/i2c-omap.c omap->latency = (1000000 * omap->fifo_size) / omap 1472 drivers/i2c/busses/i2c-omap.c (1000 * omap->speed / 8); omap 1476 drivers/i2c/busses/i2c-omap.c omap_i2c_init(omap); omap 1478 drivers/i2c/busses/i2c-omap.c if (omap->rev < OMAP_I2C_OMAP1_REV_2) omap 1479 drivers/i2c/busses/i2c-omap.c r = devm_request_irq(&pdev->dev, omap->irq, omap_i2c_omap1_isr, omap 1480 drivers/i2c/busses/i2c-omap.c IRQF_NO_SUSPEND, pdev->name, omap); omap 1482 drivers/i2c/busses/i2c-omap.c r = devm_request_threaded_irq(&pdev->dev, omap->irq, omap 1485 drivers/i2c/busses/i2c-omap.c pdev->name, omap); omap 1488 drivers/i2c/busses/i2c-omap.c dev_err(omap->dev, "failure requesting irq %i\n", omap->irq); omap 1492 drivers/i2c/busses/i2c-omap.c adap = &omap->adapter; omap 1493 drivers/i2c/busses/i2c-omap.c i2c_set_adapdata(adap, omap); omap 1509 drivers/i2c/busses/i2c-omap.c dev_info(omap->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, omap 1510 drivers/i2c/busses/i2c-omap.c major, minor, omap->speed); omap 1512 drivers/i2c/busses/i2c-omap.c pm_runtime_mark_last_busy(omap->dev); omap 1513 drivers/i2c/busses/i2c-omap.c pm_runtime_put_autosuspend(omap->dev); omap 1518 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, 0); omap 1519 drivers/i2c/busses/i2c-omap.c pm_runtime_dont_use_autosuspend(omap->dev); omap 1520 drivers/i2c/busses/i2c-omap.c pm_runtime_put_sync(omap->dev); omap 1529 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = platform_get_drvdata(pdev); omap 1532 drivers/i2c/busses/i2c-omap.c i2c_del_adapter(&omap->adapter); omap 1537 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, 0); omap 1546 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = dev_get_drvdata(dev); omap 1548 drivers/i2c/busses/i2c-omap.c omap->iestate = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG); omap 1550 drivers/i2c/busses/i2c-omap.c if (omap->scheme == OMAP_I2C_SCHEME_0) omap 1551 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_IE_REG, 0); omap 1553 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_IP_V2_IRQENABLE_CLR, omap 1556 drivers/i2c/busses/i2c-omap.c if (omap->rev < OMAP_I2C_OMAP1_REV_2) { omap 1557 drivers/i2c/busses/i2c-omap.c omap_i2c_read_reg(omap, OMAP_I2C_IV_REG); /* Read clears */ omap 1559 drivers/i2c/busses/i2c-omap.c omap_i2c_write_reg(omap, OMAP_I2C_STAT_REG, omap->iestate); omap 1562 drivers/i2c/busses/i2c-omap.c omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG); omap 1572 drivers/i2c/busses/i2c-omap.c struct omap_i2c_dev *omap = dev_get_drvdata(dev); omap 1576 drivers/i2c/busses/i2c-omap.c if (!omap->regs) omap 1579 drivers/i2c/busses/i2c-omap.c __omap_i2c_init(omap); omap 280 drivers/mfd/omap-usb-host.c struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); omap 281 drivers/mfd/omap-usb-host.c struct usbhs_omap_platform_data *pdata = omap->pdata; omap 288 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->ehci_logic_fck)) omap 289 drivers/mfd/omap-usb-host.c clk_prepare_enable(omap->ehci_logic_fck); omap 291 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 294 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->hsic60m_clk[i])) { omap 295 drivers/mfd/omap-usb-host.c r = clk_prepare_enable(omap->hsic60m_clk[i]); omap 303 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->hsic480m_clk[i])) { omap 304 drivers/mfd/omap-usb-host.c r = clk_prepare_enable(omap->hsic480m_clk[i]); omap 314 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->utmi_clk[i])) { omap 315 drivers/mfd/omap-usb-host.c r = clk_prepare_enable(omap->utmi_clk[i]); omap 333 drivers/mfd/omap-usb-host.c struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); omap 334 drivers/mfd/omap-usb-host.c struct usbhs_omap_platform_data *pdata = omap->pdata; omap 339 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 342 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->hsic60m_clk[i])) omap 343 drivers/mfd/omap-usb-host.c clk_disable_unprepare(omap->hsic60m_clk[i]); omap 345 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->hsic480m_clk[i])) omap 346 drivers/mfd/omap-usb-host.c clk_disable_unprepare(omap->hsic480m_clk[i]); omap 350 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->utmi_clk[i])) omap 351 drivers/mfd/omap-usb-host.c clk_disable_unprepare(omap->utmi_clk[i]); omap 358 drivers/mfd/omap-usb-host.c if (!IS_ERR(omap->ehci_logic_fck)) omap 359 drivers/mfd/omap-usb-host.c clk_disable_unprepare(omap->ehci_logic_fck); omap 366 drivers/mfd/omap-usb-host.c static unsigned omap_usbhs_rev1_hostconfig(struct usbhs_hcd_omap *omap, omap 369 drivers/mfd/omap-usb-host.c struct usbhs_omap_platform_data *pdata = omap->pdata; omap 372 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 404 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 415 drivers/mfd/omap-usb-host.c static unsigned omap_usbhs_rev2_hostconfig(struct usbhs_hcd_omap *omap, omap 418 drivers/mfd/omap-usb-host.c struct usbhs_omap_platform_data *pdata = omap->pdata; omap 421 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 437 drivers/mfd/omap-usb-host.c struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); omap 444 drivers/mfd/omap-usb-host.c reg = usbhs_read(omap->uhh_base, OMAP_UHH_HOSTCONFIG); omap 452 drivers/mfd/omap-usb-host.c switch (omap->usbhs_rev) { omap 454 drivers/mfd/omap-usb-host.c reg = omap_usbhs_rev1_hostconfig(omap, reg); omap 458 drivers/mfd/omap-usb-host.c reg = omap_usbhs_rev2_hostconfig(omap, reg); omap 462 drivers/mfd/omap-usb-host.c reg = omap_usbhs_rev2_hostconfig(omap, reg); omap 466 drivers/mfd/omap-usb-host.c usbhs_write(omap->uhh_base, OMAP_UHH_HOSTCONFIG, reg); omap 534 drivers/mfd/omap-usb-host.c struct usbhs_hcd_omap *omap; omap 564 drivers/mfd/omap-usb-host.c omap = devm_kzalloc(dev, sizeof(*omap), GFP_KERNEL); omap 565 drivers/mfd/omap-usb-host.c if (!omap) { omap 571 drivers/mfd/omap-usb-host.c omap->uhh_base = devm_ioremap_resource(dev, res); omap 572 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->uhh_base)) omap 573 drivers/mfd/omap-usb-host.c return PTR_ERR(omap->uhh_base); omap 575 drivers/mfd/omap-usb-host.c omap->pdata = pdata; omap 582 drivers/mfd/omap-usb-host.c platform_set_drvdata(pdev, omap); omap 585 drivers/mfd/omap-usb-host.c omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); omap 597 drivers/mfd/omap-usb-host.c omap->nports = pdata->nports; omap 599 drivers/mfd/omap-usb-host.c switch (omap->usbhs_rev) { omap 601 drivers/mfd/omap-usb-host.c omap->nports = 3; omap 604 drivers/mfd/omap-usb-host.c omap->nports = 2; omap 607 drivers/mfd/omap-usb-host.c omap->nports = OMAP3_HS_USB_PORTS; omap 610 drivers/mfd/omap-usb-host.c omap->usbhs_rev, omap->nports); omap 613 drivers/mfd/omap-usb-host.c pdata->nports = omap->nports; omap 616 drivers/mfd/omap-usb-host.c i = sizeof(struct clk *) * omap->nports; omap 617 drivers/mfd/omap-usb-host.c omap->utmi_clk = devm_kzalloc(dev, i, GFP_KERNEL); omap 618 drivers/mfd/omap-usb-host.c omap->hsic480m_clk = devm_kzalloc(dev, i, GFP_KERNEL); omap 619 drivers/mfd/omap-usb-host.c omap->hsic60m_clk = devm_kzalloc(dev, i, GFP_KERNEL); omap 621 drivers/mfd/omap-usb-host.c if (!omap->utmi_clk || !omap->hsic480m_clk || !omap->hsic60m_clk) { omap 628 drivers/mfd/omap-usb-host.c omap->ehci_logic_fck = ERR_PTR(-ENODEV); omap 629 drivers/mfd/omap-usb-host.c omap->init_60m_fclk = ERR_PTR(-ENODEV); omap 630 drivers/mfd/omap-usb-host.c omap->utmi_p1_gfclk = ERR_PTR(-ENODEV); omap 631 drivers/mfd/omap-usb-host.c omap->utmi_p2_gfclk = ERR_PTR(-ENODEV); omap 632 drivers/mfd/omap-usb-host.c omap->xclk60mhsp1_ck = ERR_PTR(-ENODEV); omap 633 drivers/mfd/omap-usb-host.c omap->xclk60mhsp2_ck = ERR_PTR(-ENODEV); omap 635 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 636 drivers/mfd/omap-usb-host.c omap->utmi_clk[i] = ERR_PTR(-ENODEV); omap 637 drivers/mfd/omap-usb-host.c omap->hsic480m_clk[i] = ERR_PTR(-ENODEV); omap 638 drivers/mfd/omap-usb-host.c omap->hsic60m_clk[i] = ERR_PTR(-ENODEV); omap 642 drivers/mfd/omap-usb-host.c if (omap->usbhs_rev == OMAP_USBHS_REV1) { omap 644 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 653 drivers/mfd/omap-usb-host.c omap->ehci_logic_fck = devm_clk_get(dev, omap 655 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->ehci_logic_fck)) { omap 656 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->ehci_logic_fck); omap 666 drivers/mfd/omap-usb-host.c omap->utmi_p1_gfclk = devm_clk_get(dev, "utmi_p1_gfclk"); omap 667 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->utmi_p1_gfclk)) { omap 668 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->utmi_p1_gfclk); omap 673 drivers/mfd/omap-usb-host.c omap->utmi_p2_gfclk = devm_clk_get(dev, "utmi_p2_gfclk"); omap 674 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->utmi_p2_gfclk)) { omap 675 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->utmi_p2_gfclk); omap 680 drivers/mfd/omap-usb-host.c omap->xclk60mhsp1_ck = devm_clk_get(dev, "refclk_60m_ext_p1"); omap 681 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->xclk60mhsp1_ck)) { omap 682 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->xclk60mhsp1_ck); omap 687 drivers/mfd/omap-usb-host.c omap->xclk60mhsp2_ck = devm_clk_get(dev, "refclk_60m_ext_p2"); omap 688 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->xclk60mhsp2_ck)) { omap 689 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->xclk60mhsp2_ck); omap 694 drivers/mfd/omap-usb-host.c omap->init_60m_fclk = devm_clk_get(dev, "refclk_60m_int"); omap 695 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->init_60m_fclk)) { omap 696 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->init_60m_fclk); omap 701 drivers/mfd/omap-usb-host.c for (i = 0; i < omap->nports; i++) { omap 712 drivers/mfd/omap-usb-host.c omap->utmi_clk[i] = devm_clk_get(dev, clkname); omap 713 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->utmi_clk[i])) { omap 714 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->utmi_clk[i]); omap 722 drivers/mfd/omap-usb-host.c omap->hsic480m_clk[i] = devm_clk_get(dev, clkname); omap 723 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->hsic480m_clk[i])) { omap 724 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->hsic480m_clk[i]); omap 732 drivers/mfd/omap-usb-host.c omap->hsic60m_clk[i] = devm_clk_get(dev, clkname); omap 733 drivers/mfd/omap-usb-host.c if (IS_ERR(omap->hsic60m_clk[i])) { omap 734 drivers/mfd/omap-usb-host.c ret = PTR_ERR(omap->hsic60m_clk[i]); omap 742 drivers/mfd/omap-usb-host.c ret = clk_set_parent(omap->utmi_p1_gfclk, omap 743 drivers/mfd/omap-usb-host.c omap->xclk60mhsp1_ck); omap 750 drivers/mfd/omap-usb-host.c ret = clk_set_parent(omap->utmi_p1_gfclk, omap 751 drivers/mfd/omap-usb-host.c omap->init_60m_fclk); omap 760 drivers/mfd/omap-usb-host.c ret = clk_set_parent(omap->utmi_p2_gfclk, omap 761 drivers/mfd/omap-usb-host.c omap->xclk60mhsp2_ck); omap 768 drivers/mfd/omap-usb-host.c ret = clk_set_parent(omap->utmi_p2_gfclk, omap 769 drivers/mfd/omap-usb-host.c omap->init_60m_fclk); omap 53 drivers/pwm/pwm-omap-dmtimer.c static void pwm_omap_dmtimer_start(struct pwm_omap_dmtimer_chip *omap) omap 63 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->enable(omap->dm_timer); omap 64 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->write_counter(omap->dm_timer, DM_TIMER_LOAD_MIN); omap 65 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->disable(omap->dm_timer); omap 67 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->start(omap->dm_timer); omap 73 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip); omap 75 drivers/pwm/pwm-omap-dmtimer.c mutex_lock(&omap->mutex); omap 76 drivers/pwm/pwm-omap-dmtimer.c pwm_omap_dmtimer_start(omap); omap 77 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 85 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip); omap 87 drivers/pwm/pwm-omap-dmtimer.c mutex_lock(&omap->mutex); omap 88 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->stop(omap->dm_timer); omap 89 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 96 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip); omap 106 drivers/pwm/pwm-omap-dmtimer.c mutex_lock(&omap->mutex); omap 110 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 114 drivers/pwm/pwm-omap-dmtimer.c fclk = omap->pdata->get_fclk(omap->dm_timer); omap 182 drivers/pwm/pwm-omap-dmtimer.c timer_active = pm_runtime_active(&omap->dm_timer_pdev->dev); omap 184 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->stop(omap->dm_timer); omap 186 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_load(omap->dm_timer, true, load_value); omap 187 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_match(omap->dm_timer, true, match_value); omap 192 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_pwm(omap->dm_timer, omap 199 drivers/pwm/pwm-omap-dmtimer.c pwm_omap_dmtimer_start(omap); omap 201 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 206 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 215 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip); omap 221 drivers/pwm/pwm-omap-dmtimer.c mutex_lock(&omap->mutex); omap 222 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_pwm(omap->dm_timer, omap 226 drivers/pwm/pwm-omap-dmtimer.c mutex_unlock(&omap->mutex); omap 244 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap; omap 301 drivers/pwm/pwm-omap-dmtimer.c omap = devm_kzalloc(&pdev->dev, sizeof(*omap), GFP_KERNEL); omap 302 drivers/pwm/pwm-omap-dmtimer.c if (!omap) { omap 307 drivers/pwm/pwm-omap-dmtimer.c omap->pdata = pdata; omap 308 drivers/pwm/pwm-omap-dmtimer.c omap->dm_timer = dm_timer; omap 309 drivers/pwm/pwm-omap-dmtimer.c omap->dm_timer_pdev = timer_pdev; omap 315 drivers/pwm/pwm-omap-dmtimer.c if (pm_runtime_active(&omap->dm_timer_pdev->dev)) omap 316 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->stop(omap->dm_timer); omap 319 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_prescaler(omap->dm_timer, v); omap 323 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->set_source(omap->dm_timer, v); omap 325 drivers/pwm/pwm-omap-dmtimer.c omap->chip.dev = &pdev->dev; omap 326 drivers/pwm/pwm-omap-dmtimer.c omap->chip.ops = &pwm_omap_dmtimer_ops; omap 327 drivers/pwm/pwm-omap-dmtimer.c omap->chip.base = -1; omap 328 drivers/pwm/pwm-omap-dmtimer.c omap->chip.npwm = 1; omap 329 drivers/pwm/pwm-omap-dmtimer.c omap->chip.of_xlate = of_pwm_xlate_with_flags; omap 330 drivers/pwm/pwm-omap-dmtimer.c omap->chip.of_pwm_n_cells = 3; omap 332 drivers/pwm/pwm-omap-dmtimer.c mutex_init(&omap->mutex); omap 334 drivers/pwm/pwm-omap-dmtimer.c ret = pwmchip_add(&omap->chip); omap 342 drivers/pwm/pwm-omap-dmtimer.c platform_set_drvdata(pdev, omap); omap 370 drivers/pwm/pwm-omap-dmtimer.c struct pwm_omap_dmtimer_chip *omap = platform_get_drvdata(pdev); omap 373 drivers/pwm/pwm-omap-dmtimer.c ret = pwmchip_remove(&omap->chip); omap 377 drivers/pwm/pwm-omap-dmtimer.c if (pm_runtime_active(&omap->dm_timer_pdev->dev)) omap 378 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->stop(omap->dm_timer); omap 380 drivers/pwm/pwm-omap-dmtimer.c omap->pdata->free(omap->dm_timer); omap 382 drivers/pwm/pwm-omap-dmtimer.c put_device(&omap->dm_timer_pdev->dev); omap 384 drivers/pwm/pwm-omap-dmtimer.c mutex_destroy(&omap->mutex); omap 151 drivers/usb/dwc3/dwc3-omap.c static u32 dwc3_omap_read_utmi_ctrl(struct dwc3_omap *omap) omap 153 drivers/usb/dwc3/dwc3-omap.c return dwc3_omap_readl(omap->base, USBOTGSS_UTMI_OTG_CTRL + omap 154 drivers/usb/dwc3/dwc3-omap.c omap->utmi_otg_offset); omap 157 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_utmi_ctrl(struct dwc3_omap *omap, u32 value) omap 159 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_UTMI_OTG_CTRL + omap 160 drivers/usb/dwc3/dwc3-omap.c omap->utmi_otg_offset, value); omap 164 drivers/usb/dwc3/dwc3-omap.c static u32 dwc3_omap_read_irq0_status(struct dwc3_omap *omap) omap 166 drivers/usb/dwc3/dwc3-omap.c return dwc3_omap_readl(omap->base, USBOTGSS_IRQSTATUS_RAW_0 - omap 167 drivers/usb/dwc3/dwc3-omap.c omap->irq0_offset); omap 170 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irq0_status(struct dwc3_omap *omap, u32 value) omap 172 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQSTATUS_0 - omap 173 drivers/usb/dwc3/dwc3-omap.c omap->irq0_offset, value); omap 177 drivers/usb/dwc3/dwc3-omap.c static u32 dwc3_omap_read_irqmisc_status(struct dwc3_omap *omap) omap 179 drivers/usb/dwc3/dwc3-omap.c return dwc3_omap_readl(omap->base, USBOTGSS_IRQSTATUS_RAW_MISC + omap 180 drivers/usb/dwc3/dwc3-omap.c omap->irqmisc_offset); omap 183 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irqmisc_status(struct dwc3_omap *omap, u32 value) omap 185 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQSTATUS_MISC + omap 186 drivers/usb/dwc3/dwc3-omap.c omap->irqmisc_offset, value); omap 190 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irqmisc_set(struct dwc3_omap *omap, u32 value) omap 192 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_SET_MISC + omap 193 drivers/usb/dwc3/dwc3-omap.c omap->irqmisc_offset, value); omap 197 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irq0_set(struct dwc3_omap *omap, u32 value) omap 199 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_SET_0 - omap 200 drivers/usb/dwc3/dwc3-omap.c omap->irq0_offset, value); omap 203 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irqmisc_clr(struct dwc3_omap *omap, u32 value) omap 205 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_CLR_MISC + omap 206 drivers/usb/dwc3/dwc3-omap.c omap->irqmisc_offset, value); omap 209 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_write_irq0_clr(struct dwc3_omap *omap, u32 value) omap 211 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_CLR_0 - omap 212 drivers/usb/dwc3/dwc3-omap.c omap->irq0_offset, value); omap 215 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_set_mailbox(struct dwc3_omap *omap, omap 223 drivers/usb/dwc3/dwc3-omap.c if (omap->vbus_reg) { omap 224 drivers/usb/dwc3/dwc3-omap.c ret = regulator_enable(omap->vbus_reg); omap 226 drivers/usb/dwc3/dwc3-omap.c dev_err(omap->dev, "regulator enable failed\n"); omap 231 drivers/usb/dwc3/dwc3-omap.c val = dwc3_omap_read_utmi_ctrl(omap); omap 233 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, val); omap 237 drivers/usb/dwc3/dwc3-omap.c val = dwc3_omap_read_utmi_ctrl(omap); omap 241 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, val); omap 245 drivers/usb/dwc3/dwc3-omap.c if (omap->vbus_reg) omap 246 drivers/usb/dwc3/dwc3-omap.c regulator_disable(omap->vbus_reg); omap 247 drivers/usb/dwc3/dwc3-omap.c val = dwc3_omap_read_utmi_ctrl(omap); omap 249 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, val); omap 253 drivers/usb/dwc3/dwc3-omap.c val = dwc3_omap_read_utmi_ctrl(omap); omap 257 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, val); omap 261 drivers/usb/dwc3/dwc3-omap.c dev_WARN(omap->dev, "invalid state\n"); omap 265 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_enable_irqs(struct dwc3_omap *omap); omap 266 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_disable_irqs(struct dwc3_omap *omap); omap 270 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = _omap; omap 272 drivers/usb/dwc3/dwc3-omap.c if (dwc3_omap_read_irqmisc_status(omap) || omap 273 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_read_irq0_status(omap)) { omap 275 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_disable_irqs(omap); omap 284 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = _omap; omap 288 drivers/usb/dwc3/dwc3-omap.c reg = dwc3_omap_read_irqmisc_status(omap); omap 289 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irqmisc_status(omap, reg); omap 291 drivers/usb/dwc3/dwc3-omap.c reg = dwc3_omap_read_irq0_status(omap); omap 292 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irq0_status(omap, reg); omap 295 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_enable_irqs(omap); omap 300 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_enable_irqs(struct dwc3_omap *omap) omap 306 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irq0_set(omap, reg); omap 318 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irqmisc_set(omap, reg); omap 321 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_disable_irqs(struct dwc3_omap *omap) omap 327 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irq0_clr(omap, reg); omap 339 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_irqmisc_clr(omap, reg); omap 345 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = container_of(nb, struct dwc3_omap, id_nb); omap 348 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_GROUND); omap 350 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_FLOAT); omap 358 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = container_of(nb, struct dwc3_omap, vbus_nb); omap 361 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_VALID); omap 363 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_OFF); omap 368 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_map_offset(struct dwc3_omap *omap) omap 370 drivers/usb/dwc3/dwc3-omap.c struct device_node *node = omap->dev->of_node; omap 381 drivers/usb/dwc3/dwc3-omap.c omap->irq_eoi_offset = USBOTGSS_EOI_OFFSET; omap 382 drivers/usb/dwc3/dwc3-omap.c omap->irq0_offset = USBOTGSS_IRQ0_OFFSET; omap 383 drivers/usb/dwc3/dwc3-omap.c omap->irqmisc_offset = USBOTGSS_IRQMISC_OFFSET; omap 384 drivers/usb/dwc3/dwc3-omap.c omap->utmi_otg_offset = USBOTGSS_UTMI_OTG_OFFSET; omap 385 drivers/usb/dwc3/dwc3-omap.c omap->debug_offset = USBOTGSS_DEBUG_OFFSET; omap 389 drivers/usb/dwc3/dwc3-omap.c static void dwc3_omap_set_utmi_mode(struct dwc3_omap *omap) omap 392 drivers/usb/dwc3/dwc3-omap.c struct device_node *node = omap->dev->of_node; omap 395 drivers/usb/dwc3/dwc3-omap.c reg = dwc3_omap_read_utmi_ctrl(omap); omap 407 drivers/usb/dwc3/dwc3-omap.c dev_WARN(omap->dev, "UNKNOWN utmi mode %d\n", utmi_mode); omap 410 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, reg); omap 413 drivers/usb/dwc3/dwc3-omap.c static int dwc3_omap_extcon_register(struct dwc3_omap *omap) omap 416 drivers/usb/dwc3/dwc3-omap.c struct device_node *node = omap->dev->of_node; omap 420 drivers/usb/dwc3/dwc3-omap.c edev = extcon_get_edev_by_phandle(omap->dev, 0); omap 422 drivers/usb/dwc3/dwc3-omap.c dev_vdbg(omap->dev, "couldn't get extcon device\n"); omap 426 drivers/usb/dwc3/dwc3-omap.c omap->vbus_nb.notifier_call = dwc3_omap_vbus_notifier; omap 427 drivers/usb/dwc3/dwc3-omap.c ret = devm_extcon_register_notifier(omap->dev, edev, omap 428 drivers/usb/dwc3/dwc3-omap.c EXTCON_USB, &omap->vbus_nb); omap 430 drivers/usb/dwc3/dwc3-omap.c dev_vdbg(omap->dev, "failed to register notifier for USB\n"); omap 432 drivers/usb/dwc3/dwc3-omap.c omap->id_nb.notifier_call = dwc3_omap_id_notifier; omap 433 drivers/usb/dwc3/dwc3-omap.c ret = devm_extcon_register_notifier(omap->dev, edev, omap 434 drivers/usb/dwc3/dwc3-omap.c EXTCON_USB_HOST, &omap->id_nb); omap 436 drivers/usb/dwc3/dwc3-omap.c dev_vdbg(omap->dev, "failed to register notifier for USB-HOST\n"); omap 439 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_VALID); omap 441 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_GROUND); omap 443 drivers/usb/dwc3/dwc3-omap.c omap->edev = edev; omap 453 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap; omap 469 drivers/usb/dwc3/dwc3-omap.c omap = devm_kzalloc(dev, sizeof(*omap), GFP_KERNEL); omap 470 drivers/usb/dwc3/dwc3-omap.c if (!omap) omap 473 drivers/usb/dwc3/dwc3-omap.c platform_set_drvdata(pdev, omap); omap 491 drivers/usb/dwc3/dwc3-omap.c omap->dev = dev; omap 492 drivers/usb/dwc3/dwc3-omap.c omap->irq = irq; omap 493 drivers/usb/dwc3/dwc3-omap.c omap->base = base; omap 494 drivers/usb/dwc3/dwc3-omap.c omap->vbus_reg = vbus_reg; omap 503 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_map_offset(omap); omap 504 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_utmi_mode(omap); omap 507 drivers/usb/dwc3/dwc3-omap.c reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG); omap 509 drivers/usb/dwc3/dwc3-omap.c ret = dwc3_omap_extcon_register(omap); omap 519 drivers/usb/dwc3/dwc3-omap.c ret = devm_request_threaded_irq(dev, omap->irq, dwc3_omap_interrupt, omap 521 drivers/usb/dwc3/dwc3-omap.c "dwc3-omap", omap); omap 524 drivers/usb/dwc3/dwc3-omap.c omap->irq, ret); omap 527 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_enable_irqs(omap); omap 539 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = platform_get_drvdata(pdev); omap 541 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_disable_irqs(omap); omap 542 drivers/usb/dwc3/dwc3-omap.c disable_irq(omap->irq); omap 543 drivers/usb/dwc3/dwc3-omap.c of_platform_depopulate(omap->dev); omap 564 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = dev_get_drvdata(dev); omap 566 drivers/usb/dwc3/dwc3-omap.c omap->utmi_otg_ctrl = dwc3_omap_read_utmi_ctrl(omap); omap 567 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_disable_irqs(omap); omap 574 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = dev_get_drvdata(dev); omap 576 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_write_utmi_ctrl(omap, omap->utmi_otg_ctrl); omap 577 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_enable_irqs(omap); omap 588 drivers/usb/dwc3/dwc3-omap.c struct dwc3_omap *omap = dev_get_drvdata(dev); omap 590 drivers/usb/dwc3/dwc3-omap.c if (extcon_get_state(omap->edev, EXTCON_USB)) omap 591 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_VALID); omap 593 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_OFF); omap 595 drivers/usb/dwc3/dwc3-omap.c if (extcon_get_state(omap->edev, EXTCON_USB_HOST)) omap 596 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_GROUND); omap 598 drivers/usb/dwc3/dwc3-omap.c dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_FLOAT); omap 96 drivers/usb/host/ehci-omap.c struct omap_hcd *omap; omap 148 drivers/usb/host/ehci-omap.c omap = (struct omap_hcd *)hcd_to_ehci(hcd)->priv; omap 149 drivers/usb/host/ehci-omap.c omap->nports = pdata->nports; omap 154 drivers/usb/host/ehci-omap.c for (i = 0 ; i < omap->nports ; i++) { omap 172 drivers/usb/host/ehci-omap.c omap->phy[i] = phy; omap 175 drivers/usb/host/ehci-omap.c usb_phy_init(omap->phy[i]); omap 177 drivers/usb/host/ehci-omap.c usb_phy_set_suspend(omap->phy[i], 0); omap 209 drivers/usb/host/ehci-omap.c for (i = 0; i < omap->nports; i++) { omap 210 drivers/usb/host/ehci-omap.c if (!omap->phy[i] || omap 214 drivers/usb/host/ehci-omap.c usb_phy_init(omap->phy[i]); omap 216 drivers/usb/host/ehci-omap.c usb_phy_set_suspend(omap->phy[i], 0); omap 225 drivers/usb/host/ehci-omap.c for (i = 0; i < omap->nports; i++) { omap 226 drivers/usb/host/ehci-omap.c if (omap->phy[i]) omap 227 drivers/usb/host/ehci-omap.c usb_phy_shutdown(omap->phy[i]); omap 248 drivers/usb/host/ehci-omap.c struct omap_hcd *omap = (struct omap_hcd *)hcd_to_ehci(hcd)->priv; omap 253 drivers/usb/host/ehci-omap.c for (i = 0; i < omap->nports; i++) { omap 254 drivers/usb/host/ehci-omap.c if (omap->phy[i]) omap 255 drivers/usb/host/ehci-omap.c usb_phy_shutdown(omap->phy[i]);