static __init int hsu_dev_platform_data(void) { switch (intel_mid_identify_cpu()) { case INTEL_MID_CPU_CHIP_CLOVERVIEW: platform_hsu_info = &hsu_port_cfgs[hsu_clv][0]; if (INTEL_MID_BOARD(2, PHONE, CLVTP, VB, PRO)) hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_vtb_pro][0]; else if (INTEL_MID_BOARD(2, PHONE, CLVTP, VB, ENG)) hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_vtb_eng][0]; else hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_rhb][0]; break; case INTEL_MID_CPU_CHIP_VALLEYVIEW2: platform_hsu_info = &hsu_port_cfgs[hsu_vlv2][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_vlv2][hsu_pid_def][0]; break; case INTEL_MID_CPU_CHIP_TANGIER: case INTEL_MID_CPU_CHIP_ANNIEDALE: platform_hsu_info = &hsu_port_cfgs[hsu_tng][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_tng][hsu_pid_def][0]; break; case INTEL_MID_CPU_CHIP_LINCROFT: case INTEL_MID_CPU_CHIP_PENWELL: default: platform_hsu_info = &hsu_port_cfgs[hsu_pnw][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_pnw][hsu_pid_def][0]; break; } if (platform_hsu_info == NULL) return -ENODEV; if (hsu_port_gpio_mux == NULL) return -ENODEV; hsu_register_board_info(platform_hsu_info); hsu_platform_clk(intel_mid_identify_cpu()); return 0; }
static __init int hsu_dev_platform_data(void) { switch (boot_cpu_data.x86_model) { /* penwell */ case 0x27: platform_hsu_info = &hsu_port_cfgs[hsu_pnw][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_pnw][hsu_pid_def][0]; break; /* cloverview */ case 0x35: platform_hsu_info = &hsu_port_cfgs[hsu_clv][0]; if (INTEL_MID_BOARD(2, PHONE, CLVTP, VB, PRO)) hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_vtb_pro][0]; else if (INTEL_MID_BOARD(2, PHONE, CLVTP, VB, ENG)) hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_vtb_eng][0]; else hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_clv][hsu_pid_rhb][0]; break; /* tangier */ case 0x3C: case 0x4A: platform_hsu_info = &hsu_port_cfgs[hsu_tng][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_tng][hsu_pid_def][0]; break; /* valleyview*/ case 0x37: platform_hsu_info = &hsu_port_cfgs[hsu_vlv2][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_vlv2][hsu_pid_def][0]; break; /* anniedale */ case 0x5A: /* anniedale same config as tangier */ /* if LnP device, need alternative hsu configuration for GNSS.*/ if (hsu_device_cfg == config_alternative) { pr_info("HSU: alternative config set for anniedale\n"); platform_hsu_info = &hsu_port_cfgs[hsu_ann_lnp][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_ann_lnp][hsu_pid_def][0]; } else { platform_hsu_info = &hsu_port_cfgs[hsu_tng][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_tng][hsu_pid_def][0]; } break; /* cherryview */ case 0x4C: platform_hsu_info = &hsu_port_cfgs[hsu_chv][0]; hsu_port_gpio_mux = &hsu_port_pin_cfgs[hsu_chv][hsu_pid_def][0]; break; default: pr_err("HSU: cpu%x no platform config!\n", boot_cpu_data.x86_model); return -ENODEV; } if (platform_hsu_info == NULL) return -ENODEV; if (hsu_port_gpio_mux == NULL) return -ENODEV; hsu_register_board_info(platform_hsu_info); hsu_platform_clk(intel_mid_identify_cpu(), 0); return 0; }