hal: pinephone-pro-camera: cleanup
this doesn't change any functionality; just shuffling things around and better documenting the bits
This commit is contained in:
@@ -6,12 +6,14 @@
|
||||
// - pmOS has IMX258 debugging info: <https://wiki.pine64.org/wiki/PinePhone_Pro/IMX258_Camera_Debugging>
|
||||
// - <https://elinux.org/images/9/94/ISP-presentation.pdf>
|
||||
//
|
||||
// STATUS (2024-11-28):
|
||||
// STATUS (2024-11-29):
|
||||
// - megapixels-next can preview and capture the imx258 rear camera!
|
||||
// - this *requires* that ov8858 be fully disabled
|
||||
// not only ucam can't be enabled in DT, but even isp0 must be disabled else the pipeline will try to render an (empty) ov8858!
|
||||
// - disabling isp0 breaks pipewire; dmesg log spam: `rt5640 1-001c: ASoC: error at snd_soc_dai_set_sysclk on rt5640-aif1: -22`
|
||||
// - snapshot *does not work*, but that could be due to pipewire faultiness
|
||||
// however, this is due to a bug in nixpkgs' libcamera packaging
|
||||
// pull the fix and isp0 can be disabled w/o breaking pipewire: <https://github.com/NixOS/nixpkgs/pull/353336>
|
||||
// - snapshot works, only if the libcamera + pipewire fix is pulled
|
||||
//
|
||||
//////////
|
||||
// this is taken mostly verbatim from pine64-org / megi.
|
||||
@@ -147,8 +149,6 @@
|
||||
// // assigned-clock-rates = <200000000>, <24000000>;
|
||||
// // assigned-clock-parents = <&cru SCLK_CIF_OUT_SRC>, <&cru PLL_GPLL>;
|
||||
|
||||
assigned-clocks = <&cru SCLK_CIF_OUT>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
// // // assigned-clocks = <&cru SCLK_CIF_OUT &cru SCLK_CIF_OUT_SRC>;
|
||||
// // // assigned-clock-parents = <&cru SCLK_CIF_OUT_SRC &cru PLL_GPLL>;
|
||||
// // // assigned-clock-rates = <19200000 0>;
|
||||
@@ -163,6 +163,12 @@
|
||||
clocks = <&cru SCLK_CIF_OUT>;
|
||||
clock-names = "xvclk";
|
||||
|
||||
assigned-clocks = <&cru SCLK_CIF_OUT>;
|
||||
// nominal frequency seems to be 19200000, but driver complains that PPP can't actually generate a frequency that precise:
|
||||
// `imx258 1-001a: input clock frequency of 19161291 not supported`
|
||||
// assigned-clock-rates = <19200000>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
vif-supply = <&vcc1v8_dvp>;
|
||||
i2c-supply = <&vcca1v8_codec>;
|
||||
/*XXX: also depends on vcca1v8_codec for I2C bus power (currently always on) */
|
||||
@@ -180,7 +186,22 @@
|
||||
wcam_out: endpoint {
|
||||
remote-endpoint = <&mipi_in_wcam>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <636000000>; //< seems to be optional
|
||||
// link frequencies = list of supported lane (?) frequencies.
|
||||
// i believe this is defined in the camera driver:
|
||||
// static const s64 link_freq_menu_items_19_2[] = {
|
||||
// 633600000ULL,
|
||||
// 320000000ULL,
|
||||
// };
|
||||
//
|
||||
// static const s64 link_freq_menu_items_24[] = {
|
||||
// 636000000ULL,
|
||||
// 321000000ULL,
|
||||
// };
|
||||
|
||||
link-frequencies = /bits/ 64 <636000000>;
|
||||
// link-frequencies = /bits/ 64 <320000000 633600000>;
|
||||
// link-frequencies = /bits/ 64 <321000000 636000000>;
|
||||
// link-frequencies = /bits/ 64 <321000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user