arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi
Source file repositories/reference/linux-study-clean/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi
File Facts
- System
- Linux kernel
- Corpus path
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi- Extension
.dtsi- Size
- 20621 bytes
- Lines
- 923
- Domain
- Architecture Layer
- Bucket
- arch/arm64
- Inferred role
- Architecture Layer: configuration, schema, or hardware description
- Status
- atlas-only
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
Dependency Surface
dt-bindings/pinctrl/qcom,pmic-gpio.hdt-bindings/regulator/qcom,rpmh-regulator.hsm8350.dtsipm8350.dtsipm8350b.dtsipm8350c.dtsipmk8350.dtsipmr735a.dtsipmr735b.dtsi
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
*/
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8350.dtsi"
#include "pm8350.dtsi"
#include "pm8350b.dtsi"
#include "pm8350c.dtsi"
#include "pmk8350.dtsi"
#include "pmr735a.dtsi"
#include "pmr735b.dtsi"
/ {
/*
* Yes, you are correct, there is NO MORE {msm,board,pmic}-id on SM8350!
* Adding it will cause the bootloader to go crazy and randomly crash
* shortly after closing UEFI boot services.. Perhaps that has something
* to do with the OS running inside a VM now..?
*/
chassis-type = "handset";
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer: framebuffer@e1000000 {
compatible = "simple-framebuffer";
reg = <0 0xe1000000 0 0x2300000>;
/* The display, even though it's 4K, initializes at 1080-ish p */
width = <1096>;
height = <2560>;
stride = <(1096 * 4)>;
format = "a8r8g8b8";
/*
* That's (going to be) a lot of clocks, but it's necessary due
* to unused clk cleanup & no panel driver yet
*/
clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
<&gcc GCC_DISP_SF_AXI_CLK>;
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &g_assist_n>;
key-camera-focus {
label = "Camera Focus";
linux,code = <KEY_CAMERA_FOCUS>;
gpios = <&pm8350b_gpios 8 GPIO_ACTIVE_LOW>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
key-camera-snapshot {
label = "Camera Snapshot";
linux,code = <KEY_CAMERA>;
gpios = <&pm8350b_gpios 5 GPIO_ACTIVE_LOW>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
Annotation
- Immediate include surface: `dt-bindings/pinctrl/qcom,pmic-gpio.h`, `dt-bindings/regulator/qcom,rpmh-regulator.h`, `sm8350.dtsi`, `pm8350.dtsi`, `pm8350b.dtsi`, `pm8350c.dtsi`, `pmk8350.dtsi`, `pmr735a.dtsi`.
- Atlas domain: Architecture Layer / arch/arm64.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.