Exemplo n.º 1
0
void early_mainboard_init(void)
{
	clock_enable_clear_reset(0, CLK_H_SBC1, CLK_U_I2C3, 0, 0, 0);
	setup_pinmux();
	configure_ec_spi_bus();
	configure_tpm_i2c_bus();
}
Exemplo n.º 2
0
static int __init spi_init(void)
{
    int ret ;
    ret = spi_int();
    if( ret )
    {
        printk(KERN_INFO "SPI was not able to set ");
        return ret;
    }
    ret = setup_pinmux();  // way of setting up gpio in linux kernel
    if(ret)
    {
        printk(KERN_INFO "CHIP SELECT OF GPIO WAS NOT ABLE TO SET");
    }

    static struct netlink_kernel_cfg cfg;

    printk("Entering: %s\n",__FUNCTION__);
//  nl_sk=netlink_kernel_create(&init_net, NETLINK_USER, NULL);  //used if kernel version is less than 2.60
    cfg.input = nl_recv_send_msg;  //for kernel version < 2.60
    nl_sk=netlink_kernel_create(&init_net, NETLINK_USER,  &cfg );

    if(!nl_sk)
    {
        printk(KERN_ALERT "Error creating socket.\n");
        return -10;
    }
    return 0;
}
Exemplo n.º 3
0
static void hardware_init(void) {
	// Setup UART clocks

	setup_pinmux();
	spi_init();
	spi_setup_device(SPI_DEVICE_1, SSP_BITS_8, SSP_FRAMEFORMAT_SPI, SSP_CLOCK_MODE0, true);
	SDCardInit();
	i2c_onboard_init();
}
Exemplo n.º 4
0
static void mainboard_init(device_t dev)
{
    set_clock_sources();

    clock_external_output(1); /* For external MAX98090 audio codec. */

    /*
     * Confirmed by NVIDIA hardware team, we need to take ALL audio devices
     * conntected to AHUB (AUDIO, APBIF, I2S, DAM, AMX, ADX, SPDIF, AFC) out
     * of reset and clock-enabled, otherwise reading AHUB devices (In our
     * case, I2S/APBIF/AUDIO<XBAR>) will hang.
     *
     * Note that CLK_H_MEM (MC) and CLK_H_EMC should be already either
     * initialized by BootROM, or in romstage SDRAM initialization.
     */
    clock_enable_clear_reset(CLK_L_GPIO | CLK_L_I2C1 | CLK_L_SDMMC4 |
                             CLK_L_I2S0 | CLK_L_I2S1 | CLK_L_I2S2 |
                             CLK_L_SPDIF | CLK_L_USBD | CLK_L_DISP1 |
                             CLK_L_HOST1X | CLK_L_PWM,

                             CLK_H_I2C2 | CLK_H_PMC | CLK_H_USB3,

                             CLK_U_CSITE | CLK_U_SDMMC3,

                             CLK_V_I2C4 | CLK_V_EXTPERIPH1 | CLK_V_APBIF |
                             CLK_V_AUDIO | CLK_V_I2S3 | CLK_V_I2S4 |
                             CLK_V_DAM0 | CLK_V_DAM1 | CLK_V_DAM2,

                             CLK_W_DVFS | CLK_W_AMX0 | CLK_W_ADX0,

                             CLK_X_DPAUX | CLK_X_SOR0 | CLK_X_AMX1 |
                             CLK_X_ADX1 | CLK_X_AFC0 | CLK_X_AFC1 |
                             CLK_X_AFC2 | CLK_X_AFC3 | CLK_X_AFC4 |
                             CLK_X_AFC5);

    usb_setup_utmip((void*)TEGRA_USBD_BASE);
    /* USB2 is the camera, we don't need it in firmware */
    usb_setup_utmip((void*)TEGRA_USB3_BASE);

    setup_pinmux();

    i2c_init(0);
    i2c_init(1);
    i2c_init(3);

    setup_kernel_info();
    clock_init_arm_generic_timer();
    setup_ec_spi();
#if CONFIG_ELOG
    elog_init();
    elog_add_boot_reason();
#endif
}
Exemplo n.º 5
0
static void hardware_initialize() {
    // Setup pin multiplexing
    setup_pinmux(UART2_TXD);
    setup_pinmux(UART2_RXD);
    setup_pinmux(UART2_CTS);
    setup_pinmux(UART2_RTS);
    //setup_pinmux(GP0_15);
    gpio_direction_output(BT_SHUTDOWN_PIN, 0);
    setup_pinmux(BT_SHUTDOWN_PIN);

    // Setup Bluetooth slow clock
    setup_pinmux(ECAP2_APWM2);
    //setup_pinmux(GP0_12);
    PSC1.MDCTL[20] |= 0x3;           // Enable ECAP module
    PSC1.PTCMD |= 0x3;
    SYSCFG1.PUPD_ENA &= ~0x00000004;
    ECAP2.TSCTR  = 0;
    ECAP2.CTRPHS = 0;
    ECAP2.ECCTL2 = 0x690;
    ECAP2.CAP2   = 2289;             // ECAP2.CAP2 = 2014;
    ECAP2.CAP1   = 4578;             // ECAP2.CAP1 = 4028;

    // Enable Bluetooth module
    gpio_direction_output(BT_SHUTDOWN_PIN, 1);
}
Exemplo n.º 6
0
static void mainboard_init(device_t dev)
{
	set_clock_sources();

	clock_external_output(1); /* For external MAX98090 audio codec. */

	/*
	 * Confirmed by NVIDIA hardware team, we need to take ALL audio devices
	 * conntected to AHUB (AUDIO, APBIF, I2S, DAM, AMX, ADX, SPDIF, AFC) out
	 * of reset and clock-enabled, otherwise reading AHUB devices (In our
	 * case, I2S/APBIF/AUDIO<XBAR>) will hang.
	 */
	clock_enable_clear_reset(CLK_L_GPIO | CLK_L_I2C1 | CLK_L_SDMMC4 |
				 CLK_L_I2S0 | CLK_L_I2S1 | CLK_L_I2S2 |
				 CLK_L_SPDIF | CLK_L_USBD | CLK_L_DISP1 |
				 CLK_L_HOST1X | CLK_L_PWM,

				 CLK_H_EMC | CLK_H_I2C2 | CLK_H_PMC |
				 CLK_H_MEM | CLK_H_USB2 | CLK_H_USB3,

				 CLK_U_CSITE | CLK_U_SDMMC3,

				 CLK_V_I2C4 | CLK_V_EXTPERIPH1 | CLK_V_APBIF |
				 CLK_V_AUDIO | CLK_V_I2S3 | CLK_V_I2S4 |
				 CLK_V_DAM0 | CLK_V_DAM1 | CLK_V_DAM2,

				 CLK_W_DVFS | CLK_W_AMX0 | CLK_W_ADX0,

				 CLK_X_DPAUX | CLK_X_SOR0 | CLK_X_AMX1 |
				 CLK_X_ADX1 | CLK_X_AFC0 | CLK_X_AFC1 |
				 CLK_X_AFC2 | CLK_X_AFC3 | CLK_X_AFC4 |
				 CLK_X_AFC5);

	usb_setup_utmip((void*)TEGRA_USBD_BASE);
	usb_setup_utmip((void*)TEGRA_USB2_BASE);
	usb_setup_utmip((void*)TEGRA_USB3_BASE);

	setup_pinmux();

	i2c_init(0);
	i2c_init(1);
	i2c_init(3);

	setup_kernel_info();
	clock_init_arm_generic_timer();
	setup_ec_spi();
}