コード例 #1
0
ファイル: devices.c プロジェクト: 1x23/unifi-gpl
/* See also arch/arm/plat-omap/devices.c for first I2C on 24xx */
static void omap_init_i2c(void)
{
	/* REVISIT: Second I2C not in use on H4? */
	if (machine_is_omap_h4())
		return;

	omap_cfg_reg(J15_24XX_I2C2_SCL);
	omap_cfg_reg(H19_24XX_I2C2_SDA);
	(void) platform_device_register(&omap_i2c_device2);
}
コード例 #2
0
ファイル: devices.c プロジェクト: AdiPat/i9003_Kernel
static void omap_init_kp(void)
{
	/* 2430 and 34xx keypad is on TWL4030 */
	if (cpu_is_omap2430() || cpu_is_omap34xx())
		return;

	if (machine_is_omap_h2() || machine_is_omap_h3()) {
		omap_cfg_reg(F18_1610_KBC0);
		omap_cfg_reg(D20_1610_KBC1);
		omap_cfg_reg(D19_1610_KBC2);
		omap_cfg_reg(E18_1610_KBC3);
		omap_cfg_reg(C21_1610_KBC4);

		omap_cfg_reg(G18_1610_KBR0);
		omap_cfg_reg(F19_1610_KBR1);
		omap_cfg_reg(H14_1610_KBR2);
		omap_cfg_reg(E20_1610_KBR3);
		omap_cfg_reg(E19_1610_KBR4);
		omap_cfg_reg(N19_1610_KBR5);
	} else if (machine_is_omap_perseus2() || machine_is_omap_fsample()) {
		omap_cfg_reg(E2_7XX_KBR0);
		omap_cfg_reg(J7_7XX_KBR1);
		omap_cfg_reg(E1_7XX_KBR2);
		omap_cfg_reg(F3_7XX_KBR3);
		omap_cfg_reg(D2_7XX_KBR4);

		omap_cfg_reg(C2_7XX_KBC0);
		omap_cfg_reg(D3_7XX_KBC1);
		omap_cfg_reg(E4_7XX_KBC2);
		omap_cfg_reg(F4_7XX_KBC3);
		omap_cfg_reg(E3_7XX_KBC4);
	} else if (machine_is_omap_h4()) {
		omap_cfg_reg(T19_24XX_KBR0);
		omap_cfg_reg(R19_24XX_KBR1);
		omap_cfg_reg(V18_24XX_KBR2);
		omap_cfg_reg(M21_24XX_KBR3);
		omap_cfg_reg(E5__24XX_KBR4);
		if (omap_has_menelaus()) {
			omap_cfg_reg(B3__24XX_KBR5);
			omap_cfg_reg(AA4_24XX_KBC2);
			omap_cfg_reg(B13_24XX_KBC6);
		} else {
			omap_cfg_reg(M18_24XX_KBR5);
			omap_cfg_reg(H19_24XX_KBC2);
			omap_cfg_reg(N19_24XX_KBC6);
		}
		omap_cfg_reg(R20_24XX_KBC0);
		omap_cfg_reg(M14_24XX_KBC1);
		omap_cfg_reg(V17_24XX_KBC3);
		omap_cfg_reg(P21_24XX_KBC4);
		omap_cfg_reg(L14_24XX_KBC5);
	}
}
コード例 #3
0
static void h2p2_dbg_leds_event(led_event_t evt)
{
    unsigned long flags;

    spin_lock_irqsave(&lock, flags);

    if (!(led_state & LED_STATE_ENABLED) && evt != led_start)
        goto done;

    switch (evt) {
    case led_start:
        if (fpga)
            led_state |= LED_STATE_ENABLED;
        break;

    case led_stop:
    case led_halted:


        if (!(machine_is_omap_perseus2() || machine_is_omap_h4())) {
            gpio_set_value(GPIO_TIMER, 0);
            gpio_set_value(GPIO_IDLE, 0);
        }

        __raw_writew(~0, &fpga->leds);
        led_state &= ~LED_STATE_ENABLED;
        goto done;

    case led_claim:
        led_state |= LED_STATE_CLAIMED;
        hw_led_state = 0;
        break;

    case led_release:
        led_state &= ~LED_STATE_CLAIMED;
        break;

#ifdef CONFIG_LEDS_TIMER
    case led_timer:
        led_state ^= LED_TIMER_ON;

        if (machine_is_omap_perseus2() || machine_is_omap_h4())
            hw_led_state ^= H2P2_DBG_FPGA_P2_LED_TIMER;
        else {
            gpio_set_value(GPIO_TIMER,
                           led_state & LED_TIMER_ON);
            goto done;
        }

        break;
#endif

#ifdef CONFIG_LEDS_CPU

    case led_idle_start:
        if (machine_is_omap_perseus2() || machine_is_omap_h4())
            hw_led_state &= ~H2P2_DBG_FPGA_P2_LED_IDLE;
        else {
            gpio_set_value(GPIO_IDLE, 1);
            goto done;
        }

        break;

    case led_idle_end:
        if (machine_is_omap_perseus2() || machine_is_omap_h4())
            hw_led_state |= H2P2_DBG_FPGA_P2_LED_IDLE;
        else {
            gpio_set_value(GPIO_IDLE, 0);
            goto done;
        }

        break;
#endif

    case led_green_on:
        hw_led_state |= H2P2_DBG_FPGA_LED_GREEN;
        break;
    case led_green_off:
        hw_led_state &= ~H2P2_DBG_FPGA_LED_GREEN;
        break;

    case led_amber_on:
        hw_led_state |= H2P2_DBG_FPGA_LED_AMBER;
        break;
    case led_amber_off:
        hw_led_state &= ~H2P2_DBG_FPGA_LED_AMBER;
        break;

    case led_red_on:
        hw_led_state |= H2P2_DBG_FPGA_LED_RED;
        break;
    case led_red_off:
        hw_led_state &= ~H2P2_DBG_FPGA_LED_RED;
        break;

    case led_blue_on:
        hw_led_state |= H2P2_DBG_FPGA_LED_BLUE;
        break;
    case led_blue_off:
        hw_led_state &= ~H2P2_DBG_FPGA_LED_BLUE;
        break;

    default:
        break;
    }



    if (led_state & LED_STATE_ENABLED)
        __raw_writew(~hw_led_state, &fpga->leds);

done:
    spin_unlock_irqrestore(&lock, flags);
}