void __init bcm2708_init(void) { int i; #if defined(CONFIG_BCM_VC_CMA) vc_cma_early_init(); #endif printk("bcm2708.uart_clock = %d\n", uart_clock); pm_power_off = bcm2708_power_off; bcm2708_init_clocks(); bcm2708_dt_init(); bcm_register_device_dt(&bcm2708_dmaengine_device); bcm_register_device_dt(&bcm2708_vcio_device); bcm_register_device_dt(&bcm2708_vchiq_device); #ifdef CONFIG_BCM2708_GPIO bcm_register_device_dt(&bcm2708_gpio_device); #endif #if defined(CONFIG_PPS_CLIENT_GPIO) || defined(CONFIG_PPS_CLIENT_GPIO_MODULE) if (!use_dt && (pps_gpio_pin >= 0)) { pr_info("bcm2708: GPIO %d setup as pps-gpio device\n", pps_gpio_pin); pps_gpio_info.gpio_pin = pps_gpio_pin; pps_gpio_device.id = pps_gpio_pin; bcm_register_device(&pps_gpio_device); } #endif #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) w1_gpio_pdata.pin = w1_gpio_pin; w1_gpio_pdata.ext_pullup_enable_pin = w1_gpio_pullup; bcm_register_device_dt(&w1_device); #endif bcm_register_device_dt(&bcm2708_fb_device); bcm_register_device_dt(&bcm2708_usb_device); #ifdef CONFIG_MMC_BCM2835 bcm_register_device_dt(&bcm2835_emmc_device); #endif bcm2708_init_led(); bcm2708_init_uart1(); /* Only create the platform devices for the ALSA driver in the absence of an enabled "audio" DT node */ if (!use_dt || !of_device_is_available(of_find_node_by_path("/audio"))) { for (i = 0; i < ARRAY_SIZE(bcm2708_alsa_devices); i++) bcm_register_device(&bcm2708_alsa_devices[i]); } bcm_register_device_dt(&bcm2708_spi_device); if (vc_i2c_override) { bcm_register_device_dt(&bcm2708_bsc0_device); bcm_register_device_dt(&bcm2708_bsc1_device); } else if ((boardrev & 0xffffff) == 0x2 || (boardrev & 0xffffff) == 0x3) { bcm_register_device_dt(&bcm2708_bsc0_device); } else { bcm_register_device_dt(&bcm2708_bsc1_device); } bcm_register_device_dt(&bcm2835_thermal_device); #if defined(CONFIG_SND_BCM2708_SOC_I2S) || defined(CONFIG_SND_BCM2708_SOC_I2S_MODULE) bcm_register_device_dt(&bcm2708_i2s_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC_MODULE) bcm_register_device_dt(&snd_hifiberry_dac_device); bcm_register_device_dt(&snd_pcm5102a_codec_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS_MODULE) bcm_register_device_dt(&snd_rpi_hifiberry_dacplus_device); i2c_register_board_info_dt(1, snd_pcm512x_hbdacplus_i2c_devices, ARRAY_SIZE(snd_pcm512x_hbdacplus_i2c_devices)); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI_MODULE) bcm_register_device_dt(&snd_hifiberry_digi_device); i2c_register_board_info_dt(1, snd_wm8804_i2c_devices, ARRAY_SIZE(snd_wm8804_i2c_devices)); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP_MODULE) bcm_register_device_dt(&snd_hifiberry_amp_device); i2c_register_board_info_dt(1, snd_tas5713_i2c_devices, ARRAY_SIZE(snd_tas5713_i2c_devices)); #endif #if defined(CONFIG_SND_BCM2708_SOC_RPI_DAC) || defined(CONFIG_SND_BCM2708_SOC_RPI_DAC_MODULE) bcm_register_device_dt(&snd_rpi_dac_device); bcm_register_device_dt(&snd_pcm1794a_codec_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) || defined(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC_MODULE) bcm_register_device_dt(&snd_rpi_iqaudio_dac_device); i2c_register_board_info_dt(1, snd_pcm512x_i2c_devices, ARRAY_SIZE(snd_pcm512x_i2c_devices)); #endif if (!use_dt) { for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); } } system_rev = boardrev; system_serial_low = serial; #ifdef CONFIG_BCM2708_SPIDEV if (!use_dt) spi_register_board_info(bcm2708_spi_devices, ARRAY_SIZE(bcm2708_spi_devices)); #endif }
void __init bcm2708_init(void) { int i; #if defined(CONFIG_BCM_VC_CMA) vc_cma_early_init(); #endif printk("bcm2708.uart_clock = %d\n", uart_clock); pm_power_off = bcm2708_power_off; if (uart_clock) lookups[0].clk->rate = uart_clock; for (i = 0; i < ARRAY_SIZE(lookups); i++) clkdev_add(&lookups[i]); bcm_register_device(&bcm2708_dmaman_device); bcm_register_device(&bcm2708_vcio_device); #ifdef CONFIG_BCM2708_GPIO bcm_register_device(&bcm2708_gpio_device); #endif #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) platform_device_register(&w1_device); #endif bcm_register_device(&bcm2708_systemtimer_device); #ifdef CONFIG_MMC_BCM2708 bcm_register_device(&bcm2708_mci_device); #endif bcm_register_device(&bcm2708_fb_device); if (!fiq_fix_enable) { bcm2708_usb_device.resource = bcm2708_usb_resources_no_fiq_fix; bcm2708_usb_device.num_resources = ARRAY_SIZE(bcm2708_usb_resources_no_fiq_fix); } bcm_register_device(&bcm2708_usb_device); bcm_register_device(&bcm2708_uart1_device); bcm_register_device(&bcm2708_powerman_device); #ifdef CONFIG_MMC_SDHCI_BCM2708 bcm_register_device(&bcm2708_emmc_device); #endif bcm2708_init_led(); for (i = 0; i < ARRAY_SIZE(bcm2708_alsa_devices); i++) bcm_register_device(&bcm2708_alsa_devices[i]); bcm_register_device(&bcm2708_spi_device); bcm_register_device(&bcm2708_bsc0_device); bcm_register_device(&bcm2708_bsc1_device); bcm_register_device(&bcm2835_hwmon_device); bcm_register_device(&bcm2835_thermal_device); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); } system_rev = boardrev; system_serial_low = serial; #ifdef CONFIG_SPI spi_register_board_info(bcm2708_spi_devices, ARRAY_SIZE(bcm2708_spi_devices)); #endif }
void __init bcm2708_init(void) { int i; #if defined(CONFIG_BCM_VC_CMA) vc_cma_early_init(); #endif printk("bcm2708.uart_clock = %d\n", uart_clock); pm_power_off = bcm2708_power_off; if (uart_clock) lookups[0].clk->rate = uart_clock; for (i = 0; i < ARRAY_SIZE(lookups); i++) clkdev_add(&lookups[i]); bcm_register_device(&bcm2708_dmaman_device); bcm_register_device(&bcm2708_vcio_device); #ifdef CONFIG_BCM2708_GPIO bcm_register_device(&bcm2708_gpio_device); #endif #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) w1_gpio_pdata.pin = w1_gpio_pin; w1_gpio_pdata.ext_pullup_enable_pin = w1_gpio_pullup; platform_device_register(&w1_device); #endif bcm_register_device(&bcm2708_systemtimer_device); bcm_register_device(&bcm2708_fb_device); bcm_register_device(&bcm2708_usb_device); bcm_register_device(&bcm2708_uart1_device); bcm_register_device(&bcm2708_powerman_device); #ifdef CONFIG_MMC_SDHCI_BCM2708 bcm_register_device(&bcm2708_emmc_device); #endif bcm2708_init_led(); for (i = 0; i < ARRAY_SIZE(bcm2708_alsa_devices); i++) bcm_register_device(&bcm2708_alsa_devices[i]); bcm_register_device(&bcm2708_spi_device); bcm_register_device(&bcm2708_bsc0_device); bcm_register_device(&bcm2708_bsc1_device); bcm_register_device(&bcm2835_hwmon_device); bcm_register_device(&bcm2835_thermal_device); #ifdef CONFIG_SND_BCM2708_SOC_I2S_MODULE bcm_register_device(&bcm2708_i2s_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC_MODULE) bcm_register_device(&snd_hifiberry_dac_device); bcm_register_device(&snd_pcm5102a_codec_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) || defined(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI_MODULE) bcm_register_device(&snd_hifiberry_digi_device); i2c_register_board_info(1, snd_wm8804_i2c_devices, ARRAY_SIZE(snd_wm8804_i2c_devices)); #endif #if defined(CONFIG_SND_BCM2708_SOC_RPI_DAC) || defined(CONFIG_SND_BCM2708_SOC_RPI_DAC_MODULE) bcm_register_device(&snd_rpi_dac_device); bcm_register_device(&snd_pcm1794a_codec_device); #endif #if defined(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) || defined(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC_MODULE) bcm_register_device(&snd_rpi_iqaudio_dac_device); i2c_register_board_info(1, snd_pcm512x_i2c_devices, ARRAY_SIZE(snd_pcm512x_i2c_devices)); #endif for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); } system_rev = boardrev; system_serial_low = serial; #ifdef CONFIG_BCM2708_SPIDEV spi_register_board_info(bcm2708_spi_devices, ARRAY_SIZE(bcm2708_spi_devices)); #endif }
void __init bcm2708_init(void) { int i; for (i = 0; i < ARRAY_SIZE(lookups); i++) clkdev_add(&lookups[i]); bcm_register_device(&bcm2708_dmaman_device); bcm_register_device(&bcm2708_vcio_device); #ifdef CONFIG_BCM2708_GPIO bcm_register_device(&bcm2708_gpio_device); #endif bcm_register_device(&bcm2708_systemtimer_device); #ifdef CONFIG_MMC_BCM2708 bcm_register_device(&bcm2708_mci_device); #endif bcm_register_device(&bcm2708_fb_device); bcm_register_device(&bcm2708_usb_device); bcm_register_device(&bcm2708_uart1_device); #ifdef CONFIG_BCM2708_BUTTONS bcm_register_device(&bcm2708_vcbuttons_device); #endif #ifdef CONFIG_BCM2708_TOUCHSCREEN bcm_register_device(&bcm2708_vctouch_device); #endif bcm_register_device(&bcm2708_powerman_device); #ifdef CONFIG_MMC_SDHCI_BCM2708 bcm_register_device(&bcm2708_emmc_device); #endif bcm2708_init_led(); #ifdef CONFIG_BCM2708_VCMEM { extern void vc_mem_connected_init(void); vc_mem_connected_init(); } #endif for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); } }