Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/85954?usp=email )
Change subject: mb/google/fatcat/var/fatcat: Configure _DSC for camera devices ......................................................................
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 --- M src/mainboard/google/fatcat/variants/fatcat/overridetree.cb 1 file changed, 71 insertions(+), 10 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/54/85954/1
diff --git a/src/mainboard/google/fatcat/variants/fatcat/overridetree.cb b/src/mainboard/google/fatcat/variants/fatcat/overridetree.cb index 19fbff8..5414e15 100644 --- a/src/mainboard/google/fatcat/variants/fatcat/overridetree.cb +++ b/src/mainboard/google/fatcat/variants/fatcat/overridetree.cb @@ -302,12 +302,15 @@ 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 @@
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 @@ 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 @@ 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 @@ 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 @@
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 @@ 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 @@ 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 @@ 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