Skip to content

Commit fddec90

Browse files
committed
mb/google/poppy/var/soraka: Configure cameras for Windows/Linux ACPI mode
Update device tree and Kconfig to support Windows/Linux ACPI camera mode using the ACPI device type selection feature (commit c5fc7ab): Kconfig: - Enable DRIVERS_INTEL_MIPI_CAMERA only for non-ChromeOS builds - Enable VARIANT_HAS_CAMERA_ACPI only for ChromeOS builds Devicetree: - Remove legacy static display configuration - Add GFX generic driver with LCD0 panel and SKC0 for IPU - Add TPS68470 PMIC device - Add OV 13858 rear camera - Add OV 5670 front camera - Move i2c4 device reference before i2c5 This enables proper camera and IPU enumeration under Windows/Linux using the standard driver stack. TEST=build/boot Windows/Linux on google/soraka, verify cameras and IPU functional under both OSes. Change-Id: I9e62c5a36c4d1e345f20a7a5341de3c59558f761 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Change-Id: I9e62c5a36c4d1e345f20a7a5341de3c59558f761 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
1 parent 43e42f0 commit fddec90

2 files changed

Lines changed: 77 additions & 7 deletions

File tree

src/mainboard/google/poppy/Kconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ config BOARD_GOOGLE_RAMMUS
9999
config BOARD_GOOGLE_SORAKA
100100
select BOARD_GOOGLE_BASEBOARD_POPPY
101101
select DRIVERS_I2C_MAX98927
102+
select DRIVERS_INTEL_MIPI_CAMERA if !CHROMEOS
102103
select I2C_TPM
103104
select INTEL_GMA_HAVE_VBT
104105
select MAINBOARD_HAS_LIBGFXINIT
105106
select NO_FADT_8042
106107
select SYSTEM_TYPE_DETACHABLE
107-
select VARIANT_HAS_CAMERA_ACPI
108+
select VARIANT_HAS_CAMERA_ACPI if CHROMEOS
108109

109110
if BOARD_GOOGLE_BASEBOARD_POPPY
110111

src/mainboard/google/poppy/variants/soraka/devicetree.cb

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
chip soc/intel/skylake
22

3-
# IGD Displays
4-
register "gfx" = "GMA_STATIC_DISPLAYS(0)"
5-
63
register "panel_cfg" = "{
74
.up_delay_ms = 100,
85
.down_delay_ms = 500,
@@ -227,7 +224,19 @@ chip soc/intel/skylake
227224
register "sdcard_cd_gpio" = "GPP_E15"
228225

229226
device domain 0 on
230-
device ref igpu on end
227+
device ref igpu on
228+
chip drivers/gfx/generic
229+
register "device_count" = "2"
230+
register "device[0].name" = ""LCD0""
231+
# Internal panel on the first port of the graphics chip
232+
register "device[0].type" = "panel"
233+
# SKC0 for IPUs
234+
register "device[1].name" = ""SKC0""
235+
register "device[1].non_vga_device" = "true"
236+
register "device[1].addr" = "0xCA00"
237+
device generic 0 on end
238+
end
239+
end
231240
device ref sa_thermal on end
232241
device ref imgu on end
233242
device ref south_xhci on
@@ -272,9 +281,70 @@ chip soc/intel/skylake
272281
device i2c 50 on end
273282
end
274283
end
275-
device ref i2c2 on end
284+
device ref i2c2 on
285+
chip drivers/intel/mipi_camera/pmic
286+
register "acpi_uid" = "0"
287+
register "acpi_name" = ""CLP0""
288+
289+
register "cldb.pmic_type" = "CL_TYPE_TPS68470"
290+
register "cldb.pmic_id" = "PMIC_NODE_1"
291+
register "cldb.sensor_card_sku.card_type" = "SKU_CRD_G2"
292+
293+
register "has_power_resource" = "true"
294+
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C8)" #EN_PP3300_DX_CAM
295+
# register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C10)" #EN_CAM_PMIC_RST_L #TODO: Only reset once on boot
296+
device i2c 4d on end
297+
end
298+
chip drivers/intel/mipi_camera
299+
register "acpi_hid" = ""OVTID858""
300+
register "acpi_uid" = "0"
301+
register "acpi_name" = ""CAM0""
302+
register "pmic_dep" = ""CLP0""
303+
register "chip_name" = ""OV 13858 Camera""
304+
register "sensor_name" = ""7BAD06T2""
305+
306+
register "ssdb.sensor_card_sku.card_type" = "SKU_CRD_G2"
307+
register "ssdb.control_logic_id" = "PMIC_NODE_1"
308+
309+
register "ssdb.lanes_used" = "4"
310+
register "ssdb.link_used" = "0"
311+
register "ssdb.platform" = "PLAT_SKC"
312+
register "ssdb.platform_sub" = "PLAT_SUB_FFD"
313+
314+
register "ssdb.vcm_type" = "VCM_DW9714"
315+
register "vcm_address" = "0x0C"
316+
317+
register "ssdb.rom_type" = "ROM_EEPROM_CAT24C08"
318+
register "rom_address" = "0x50"
319+
320+
register "pld.panel" = "PLD_PANEL_BACK"
321+
register "pld.vertical_position" = "PLD_VERTICAL_POSITION_CENTER"
322+
register "pld.horizontal_position" = "PLD_HORIZONTAL_POSITION_CENTER"
323+
324+
device i2c 10 on end
325+
end
326+
end
276327
device ref heci1 on end
277328
device ref uart2 on end
329+
device ref i2c4 on
330+
chip drivers/intel/mipi_camera
331+
register "acpi_hid" = ""INT3479""
332+
register "acpi_uid" = "0"
333+
register "acpi_name" = ""CAM0""
334+
register "chip_name" = ""OV 5670 Camera""
335+
register "sensor_name" = ""4BF523T2""
336+
337+
register "ssdb.sensor_card_sku.card_type" = "SKU_CRD_G2"
338+
register "ssdb.control_logic_id" = "PMIC_NODE_1"
339+
340+
register "ssdb.lanes_used" = "2"
341+
register "ssdb.link_used" = "1"
342+
register "ssdb.platform" = "PLAT_SKC"
343+
register "ssdb.platform_sub" = "PLAT_SUB_FFD"
344+
345+
device i2c 36 on end
346+
end
347+
end
278348
device ref i2c5 on
279349
chip drivers/i2c/max98927
280350
register "interleave_mode" = "1"
@@ -303,7 +373,6 @@ chip soc/intel/skylake
303373
device i2c 13 on end
304374
end
305375
end
306-
device ref i2c4 on end
307376
device ref pcie_rp1 on
308377
register "PcieRpClkReqSupport[0]" = "true"
309378
register "PcieRpClkReqNumber[0]" = "1"

0 commit comments

Comments
 (0)