dcon 173 drivers/dma/s3c24xx-dma.c u32 dcon; dcon 421 drivers/dma/s3c24xx-dma.c txd->dcon = S3C24XX_DCON_INT | S3C24XX_DCON_NORELOAD; dcon 446 drivers/dma/s3c24xx-dma.c u32 dcon = txd->dcon; dcon 452 drivers/dma/s3c24xx-dma.c dcon |= S3C24XX_DCON_DSZ_BYTE | dsg->len; dcon 455 drivers/dma/s3c24xx-dma.c dcon |= S3C24XX_DCON_DSZ_HALFWORD | (dsg->len / 2); dcon 458 drivers/dma/s3c24xx-dma.c dcon |= S3C24XX_DCON_DSZ_WORD | (dsg->len / 4); dcon 475 drivers/dma/s3c24xx-dma.c dcon |= csel << S3C24XX_DCON_HWSRC_SHIFT; dcon 476 drivers/dma/s3c24xx-dma.c dcon |= S3C24XX_DCON_HWTRIG; dcon 487 drivers/dma/s3c24xx-dma.c writel_relaxed(dcon, phy->base + S3C24XX_DCON); dcon 871 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_DEMAND | S3C24XX_DCON_SYNC_HCLK | dcon 909 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_HANDSHAKE; dcon 913 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SYNC_PCLK; dcon 917 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SYNC_HCLK; dcon 932 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SERV_SINGLE; dcon 998 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_HANDSHAKE; dcon 1002 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SYNC_PCLK; dcon 1006 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SYNC_HCLK; dcon 1021 drivers/dma/s3c24xx-dma.c txd->dcon |= S3C24XX_DCON_SERV_SINGLE; dcon 959 drivers/mmc/host/s3cmci.c u32 dcon, imsk, stoptries = 3; dcon 994 drivers/mmc/host/s3cmci.c dcon = data->blocks & S3C2410_SDIDCON_BLKNUM_MASK; dcon 997 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_DMAEN; dcon 1000 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_WIDEBUS; dcon 1002 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_BLOCKMODE; dcon 1005 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_TXAFTERRESP; dcon 1006 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_XFER_TXSTART; dcon 1010 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_RXAFTERCMD; dcon 1011 drivers/mmc/host/s3cmci.c dcon |= S3C2410_SDIDCON_XFER_RXSTART; dcon 1015 drivers/mmc/host/s3cmci.c dcon |= S3C2440_SDIDCON_DS_WORD; dcon 1016 drivers/mmc/host/s3cmci.c dcon |= S3C2440_SDIDCON_DATSTART; dcon 1019 drivers/mmc/host/s3cmci.c writel(dcon, host->base + S3C2410_SDIDCON); dcon 46 drivers/staging/olpc_dcon/olpc_dcon.c static s32 dcon_write(struct dcon_priv *dcon, u8 reg, u16 val) dcon 48 drivers/staging/olpc_dcon/olpc_dcon.c return i2c_smbus_write_word_data(dcon->client, reg, val); dcon 51 drivers/staging/olpc_dcon/olpc_dcon.c static s32 dcon_read(struct dcon_priv *dcon, u8 reg) dcon 53 drivers/staging/olpc_dcon/olpc_dcon.c return i2c_smbus_read_word_data(dcon->client, reg); dcon 58 drivers/staging/olpc_dcon/olpc_dcon.c static int dcon_hw_init(struct dcon_priv *dcon, int is_init) dcon 63 drivers/staging/olpc_dcon/olpc_dcon.c ver = dcon_read(dcon, DCON_REG_ID); dcon 72 drivers/staging/olpc_dcon/olpc_dcon.c rc = pdata->init(dcon); dcon 80 drivers/staging/olpc_dcon/olpc_dcon.c dev_err(&dcon->client->dev, dcon 87 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, 0x3a, 0xc040); dcon 88 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MEM_OPT_A, 0x0000); /* clear option bits */ dcon 89 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MEM_OPT_A, dcon 91 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MEM_OPT_B, MEM_SOFT_RESET); dcon 95 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode = MODE_PASSTHRU | MODE_BL_ENABLE | dcon 98 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode); dcon 101 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_SCAN_INT, resumeline); dcon 116 drivers/staging/olpc_dcon/olpc_dcon.c static int dcon_bus_stabilize(struct dcon_priv *dcon, int is_powered_down) dcon 137 drivers/staging/olpc_dcon/olpc_dcon.c x = dcon_read(dcon, DCON_REG_ID); dcon 150 drivers/staging/olpc_dcon/olpc_dcon.c return dcon_hw_init(dcon, 0); dcon 154 drivers/staging/olpc_dcon/olpc_dcon.c static void dcon_set_backlight(struct dcon_priv *dcon, u8 level) dcon 156 drivers/staging/olpc_dcon/olpc_dcon.c dcon->bl_val = level; dcon 157 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_BRIGHT, dcon->bl_val); dcon 160 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->bl_val == 0) { dcon 161 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode &= ~MODE_BL_ENABLE; dcon 162 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode); dcon 163 drivers/staging/olpc_dcon/olpc_dcon.c } else if (!(dcon->disp_mode & MODE_BL_ENABLE)) { dcon 164 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode |= MODE_BL_ENABLE; dcon 165 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode); dcon 170 drivers/staging/olpc_dcon/olpc_dcon.c static int dcon_set_mono_mode(struct dcon_priv *dcon, bool enable_mono) dcon 172 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->mono == enable_mono) dcon 175 drivers/staging/olpc_dcon/olpc_dcon.c dcon->mono = enable_mono; dcon 178 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode &= ~(MODE_CSWIZZLE | MODE_COL_AA); dcon 179 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode |= MODE_MONO_LUMA; dcon 181 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode &= ~(MODE_MONO_LUMA); dcon 182 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode |= MODE_CSWIZZLE | MODE_COL_AA; dcon 185 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode); dcon 193 drivers/staging/olpc_dcon/olpc_dcon.c static void dcon_sleep(struct dcon_priv *dcon, bool sleep) dcon 199 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->asleep == sleep) dcon 212 drivers/staging/olpc_dcon/olpc_dcon.c dcon->asleep = sleep; dcon 215 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->bl_val != 0) dcon 216 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode |= MODE_BL_ENABLE; dcon 217 drivers/staging/olpc_dcon/olpc_dcon.c x = dcon_bus_stabilize(dcon, 1); dcon 221 drivers/staging/olpc_dcon/olpc_dcon.c dcon->asleep = sleep; dcon 224 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_backlight(dcon, dcon->bl_val); dcon 235 drivers/staging/olpc_dcon/olpc_dcon.c static void dcon_load_holdoff(struct dcon_priv *dcon) dcon 241 drivers/staging/olpc_dcon/olpc_dcon.c delta_t = ktime_sub(now, dcon->load_time); dcon 248 drivers/staging/olpc_dcon/olpc_dcon.c static bool dcon_blank_fb(struct dcon_priv *dcon, bool blank) dcon 253 drivers/staging/olpc_dcon/olpc_dcon.c lock_fb_info(dcon->fbinfo); dcon 255 drivers/staging/olpc_dcon/olpc_dcon.c dcon->ignore_fb_events = true; dcon 256 drivers/staging/olpc_dcon/olpc_dcon.c err = fb_blank(dcon->fbinfo, dcon 258 drivers/staging/olpc_dcon/olpc_dcon.c dcon->ignore_fb_events = false; dcon 259 drivers/staging/olpc_dcon/olpc_dcon.c unlock_fb_info(dcon->fbinfo); dcon 263 drivers/staging/olpc_dcon/olpc_dcon.c dev_err(&dcon->client->dev, "couldn't %sblank framebuffer\n", dcon 273 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = container_of(work, struct dcon_priv, dcon 275 drivers/staging/olpc_dcon/olpc_dcon.c int source = dcon->pending_src; dcon 277 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->curr_src == source) dcon 280 drivers/staging/olpc_dcon/olpc_dcon.c dcon_load_holdoff(dcon); dcon 282 drivers/staging/olpc_dcon/olpc_dcon.c dcon->switched = false; dcon 288 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon_write(dcon, DCON_REG_MODE, dcon 289 drivers/staging/olpc_dcon/olpc_dcon.c dcon->disp_mode | MODE_SCAN_INT)) dcon 293 drivers/staging/olpc_dcon/olpc_dcon.c wait_event_timeout(dcon->waitq, dcon->switched, HZ); dcon 295 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon->switched) dcon 299 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon_write(dcon, DCON_REG_MODE, dcon->disp_mode)) dcon 310 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon_blank_fb(dcon, false)) { dcon 312 drivers/staging/olpc_dcon/olpc_dcon.c dcon->pending_src = DCON_SOURCE_DCON; dcon 318 drivers/staging/olpc_dcon/olpc_dcon.c dcon->load_time = ktime_get(); dcon 330 drivers/staging/olpc_dcon/olpc_dcon.c dcon->load_time = ktime_get(); dcon 332 drivers/staging/olpc_dcon/olpc_dcon.c wait_event_timeout(dcon->waitq, dcon->switched, HZ / 2); dcon 334 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon->switched) { dcon 348 drivers/staging/olpc_dcon/olpc_dcon.c delta_t = ktime_sub(dcon->irq_time, dcon->load_time); dcon 349 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->switched && ktime_to_ns(delta_t) dcon 355 drivers/staging/olpc_dcon/olpc_dcon.c dcon->load_time = ktime_get(); dcon 360 drivers/staging/olpc_dcon/olpc_dcon.c dcon_blank_fb(dcon, true); dcon 368 drivers/staging/olpc_dcon/olpc_dcon.c dcon->curr_src = source; dcon 371 drivers/staging/olpc_dcon/olpc_dcon.c static void dcon_set_source(struct dcon_priv *dcon, int arg) dcon 373 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->pending_src == arg) dcon 376 drivers/staging/olpc_dcon/olpc_dcon.c dcon->pending_src = arg; dcon 378 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->curr_src != arg) dcon 379 drivers/staging/olpc_dcon/olpc_dcon.c schedule_work(&dcon->switch_source); dcon 382 drivers/staging/olpc_dcon/olpc_dcon.c static void dcon_set_source_sync(struct dcon_priv *dcon, int arg) dcon 384 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source(dcon, arg); dcon 392 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = dev_get_drvdata(dev); dcon 394 drivers/staging/olpc_dcon/olpc_dcon.c return sprintf(buf, "%4.4X\n", dcon->disp_mode); dcon 401 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = dev_get_drvdata(dev); dcon 403 drivers/staging/olpc_dcon/olpc_dcon.c return sprintf(buf, "%d\n", dcon->asleep); dcon 410 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = dev_get_drvdata(dev); dcon 412 drivers/staging/olpc_dcon/olpc_dcon.c return sprintf(buf, "%d\n", dcon->curr_src == DCON_SOURCE_DCON ? 1 : 0); dcon 419 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = dev_get_drvdata(dev); dcon 421 drivers/staging/olpc_dcon/olpc_dcon.c return sprintf(buf, "%d\n", dcon->mono); dcon 451 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = dev_get_drvdata(dev); dcon 461 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source(dcon, DCON_SOURCE_CPU); dcon 464 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source_sync(dcon, DCON_SOURCE_DCON); dcon 467 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source(dcon, DCON_SOURCE_DCON); dcon 518 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = bl_get_data(dev); dcon 524 drivers/staging/olpc_dcon/olpc_dcon.c if (level != dcon->bl_val) dcon 525 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_backlight(dcon, level); dcon 528 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon->ignore_fb_events) dcon 529 drivers/staging/olpc_dcon/olpc_dcon.c dcon_sleep(dcon, !!(dev->props.state & BL_CORE_FBBLANK)); dcon 536 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = bl_get_data(dev); dcon 538 drivers/staging/olpc_dcon/olpc_dcon.c return dcon->bl_val; dcon 555 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = container_of(nb, struct dcon_priv, reboot_nb); dcon 557 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon || !dcon->client) dcon 561 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, 0x39); dcon 562 drivers/staging/olpc_dcon/olpc_dcon.c dcon_write(dcon, DCON_REG_MODE, 0x32); dcon 586 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon; dcon 592 drivers/staging/olpc_dcon/olpc_dcon.c dcon = kzalloc(sizeof(*dcon), GFP_KERNEL); dcon 593 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon) dcon 596 drivers/staging/olpc_dcon/olpc_dcon.c dcon->client = client; dcon 597 drivers/staging/olpc_dcon/olpc_dcon.c init_waitqueue_head(&dcon->waitq); dcon 598 drivers/staging/olpc_dcon/olpc_dcon.c INIT_WORK(&dcon->switch_source, dcon_source_switch); dcon 599 drivers/staging/olpc_dcon/olpc_dcon.c dcon->reboot_nb.notifier_call = dcon_reboot_notify; dcon 600 drivers/staging/olpc_dcon/olpc_dcon.c dcon->reboot_nb.priority = -1; dcon 602 drivers/staging/olpc_dcon/olpc_dcon.c i2c_set_clientdata(client, dcon); dcon 609 drivers/staging/olpc_dcon/olpc_dcon.c dcon->fbinfo = registered_fb[0]; dcon 611 drivers/staging/olpc_dcon/olpc_dcon.c rc = dcon_hw_init(dcon, 1); dcon 625 drivers/staging/olpc_dcon/olpc_dcon.c platform_set_drvdata(dcon_device, dcon); dcon 641 drivers/staging/olpc_dcon/olpc_dcon.c dcon->bl_val = dcon_read(dcon, DCON_REG_BRIGHT) & 0x0F; dcon 644 drivers/staging/olpc_dcon/olpc_dcon.c dcon_bl_props.brightness = dcon->bl_val; dcon 645 drivers/staging/olpc_dcon/olpc_dcon.c dcon->bl_dev = backlight_device_register("dcon-bl", &dcon_device->dev, dcon 646 drivers/staging/olpc_dcon/olpc_dcon.c dcon, &dcon_bl_ops, dcon 648 drivers/staging/olpc_dcon/olpc_dcon.c if (IS_ERR(dcon->bl_dev)) { dcon 650 drivers/staging/olpc_dcon/olpc_dcon.c PTR_ERR(dcon->bl_dev)); dcon 651 drivers/staging/olpc_dcon/olpc_dcon.c dcon->bl_dev = NULL; dcon 654 drivers/staging/olpc_dcon/olpc_dcon.c register_reboot_notifier(&dcon->reboot_nb); dcon 666 drivers/staging/olpc_dcon/olpc_dcon.c free_irq(DCON_IRQ, dcon); dcon 668 drivers/staging/olpc_dcon/olpc_dcon.c kfree(dcon); dcon 674 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = i2c_get_clientdata(client); dcon 676 drivers/staging/olpc_dcon/olpc_dcon.c unregister_reboot_notifier(&dcon->reboot_nb); dcon 679 drivers/staging/olpc_dcon/olpc_dcon.c free_irq(DCON_IRQ, dcon); dcon 681 drivers/staging/olpc_dcon/olpc_dcon.c backlight_device_unregister(dcon->bl_dev); dcon 685 drivers/staging/olpc_dcon/olpc_dcon.c cancel_work_sync(&dcon->switch_source); dcon 687 drivers/staging/olpc_dcon/olpc_dcon.c kfree(dcon); dcon 696 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = i2c_get_clientdata(client); dcon 698 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon->asleep) { dcon 700 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source_sync(dcon, DCON_SOURCE_DCON); dcon 709 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = i2c_get_clientdata(client); dcon 711 drivers/staging/olpc_dcon/olpc_dcon.c if (!dcon->asleep) { dcon 712 drivers/staging/olpc_dcon/olpc_dcon.c dcon_bus_stabilize(dcon, 0); dcon 713 drivers/staging/olpc_dcon/olpc_dcon.c dcon_set_source(dcon, DCON_SOURCE_CPU); dcon 728 drivers/staging/olpc_dcon/olpc_dcon.c struct dcon_priv *dcon = id; dcon 741 drivers/staging/olpc_dcon/olpc_dcon.c dcon->switched = true; dcon 742 drivers/staging/olpc_dcon/olpc_dcon.c dcon->irq_time = ktime_get(); dcon 743 drivers/staging/olpc_dcon/olpc_dcon.c wake_up(&dcon->waitq); dcon 754 drivers/staging/olpc_dcon/olpc_dcon.c if (dcon->curr_src != dcon->pending_src && !dcon->switched) { dcon 755 drivers/staging/olpc_dcon/olpc_dcon.c dcon->switched = true; dcon 756 drivers/staging/olpc_dcon/olpc_dcon.c dcon->irq_time = ktime_get(); dcon 757 drivers/staging/olpc_dcon/olpc_dcon.c wake_up(&dcon->waitq); dcon 94 drivers/staging/olpc_dcon/olpc_dcon.h int (*init)(struct dcon_priv *dcon); dcon 39 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c static int dcon_init_xo_1(struct dcon_priv *dcon) dcon 46 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c gpios[i] = devm_gpiod_get(&dcon->client->dev, pin[i].name, dcon 69 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c dcon->curr_src = cs5535_gpio_isset(OLPC_GPIO_DCON_LOAD, GPIO_OUTPUT_VAL) dcon 72 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c dcon->pending_src = dcon->curr_src; dcon 80 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c dcon->curr_src == DCON_SOURCE_CPU); dcon 96 drivers/staging/olpc_dcon/olpc_dcon_xo_1.c if (request_irq(DCON_IRQ, &dcon_interrupt, 0, "DCON", dcon)) { dcon 86 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c static int dcon_init_xo_1_5(struct dcon_priv *dcon) dcon 94 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c gpios_table.dev_id = dev_name(&dcon->client->dev); dcon 99 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c gpios[i] = devm_gpiod_get(&dcon->client->dev, pin[i].name, dcon 116 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c dcon->curr_src = (inl(VX855_GENL_PURPOSE_OUTPUT) & 0x1000) ? dcon 118 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c dcon->pending_src = dcon->curr_src; dcon 122 drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c if (request_irq(irq, &dcon_interrupt, IRQF_SHARED, "DCON", dcon)) {