mb/google/fatcat/var/fatcat: Configure _DSC for camera devices

Configure _DSC to ACPI_DEVICE_SLEEP_D3_COLD for camera devices to
prevent them from being probed during kernel boot.

This prevents the privacy LED from blinking unnecessarily.

Also includes minor code comment changes for clarity:

- Replace "560000000" with "560 * MHz" for readability.
- Explain `clknum` value `0` as `IMGCLKOUT_0` and `1` as `IMGCLKOUT_1`.
- Introduce FW_CONFIG (UFC/WFC) for probing IPU0.

BUG=b:381044394
TEST=No privacy LED blinking seen while rebooting google/fatcat.

Change-Id: I4712b751015d86d40dfd4d7da8cba956c435eef5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85954
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Subrata Banik 2025-01-13 17:29:30 +05:30
commit c4c237ed78

View file

@ -302,12 +302,15 @@ chip soc/intel/pantherlake
register "acpi_name" = ""IPU0""
register "device_type" = "INTEL_ACPI_CAMERA_CIO2"
register "cio2_num_ports" = "2"
register "cio2_lanes_used" = "{4,2}"
register "cio2_lanes_used" = "{4,2}" # 4 and 2 CSI Camera lanes are used
register "cio2_lane_endpoint[0]" = ""^I2C1.CAM0""
register "cio2_lane_endpoint[1]" = ""^I2C2.CAM1""
register "cio2_prt[0]" = "0"
register "cio2_prt[1]" = "2"
device generic 0 on end
device generic 0 on
probe UFC UFC_MIPI
probe WFC WFC_MIPI
end
end
end
@ -604,12 +607,13 @@ chip soc/intel/pantherlake
register "ssdb.lanes_used" = "4"
register "num_freq_entries" = "1"
register "link_freq[0]" = "560000000"
register "link_freq[0]" = "560 * MHz" # 560 MHz
register "remote_name" = ""IPU0""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D3_COLD"
register "has_power_resource" = "true"
#Controls
register "clk_panel.clks[0].clknum" = "0"
register "clk_panel.clks[0].clknum" = "0" # IMGCLKOUT_0
register "clk_panel.clks[0].freq" = "1" #19.2 Mhz
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
register "gpio_panel.gpio[1].gpio_num" = "GPP_E10" #reset
@ -637,9 +641,23 @@ chip soc/intel/pantherlake
register "chip_name" = ""DW AF VCM""
register "device_type" = "INTEL_ACPI_CAMERA_VCM"
register "pr0" = ""\\_SB.PCI0.I2C1.CAM0.PRIC""
register "vcm_compat" = ""dongwoon,dw9714""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 0C on
probe WFC WFC_MIPI
end
@ -650,7 +668,6 @@ chip soc/intel/pantherlake
register "chip_name" = ""BRCA016GWZ""
register "device_type" = "INTEL_ACPI_CAMERA_NVM"
register "pr0" = ""\\_SB.PCI0.I2C1.CAM0.PRIC""
register "nvm_compat" = ""atmel,24c16""
register "nvm_size" = "0x800"
@ -658,6 +675,21 @@ chip soc/intel/pantherlake
register "nvm_readonly" = "0x01"
register "nvm_width" = "0x08"
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 50 on
probe WFC WFC_MIPI
end
@ -676,12 +708,13 @@ chip soc/intel/pantherlake
register "ssdb.lanes_used" = "2"
register "num_freq_entries" = "1"
register "link_freq[0]" = "560000000"
register "link_freq[0]" = "560 * MHz" # 560 MHz
register "remote_name" = ""IPU0""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D3_COLD"
register "has_power_resource" = "true"
#Controls
register "clk_panel.clks[0].clknum" = "1"
register "clk_panel.clks[0].clknum" = "1" # IMGCLKOUT_1
register "clk_panel.clks[0].freq" = "1" #19.2 Mhz
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
register "gpio_panel.gpio[1].gpio_num" = "GPP_E01" #reset
@ -709,9 +742,23 @@ chip soc/intel/pantherlake
register "chip_name" = ""DW AF VCM""
register "device_type" = "INTEL_ACPI_CAMERA_VCM"
register "pr0" = ""\\_SB.PCI0.I2C2.CAM1.PRIC""
register "vcm_compat" = ""dongwoon,dw9714""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 0C on
probe UFC UFC_MIPI
end
@ -722,7 +769,6 @@ chip soc/intel/pantherlake
register "chip_name" = ""BRCA016GWZ""
register "device_type" = "INTEL_ACPI_CAMERA_NVM"
register "pr0" = ""\\_SB.PCI0.I2C2.CAM1.PRIC""
register "nvm_compat" = ""atmel,24c16""
register "nvm_size" = "0x800"
@ -730,6 +776,21 @@ chip soc/intel/pantherlake
register "nvm_readonly" = "0x01"
register "nvm_width" = "0x08"
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 50 on
probe UFC UFC_MIPI
end