Merge remote-tracking branch 'remotes/quic/msm-4.4' into dev/msm-4.4-8996au
Conflicts: arch/arm64/configs/msm-auto-perf_defconfig Change-Id: Ibc59804762c3e14031c22b03a52d49ff2acc36d4 Signed-off-by: Zhiqiang Tu <ztu@codeaurora.org>
This commit is contained in:
commit
d992f38d6d
1714 changed files with 132543 additions and 24542 deletions
|
@ -6,6 +6,13 @@ ifeq ($(KERNEL_TARGET),)
|
|||
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
|
||||
endif
|
||||
|
||||
TARGET_KERNEL_MAKE_ENV := $(strip $(TARGET_KERNEL_MAKE_ENV))
|
||||
ifeq ($(TARGET_KERNEL_MAKE_ENV),)
|
||||
KERNEL_MAKE_ENV :=
|
||||
else
|
||||
KERNEL_MAKE_ENV := $(TARGET_KERNEL_MAKE_ENV)
|
||||
endif
|
||||
|
||||
TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
|
||||
ifeq ($(TARGET_KERNEL_ARCH),)
|
||||
KERNEL_ARCH := arm
|
||||
|
@ -91,8 +98,8 @@ TARGET_PREBUILT_INT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)-dtb
|
|||
endif
|
||||
|
||||
KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
|
||||
KERNEL_MODULES_INSTALL := system
|
||||
KERNEL_MODULES_OUT := $(TARGET_OUT)/lib/modules
|
||||
KERNEL_MODULES_INSTALL ?= system
|
||||
KERNEL_MODULES_OUT ?= $(PRODUCT_OUT)/$(KERNEL_MODULES_INSTALL)/lib/modules
|
||||
|
||||
TARGET_PREBUILT_KERNEL := $(TARGET_PREBUILT_INT_KERNEL)
|
||||
|
||||
|
@ -124,43 +131,43 @@ $(KERNEL_OUT):
|
|||
mkdir -p $(KERNEL_OUT)
|
||||
|
||||
$(KERNEL_CONFIG): $(KERNEL_OUT)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
|
||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||
|
||||
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL)
|
||||
$(hide) echo "Building kernel..."
|
||||
$(hide) rm -rf $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS) modules
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) INSTALL_MOD_PATH=$(BUILD_ROOT_LOC)../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) modules_install
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_CFLAGS) modules
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) INSTALL_MOD_PATH=$(BUILD_ROOT_LOC)../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) modules_install
|
||||
$(mv-modules)
|
||||
$(clean-module-folder)
|
||||
|
||||
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT)
|
||||
$(hide) if [ ! -z "$(KERNEL_HEADER_DEFCONFIG)" ]; then \
|
||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) headers_install; fi
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_HEADER_DEFCONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_HEADER_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) headers_install; fi
|
||||
$(hide) if [ "$(KERNEL_HEADER_DEFCONFIG)" != "$(KERNEL_DEFCONFIG)" ]; then \
|
||||
echo "Used a different defconfig for header generation"; \
|
||||
rm -f $(BUILD_ROOT_LOC)$(KERNEL_CONFIG); \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi
|
||||
$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
|
||||
echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
|
||||
echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi
|
||||
|
||||
kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) tags
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) tags
|
||||
|
||||
kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
|
||||
env KCONFIG_NOTIMESTAMP=true \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) menuconfig
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) menuconfig
|
||||
env KCONFIG_NOTIMESTAMP=true \
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) savedefconfig
|
||||
$(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) $(KERNEL_MAKE_ENV) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) savedefconfig
|
||||
cp $(KERNEL_OUT)/defconfig $(TARGET_KERNEL_SOURCE)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)
|
||||
|
||||
endif
|
||||
|
|
|
@ -11,24 +11,56 @@ in AArch64 Linux.
|
|||
The kernel configures the translation tables so that translations made
|
||||
via TTBR0 (i.e. userspace mappings) have the top byte (bits 63:56) of
|
||||
the virtual address ignored by the translation hardware. This frees up
|
||||
this byte for application use, with the following caveats:
|
||||
this byte for application use.
|
||||
|
||||
(1) The kernel requires that all user addresses passed to EL1
|
||||
are tagged with tag 0x00. This means that any syscall
|
||||
parameters containing user virtual addresses *must* have
|
||||
their top byte cleared before trapping to the kernel.
|
||||
|
||||
(2) Non-zero tags are not preserved when delivering signals.
|
||||
This means that signal handlers in applications making use
|
||||
of tags cannot rely on the tag information for user virtual
|
||||
addresses being maintained for fields inside siginfo_t.
|
||||
One exception to this rule is for signals raised in response
|
||||
to watchpoint debug exceptions, where the tag information
|
||||
will be preserved.
|
||||
Passing tagged addresses to the kernel
|
||||
--------------------------------------
|
||||
|
||||
(3) Special care should be taken when using tagged pointers,
|
||||
since it is likely that C compilers will not hazard two
|
||||
virtual addresses differing only in the upper byte.
|
||||
All interpretation of userspace memory addresses by the kernel assumes
|
||||
an address tag of 0x00.
|
||||
|
||||
This includes, but is not limited to, addresses found in:
|
||||
|
||||
- pointer arguments to system calls, including pointers in structures
|
||||
passed to system calls,
|
||||
|
||||
- the stack pointer (sp), e.g. when interpreting it to deliver a
|
||||
signal,
|
||||
|
||||
- the frame pointer (x29) and frame records, e.g. when interpreting
|
||||
them to generate a backtrace or call graph.
|
||||
|
||||
Using non-zero address tags in any of these locations may result in an
|
||||
error code being returned, a (fatal) signal being raised, or other modes
|
||||
of failure.
|
||||
|
||||
For these reasons, passing non-zero address tags to the kernel via
|
||||
system calls is forbidden, and using a non-zero address tag for sp is
|
||||
strongly discouraged.
|
||||
|
||||
Programs maintaining a frame pointer and frame records that use non-zero
|
||||
address tags may suffer impaired or inaccurate debug and profiling
|
||||
visibility.
|
||||
|
||||
|
||||
Preserving tags
|
||||
---------------
|
||||
|
||||
Non-zero tags are not preserved when delivering signals. This means that
|
||||
signal handlers in applications making use of tags cannot rely on the
|
||||
tag information for user virtual addresses being maintained for fields
|
||||
inside siginfo_t. One exception to this rule is for signals raised in
|
||||
response to watchpoint debug exceptions, where the tag information will
|
||||
be preserved.
|
||||
|
||||
The architecture prevents the use of a tagged PC, so the upper byte will
|
||||
be set to a sign-extension of bit 55 on exception return.
|
||||
|
||||
|
||||
Other considerations
|
||||
--------------------
|
||||
|
||||
Special care should be taken when using tagged pointers, since it is
|
||||
likely that C compilers will not hazard two virtual addresses differing
|
||||
only in the upper byte.
|
||||
|
|
|
@ -190,6 +190,7 @@ nodes to be present and contain the properties described below.
|
|||
"allwinner,sun6i-a31"
|
||||
"allwinner,sun8i-a23"
|
||||
"arm,psci"
|
||||
"psci"
|
||||
"brcm,brahma-b15"
|
||||
"marvell,armada-375-smp"
|
||||
"marvell,armada-380-smp"
|
||||
|
|
54
Documentation/devicetree/bindings/arm/msm/adv7481.txt
Normal file
54
Documentation/devicetree/bindings/arm/msm/adv7481.txt
Normal file
|
@ -0,0 +1,54 @@
|
|||
ADV7481 chip driver (VIDEO_ADV7481)
|
||||
|
||||
VIDEO_ADV7481 is a kernel platform driver that is used for video decoder
|
||||
and dual mode HDMI/MHL receiver.
|
||||
|
||||
The devicetree representation of the VIDEO_ADV7481 block should be:
|
||||
|
||||
Required properties
|
||||
|
||||
- compatible: "qcom,adv7481"
|
||||
- reg: The i2c slave address of adv7481 device.
|
||||
- qcom,cci-master: The i2c master id to be used for adv7481 driver.
|
||||
- gpios: The GPIOs required to be configured for the driver. It should
|
||||
be in the order I2C data line, i2c clock line, reset line,
|
||||
interrupt 1, interrupt 2 and interrupt 3.
|
||||
- cam_vdig-supply: Should contain regulator to be used for the digital
|
||||
vdd.
|
||||
- cam_vio-supply: Should contain regulator to be used for the IO vdd.
|
||||
- cam_vana-supply: Should contain regulator from which analog voltage
|
||||
is supplied.
|
||||
- qcom,cam-vreg-name: Should specify array of regulator names required
|
||||
for the device.
|
||||
- qcom,cam-vreg-min-voltage: Should specify array of minimum voltage
|
||||
level in uV for the regulators specified in the property
|
||||
"qcom,cam-vreg-name".
|
||||
- qcom,cam-vreg-max-voltage: Should specify array of maximum voltage
|
||||
level in uV for the regulators specified in the property
|
||||
"qcom,cam-vreg-name".
|
||||
- qcom,cam-vreg-op-mode: Should specify array of current level in uA
|
||||
for the regulators specified in the property "qcom,cam-vreg-name".
|
||||
|
||||
Example:
|
||||
|
||||
qcom,adv7481@70 {
|
||||
compatible = "qcom,adv7481";
|
||||
reg = <0x70 0xff>;
|
||||
cam_vdig-supply = <&vph_pwr_vreg>;
|
||||
/* Cameras powered by PMIC: */
|
||||
cam_vio-supply = <&pm8994_lvs1>;
|
||||
cam_vana-supply = <&pm8994_l17>;
|
||||
/* Self-powered cameras: */
|
||||
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
|
||||
qcom,cam-vreg-min-voltage = <1300000 0 2500000>;
|
||||
qcom,cam-vreg-max-voltage = <1300000 0 2500000>;
|
||||
qcom,cam-vreg-op-mode = <105000 0 80000>;
|
||||
qcom,cci-master = <0>;
|
||||
qcom,slave-addr = <0x70>;
|
||||
gpios = <&tlmm 17 0>, /* I2C SDA */
|
||||
<&tlmm 18 0>, /* I2C SCL */
|
||||
<&pm8994_gpios 4 0>, /* RST */
|
||||
<&pm8994_gpios 5 0>, /* INT1 */
|
||||
<&pm8994_gpios 6 0>, /* INT2 */
|
||||
<&pm8994_gpios 7 0>; /* INT3 */
|
||||
};
|
54
Documentation/devicetree/bindings/arm/msm/android.txt
Normal file
54
Documentation/devicetree/bindings/arm/msm/android.txt
Normal file
|
@ -0,0 +1,54 @@
|
|||
Android firmware
|
||||
|
||||
Node to specify early mount of vendor partition.
|
||||
|
||||
Required properties
|
||||
|
||||
-compatible: "android,firmware"
|
||||
|
||||
Child nodes:
|
||||
------------
|
||||
|
||||
fstab:
|
||||
------------------------------
|
||||
|
||||
fstab entry to specify mount attributes of vendor partition.
|
||||
|
||||
Required properties:
|
||||
|
||||
-compatible: "android,fstab"
|
||||
|
||||
Child nodes:
|
||||
------------
|
||||
|
||||
vendor:
|
||||
-----------------
|
||||
|
||||
vendor partition specification.
|
||||
|
||||
Required properties:
|
||||
|
||||
-compatible: "android, vendor"
|
||||
-dev: block device corresponding to vendor partition
|
||||
-type: file system type of vendor partition
|
||||
-mnt_flags: mount flags
|
||||
-fsmgr_flags: fsmgr flags
|
||||
|
||||
Example:
|
||||
|
||||
firmware: firmware {
|
||||
android {
|
||||
compatible = "android,firmware";
|
||||
fstab {
|
||||
compatible = "android,fstab";
|
||||
vendor {
|
||||
compatible = "android,vendor";
|
||||
dev = "/dev/block/platform/soc/1da4000.ufshc/by-name/vendor";
|
||||
type = "ext4";
|
||||
mnt_flags = "ro,barrier=1,discard";
|
||||
fsmgr_flags = "wait,slotselect";
|
||||
status = "ok";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -6,8 +6,8 @@ to be reset.
|
|||
|
||||
Required Properties:
|
||||
- compatible: The bus devices need to be compatible with
|
||||
"qcom,mdm2-modem", "qcom,ext-mdm9x25", "qcom,ext-mdm9x35", "qcom, ext-mdm9x45",
|
||||
"qcom,ext-mdm9x55".
|
||||
"qcom,mdm2-modem", "qcom,ext-mdm9x25", "qcom,ext-mdm9x35", "qcom,ext-mdm9x45",
|
||||
"qcom,ext-mdm9x55", "qcom,ext-apq8096".
|
||||
|
||||
Required named gpio properties:
|
||||
- qcom,mdm2ap-errfatal-gpio: gpio for the external modem to indicate to the apps processor
|
||||
|
@ -110,6 +110,10 @@ Optional driver parameters:
|
|||
on behalf of the subsystem driver.
|
||||
- qcom,mdm-link-info: a string indicating additional info about the physical link.
|
||||
For example: "devID_domain.bus.slot" in case of PCIe.
|
||||
- qcom,mdm-auto-boot: Boolean. To indicate this instance of esoc boots independently.
|
||||
- qcom,mdm-statusline-not-a-powersource: Boolean. If set, status line to esoc device is not a
|
||||
power source.
|
||||
- qcom,mdm-userspace-handle-shutdown: Boolean. If set, userspace handles shutdown requests.
|
||||
|
||||
Example:
|
||||
mdm0: qcom,mdm0 {
|
||||
|
|
|
@ -48,7 +48,7 @@ SoCs:
|
|||
compatible = "qcom,apqtitanium"
|
||||
|
||||
- APQ8998
|
||||
compatible = "qcom,apq8998"
|
||||
compatible = "qcom,apq8098"
|
||||
|
||||
- MDM9630
|
||||
compatible = "qcom,mdm9630"
|
||||
|
@ -196,9 +196,9 @@ compatible = "qcom,apq8037-cdp"
|
|||
compatible = "qcom,apq8037-mtp"
|
||||
compatible = "qcom,apqtitanium-cdp"
|
||||
compatible = "qcom,apqtitanium-mtp"
|
||||
compatible = "qcom,apq8998-cdp"
|
||||
compatible = "qcom,apq8998-mtp"
|
||||
compatible = "qcom,apq8998-qrd"
|
||||
compatible = "qcom,apq8098-cdp"
|
||||
compatible = "qcom,apq8098-mtp"
|
||||
compatible = "qcom,apq8098-qrd"
|
||||
compatible = "qcom,mdm9630-cdp"
|
||||
compatible = "qcom,mdm9630-mtp"
|
||||
compatible = "qcom,mdm9630-sim"
|
||||
|
@ -281,6 +281,7 @@ compatible = "qcom,sdm660-rumi"
|
|||
compatible = "qcom,sdm660-cdp"
|
||||
compatible = "qcom,sdm660-mtp"
|
||||
compatible = "qcom,sdm660-qrd"
|
||||
compatible = "qcom,sda660-qrd"
|
||||
compatible = "qcom,sda658-mtp"
|
||||
compatible = "qcom,sda658-cdp"
|
||||
compatible = "qcom,sda660-mtp"
|
||||
|
@ -291,6 +292,7 @@ compatible = "qcom,sdm630-cdp"
|
|||
compatible = "qcom,sda630-mtp"
|
||||
compatible = "qcom,sda630-cdp"
|
||||
compatible = "qcom,sdm630-qrd"
|
||||
compatible = "qcom,sda630-qrd"
|
||||
compatible = "qcom,msm8952-rumi"
|
||||
compatible = "qcom,msm8952-sim"
|
||||
compatible = "qcom,msm8952-qrd"
|
||||
|
|
|
@ -17,6 +17,8 @@ Optional properties:
|
|||
by pil. Absence of this property indicates that
|
||||
subsystem loading through pil voting is disabled for
|
||||
that subsystem.
|
||||
-qcom,dynamic-wakeup-source: Boolean property to indicate that G-Link
|
||||
transport supports dynamic wakeup source
|
||||
|
||||
Example:
|
||||
qcom,ipc_router_modem_xprt {
|
||||
|
|
|
@ -32,6 +32,8 @@ Optional properties:
|
|||
- clocks : List of phandle and clock specifier pairs
|
||||
- clock-names : List of clock input name strings sorted in the same
|
||||
order as the clocks property.
|
||||
- qcom,keep-radio-on-during-sleep: Boolean flag to indicate if to suspend to d3hot
|
||||
instead of turning off the device
|
||||
|
||||
Example:
|
||||
wil6210: qcom,wil6210 {
|
||||
|
@ -56,5 +58,6 @@ Example:
|
|||
clocks = <&clock_gcc clk_rf_clk3>,
|
||||
<&clock_gcc clk_rf_clk3_pin>;
|
||||
clock-names = "rf_clk3_clk", "rf_clk3_pin_clk";
|
||||
qcom,keep-radio-on-during-sleep;
|
||||
};
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ Required properties:
|
|||
"allwinner,sun4i-a10-cpu-clk" - for the CPU multiplexer clock
|
||||
"allwinner,sun4i-a10-axi-clk" - for the AXI clock
|
||||
"allwinner,sun8i-a23-axi-clk" - for the AXI clock on A23
|
||||
"allwinner,sun4i-a10-gates-clk" - for generic gates on all compatible SoCs
|
||||
"allwinner,sun4i-a10-axi-gates-clk" - for the AXI gates
|
||||
"allwinner,sun4i-a10-ahb-clk" - for the AHB clock
|
||||
"allwinner,sun5i-a13-ahb-clk" - for the AHB clock on A13
|
||||
|
@ -43,6 +44,7 @@ Required properties:
|
|||
"allwinner,sun6i-a31-apb0-gates-clk" - for the APB0 gates on A31
|
||||
"allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20
|
||||
"allwinner,sun8i-a23-apb0-gates-clk" - for the APB0 gates on A23
|
||||
"allwinner,sun8i-h3-apb0-gates-clk" - for the APB0 gates on H3
|
||||
"allwinner,sun9i-a80-apb0-gates-clk" - for the APB0 gates on A80
|
||||
"allwinner,sun4i-a10-apb1-clk" - for the APB1 clock
|
||||
"allwinner,sun9i-a80-apb1-clk" - for the APB1 bus clock on A80
|
||||
|
|
75
Documentation/devicetree/bindings/display/msm/cec.txt
Normal file
75
Documentation/devicetree/bindings/display/msm/cec.txt
Normal file
|
@ -0,0 +1,75 @@
|
|||
Qualcomm Technologies, Inc. CEC device
|
||||
|
||||
CEC is a protocol that provides high-level control functions between all of the
|
||||
various audiovisual products in a user environment.
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "qcom,hdmi-cec".
|
||||
- qcom,hdmi-dev: Phandle for the hdmi device node.
|
||||
- interrupt-parent: Must be the hdmi interrupt controller.
|
||||
- interrupts: Interrupt associated with cec.
|
||||
- reg: Physical base address and length of the controller's registers.
|
||||
- reg-names: "hdmi_cec".
|
||||
- clocks: List of Phandles for clock device nodes needed by the device.
|
||||
- clock-names: List of clock names needed by the device.
|
||||
- pinctrl-names: Should contain only two values: "cec_active" and "cec_sleep" which stands for the
|
||||
active and sleep state of pinctrl used in this CEC driver.
|
||||
- pinctrl-0: The active pinctrl state which is a list of phandles pointing to a pin configuration node.
|
||||
- pinctrl-1: The sleep pinctrl state which is a list of phandles pointing to a pin configuration node.
|
||||
- cec-gdsc-supply: Phandle for cec gdsc supply regulator device node.
|
||||
- qcom,platform-supply-entries: A sub node that lists the elements of the supply. There can be more
|
||||
than one instance of this binding, in which case the entry would be
|
||||
appended with the supply entry index. e.g. qcom,platform-supply-entry@0.
|
||||
-- reg: offset and length of the register set for the device.
|
||||
-- qcom,supply-name: name of the supply (vdd/vdda/vddio).
|
||||
-- qcom,supply-min-voltage: minimum voltage level (uV).
|
||||
-- qcom,supply-max-voltage: maximum voltage level (uV).
|
||||
-- qcom,supply-enable-load: load drawn (uA) from enabled supply.
|
||||
-- qcom,supply-disable-load: load drawn (uA) from disabled supply.
|
||||
|
||||
|
||||
Optional properties:
|
||||
- qcom,platform-supply-entries: A sub node that lists the elements of the supply. There can be more
|
||||
than one instance of this binding, in which case the entry would be
|
||||
appended with the supply entry index. e.g. qcom,platform-supply-entry@0.
|
||||
-- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on.
|
||||
-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on.
|
||||
-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off.
|
||||
-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off.
|
||||
|
||||
Example:
|
||||
|
||||
sde_hdmi_cec: qcom,hdmi-cec@c9a0000 {
|
||||
compatible = "qcom,hdmi-cec";
|
||||
label = "sde_hdmi_cec";
|
||||
qcom,hdmi-dev = <&sde_hdmi>;
|
||||
interrupt-parent = <&sde_hdmi_tx>;
|
||||
interrupts = <1 0>;
|
||||
|
||||
reg = <0xc9a0000 0x50c>;
|
||||
reg-names = "hdmi_cec";
|
||||
|
||||
clocks = <&clock_mmss clk_mmss_mnoc_ahb_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_ahb_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_hdmi_clk>;
|
||||
clock-names = "cec_mnoc_clk", "cec_iface_clk", "cec_core_clk";
|
||||
|
||||
pinctrl-names = "cec_active", "cec_sleep";
|
||||
pinctrl-0 = <&mdss_hdmi_cec_active>;
|
||||
pinctrl-1 = <&mdss_hdmi_cec_suspend>;
|
||||
|
||||
cec-gdsc-supply = <&gdsc_mdss>;
|
||||
qcom,platform-supply-entries {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,platform-supply-entry@0 {
|
||||
reg = <0>;
|
||||
qcom,supply-name = "cec-gdsc";
|
||||
qcom,supply-min-voltage = <0>;
|
||||
qcom,supply-max-voltage = <0>;
|
||||
qcom,supply-enable-load = <0>;
|
||||
qcom,supply-disable-load = <0>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -264,6 +264,22 @@ Bus Scaling Data:
|
|||
* Current values of src & dst are defined at
|
||||
include/linux/msm-bus-board.h
|
||||
|
||||
SMMU Subnodes:
|
||||
- smmu_sde_****: Child nodes representing sde smmu virtual
|
||||
devices
|
||||
|
||||
Subnode properties:
|
||||
- compatible: Compatible names used for smmu devices.
|
||||
names should be:
|
||||
"qcom,smmu_sde_unsec": smmu context bank device
|
||||
for unsecure sde real time domain.
|
||||
"qcom,smmu_sde_sec": smmu context bank device
|
||||
for secure sde real time domain.
|
||||
"qcom,smmu_sde_nrt_unsec": smmu context bank device
|
||||
for unsecure sde non-real time domain.
|
||||
"qcom,smmu_sde_nrt_sec": smmu context bank device
|
||||
for secure sde non-real time domain.
|
||||
|
||||
|
||||
Please refer to ../../interrupt-controller/interrupts.txt for a general
|
||||
description of interrupt bindings.
|
||||
|
@ -469,4 +485,14 @@ Example:
|
|||
<1 590 0 160000>,
|
||||
<1 590 0 320000>;
|
||||
};
|
||||
|
||||
smmu_kms_unsec: qcom,smmu_kms_unsec_cb {
|
||||
compatible = "qcom,smmu_sde_unsec";
|
||||
iommus = <&mmss_smmu 0>;
|
||||
};
|
||||
|
||||
smmu_kms_sec: qcom,smmu_kms_sec_cb {
|
||||
compatible = "qcom,smmu_sde_sec";
|
||||
iommus = <&mmss_smmu 1>;
|
||||
};
|
||||
};
|
||||
|
|
42
Documentation/devicetree/bindings/drm/msm/mdp.txt
Normal file
42
Documentation/devicetree/bindings/drm/msm/mdp.txt
Normal file
|
@ -0,0 +1,42 @@
|
|||
Qualcomm Technologies,Inc. Adreno/Snapdragon display controller
|
||||
|
||||
Required properties:
|
||||
|
||||
Optional properties:
|
||||
- qcom,sde-plane-id-map: plane id mapping for virtual plane.
|
||||
- qcom,sde-plane-id: each virtual plane mapping node.
|
||||
- reg: reg property.
|
||||
- qcom,display-type: display type this plane is mapped to. It could be
|
||||
"primary", "secondary" and "tertiary".
|
||||
- qcom,plane-name: plane name array for this virtual plane. It could be
|
||||
"rgb0", "rgb1", "rgb2", "rgb3", "vig0", "vig1", "vig2", "vig3", "dma0", "dma1",
|
||||
"dma2", "dma3", "cursor0", "cursor1".
|
||||
- qcom,plane-type: virtual plane type. It could be "primary", "overlay",
|
||||
"cursor".
|
||||
|
||||
Example:
|
||||
|
||||
&mdss_mdp {
|
||||
qcom,sde-plane-id-map {
|
||||
qcom,sde-plane-id@0 {
|
||||
reg = <0x0>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "rgb0", "rgb1";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@1 {
|
||||
reg = <0x1>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "vig0", "vig1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@2 {
|
||||
reg = <0x2>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "cursor0", "cursor1";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -23,6 +23,8 @@ Optional properties:
|
|||
- qcom,max-voltage-level Maximum voltage level to be supplied to bridge chip
|
||||
- qcom,enable-load Load current to bridge chip when enabled
|
||||
- qcom,disable-load Load current to bridge chip when disabled
|
||||
- qcom,post-on-sleep Sleep time (ms) to indicate the sleep
|
||||
time after the vreg is enabled
|
||||
|
||||
Example:
|
||||
&soc {
|
||||
|
@ -46,6 +48,7 @@ Example:
|
|||
qcom,max-voltage-level = <0>;
|
||||
qcom,enable-load = <0>;
|
||||
qcom,disable-load = <0>;
|
||||
qcom,post-on-sleep = <10>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -27,7 +27,46 @@ Required properties
|
|||
- qcom,aux-en-gpio: Specifies the aux-channel enable gpio.
|
||||
- qcom,aux-sel-gpio: Specifies the aux-channel select gpio.
|
||||
- qcom,usbplug-cc-gpio: Specifies the usbplug orientation gpio.
|
||||
- qcom,aux-cfg-settings: An array that specifies the DP AUX configuration settings.
|
||||
- qcom,aux-cfg0-settings: Specifies the DP AUX configuration 0 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg1-settings: Specifies the DP AUX configuration 1 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg2-settings: Specifies the DP AUX configuration 2 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg3-settings: Specifies the DP AUX configuration 3 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg4-settings: Specifies the DP AUX configuration 4 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg5-settings: Specifies the DP AUX configuration 5 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg6-settings: Specifies the DP AUX configuration 6 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg7-settings: Specifies the DP AUX configuration 7 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg8-settings: Specifies the DP AUX configuration 8 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
- qcom,aux-cfg9-settings: Specifies the DP AUX configuration 9 settings. The first
|
||||
entry in this array corresponds to the register offset
|
||||
within DP AUX, while the remaining entries indicate the
|
||||
programmable values.
|
||||
|
||||
Optional properties:
|
||||
- qcom,<type>-supply-entries: A node that lists the elements of the supply used by the
|
||||
|
@ -87,7 +126,16 @@ Example:
|
|||
"core_aux_clk", "core_cfg_ahb_clk", "ctrl_link_clk",
|
||||
"ctrl_link_iface_clk", "ctrl_crypto_clk", "ctrl_pixel_clk";
|
||||
|
||||
qcom,aux-cfg-settings = [00 13 00 10 0a 26 0a 03 8b 03];
|
||||
qcom,aux-cfg0-settings = [1c 00];
|
||||
qcom,aux-cfg1-settings = [20 13 23 1d];
|
||||
qcom,aux-cfg2-settings = [24 00];
|
||||
qcom,aux-cfg3-settings = [28 00];
|
||||
qcom,aux-cfg4-settings = [2c 0a];
|
||||
qcom,aux-cfg5-settings = [30 26];
|
||||
qcom,aux-cfg6-settings = [34 0a];
|
||||
qcom,aux-cfg7-settings = [38 03];
|
||||
qcom,aux-cfg8-settings = [3c bb];
|
||||
qcom,aux-cfg9-settings = [40 03];
|
||||
qcom,logical2physical-lane-map = [02 03 01 00];
|
||||
qcom,phy-register-offset = <0x4>;
|
||||
qcom,max-pclk-frequency-khz = <593470>;
|
||||
|
|
|
@ -582,6 +582,15 @@ Additional properties added to the second level nodes that represent timings pro
|
|||
commands.
|
||||
"dsi_lp_mode" = DSI low power mode (default)
|
||||
"dsi_hs_mode" = DSI high speed mode
|
||||
- qcom,sublinks-count: An integer value indicates the number of sublinks in the panel.
|
||||
Default value is 1. This property is used only if qcom,split-link-enabled
|
||||
is defined.
|
||||
- qcom,lanes-per-sublink: An integer value indicates the number of data lanes per sublink in the panel.
|
||||
Default value is 1. This property is used only if qcom,split-link-enabled
|
||||
is defined.
|
||||
- qcom,split-link-enabled: A boolean value to enable/disable the split link feature. If qcom,sublinks-count
|
||||
or qcom,lanes-per-sublink are not defined, default values are used.
|
||||
|
||||
|
||||
Note, if a given optional qcom,* binding is not present, then the driver will configure
|
||||
the default values specified.
|
||||
|
@ -809,6 +818,10 @@ Example:
|
|||
qcom,mdss-dsc-version = <0x11>;
|
||||
qcom,mdss-dsc-scr-version = <0x1>;
|
||||
|
||||
qcom,split-link-enabled;
|
||||
qcom,sublinks-count = <2>;
|
||||
qcom,lanes-per-sublink = <2>;
|
||||
|
||||
dsi_sim_vid_config0: config0 {
|
||||
qcom,lm-split = <360 360>;
|
||||
qcom,mdss-dsc-encoders = <2>;
|
||||
|
|
|
@ -50,6 +50,8 @@ Optional properties:
|
|||
-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on
|
||||
-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off
|
||||
-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off
|
||||
-- qcom,supply-lp-mode-disable-allowed: supply can be turned off in
|
||||
low power state.
|
||||
- pll-src-config Specified the source PLL for the DSI
|
||||
link clocks:
|
||||
"PLL0" - Clocks sourced out of DSI PLL0
|
||||
|
@ -103,7 +105,9 @@ Optional properties:
|
|||
- qcom,platform-reset-gpio: Specifies the panel reset gpio.
|
||||
- qcom,platform-te-gpio: Specifies the gpio used for TE.
|
||||
- qcom,platform-bklight-en-gpio: Specifies the gpio used to enable display back-light
|
||||
- qcom,platform-bklight-en-gpio-invert: Invert the gpio used to enable display back-light
|
||||
- qcom,platform-bklight-en-gpio-invert: Boolean to invert the gpio used to enable display back-light
|
||||
- qcom,platform-avdd-en-gpio: Specifies the gpio used to enable AMOLED AVDD
|
||||
- qcom,platform-avdd-en-gpio-invert: Boolean to invert the gpio used to enable AMOLED AVDD
|
||||
- qcom,panel-mode-gpio: Specifies the GPIO to select video/command/single-port/dual-port
|
||||
mode of panel through gpio when it supports these modes.
|
||||
- pinctrl-names: List of names to assign mdss pin states defined in pinctrl device node
|
||||
|
|
|
@ -15,9 +15,10 @@ Required properties:
|
|||
"qcom,mdss_hdmi_pll_8996_v2", "qcom,mdss_dsi_pll_8996_v2",
|
||||
"qcom,mdss_hdmi_pll_8996_v3", "qcom,mdss_hdmi_pll_8996_v3_1p8",
|
||||
"qcom,mdss_dsi_pll_8998", "qcom,mdss_dp_pll_8998",
|
||||
"qcom,mdss_hdmi_pll_8998", "qcom,mdss_dsi_pll_sdm660",
|
||||
"qcom,mdss_dp_pll_sdm660", "qcom,mdss_dsi_pll_sdm630",
|
||||
"qcom,mdss_dp_pll_sdm630"
|
||||
"qcom,mdss_hdmi_pll_8998", "qcom,mdss_hdmi_pll_8998_1p8",
|
||||
"qcom,mdss_dsi_pll_sdm660", "qcom,mdss_dp_pll_sdm660",
|
||||
"qcom,mdss_dsi_pll_sdm630", "qcom,mdss_dp_pll_sdm630"
|
||||
|
||||
- cell-index: Specifies the controller used
|
||||
- reg: offset and length of the register set for the device.
|
||||
- reg-names : names to refer to register sets related to this device
|
||||
|
|
|
@ -82,6 +82,8 @@ Optional properties:
|
|||
- qcom,shutdown-poweroff-type Same description as qcom,warm-reset-poweroff-
|
||||
type but this applies for the system shutdown
|
||||
case.
|
||||
- qcom,kpdpwr-sw-debounce Boolean property to enable the debounce logic
|
||||
on the KPDPWR_N rising edge.
|
||||
|
||||
|
||||
All the below properties are in the sub-node section (properties of the child
|
||||
|
|
|
@ -121,6 +121,12 @@ conditions.
|
|||
supported as we are directly comparing client SID with ID bits
|
||||
of SMR registers.
|
||||
|
||||
- qcom,deferred-regulator-disable-delay : The time delay for deferred regulator
|
||||
disable in ms. In case of unmap call, regulator is
|
||||
enabled/disabled. This may introduce additional delay. For
|
||||
clients who do not detach, it's not possible to keep regulator
|
||||
vote while smmu is attached. Type is <u32>.
|
||||
|
||||
- clocks : List of clocks to be used during SMMU register access. See
|
||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
for information about the format. For each clock specified
|
||||
|
|
|
@ -169,8 +169,15 @@ Optional properties:
|
|||
sleep configuration defined for each pin or pin group.
|
||||
- qcom,hw-strobe-gpio : phandle to specify GPIO for hardware strobing. This is used when there is no
|
||||
pinctrl support or PMIC GPIOs are used.
|
||||
- qcom,hw-strobe-sel : Boolean property to enable hardware strobe. If not defined, software strobe
|
||||
will be used.
|
||||
- qcom,strobe-sel : Property to select strobe type. If not defined,
|
||||
software strobe will be used. Allowed options are:
|
||||
0 - SW strobe
|
||||
1 - HW strobe
|
||||
2 - LPG strobe
|
||||
LPG strobe is supported only for LED3.
|
||||
If LPG strobe is specified, then strobe control is
|
||||
configured for active high and level triggered. Also
|
||||
qcom,hw-strobe-option should be set to 1 or 2.
|
||||
- qcom,hw-strobe-edge-trigger : Boolean property to select trigger type. If defined, hw-strobe is set to
|
||||
be edge triggered. Otherwise, it is level triggered.
|
||||
- qcom,hw-strobe-active-low : Boolean property to select strobe signal polarity. If defined, hw-strobe
|
||||
|
|
|
@ -14,8 +14,8 @@ Required properties:
|
|||
[Second level nodes]
|
||||
Required properties:
|
||||
- compatible : one of:
|
||||
- "qcom,msm-cam-smmu-cb"
|
||||
- "qcom,qsmmu-cam-cb"
|
||||
- "qcom,msm-cam-smmu-cb" : For arm smmu iommu type.
|
||||
- "qcom,qsmmu-cam-cb" : For qsmmu iommu type.
|
||||
- iommus : Handle parsed by smmu driver. Number of entries will vary
|
||||
across targets.
|
||||
- label - string describing iommu domain usage.
|
||||
|
@ -23,6 +23,7 @@ Required properties:
|
|||
Optional properties:
|
||||
- qcom,scratch-buf-support : Enables iommu scratch buffer support in
|
||||
that context bank.
|
||||
- qcom,secure-context : boolean type, to set the context domain type as secure.
|
||||
|
||||
Example:
|
||||
qcom,cam_smmu@0 {
|
||||
|
|
|
@ -17,7 +17,7 @@ Main node properties:
|
|||
Definition: "qcom,mhi"
|
||||
|
||||
- qcom,pci-dev_id
|
||||
Usage: required
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Device id reported by modem
|
||||
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
This driver implements Ethernet driver for Neutrino ethernet controller
|
||||
Required properties:
|
||||
- compatible: Should be "qcom,ntn_avb"
|
||||
- ntn-rst-delay-msec: delay (msec) required after PCIe reset for stabilization
|
||||
- ntn-rc-num: PCIe root complex number on which Neutrino is connected
|
||||
|
||||
Optional properties:
|
||||
- ntn-bus-num: PCIe bus number on which Neutrino is connected
|
||||
- ntn-rst-gpio: Neutrino reset GPIO
|
||||
- vdd-ntn-hsic-supply: neutrino HSIC power supply
|
||||
- vdd-ntn-pci-supply: PCIe core power supply
|
||||
|
@ -25,4 +30,5 @@ Example:
|
|||
pinctrl-0 = <&ntn_default>;
|
||||
qcom,ntn-rst-delay-msec = <100>;
|
||||
qcom,ntn-rc-num = <1>;
|
||||
qcom,ntn-bus-num = <1>;
|
||||
};
|
||||
|
|
|
@ -79,8 +79,12 @@ Optional Properties:
|
|||
PCIe port PHY.
|
||||
Should be specified in groups (offset, value, delay).
|
||||
- qcom,use-19p2mhz-aux-clk: The frequency of PCIe AUX clock is 19.2MHz.
|
||||
- qcom,ep-wakeirq: The endpoint will issue wake signal when it is up, and the
|
||||
root complex has the capability to enumerate the endpoint for this case.
|
||||
- qcom,boot-option: Bits that alter PCIe bus driver boot sequence.
|
||||
Below details what happens when each bit is set
|
||||
BIT(0): PCIe bus driver will not start enumeration during its probe.
|
||||
Clients will control when PCIe bus driver should do enumeration.
|
||||
BIT(1): PCIe bus driver will not start enumeration if it receives a WAKE
|
||||
interrupt.
|
||||
- qcom,msi-gicm-addr: MSI address for GICv2m.
|
||||
- qcom,msi-gicm-base: MSI IRQ base for GICv2m.
|
||||
- qcom,ext-ref-clk: The reference clock is external.
|
||||
|
@ -263,7 +267,7 @@ Example:
|
|||
qcom,aux-clk-sync;
|
||||
qcom,n-fts = <0x50>;
|
||||
qcom,pcie-phy-ver = <1>;
|
||||
qcom,ep-wakeirq;
|
||||
qcom,boot-option = <0x1>;
|
||||
qcom,msi-gicm-addr = <0xf9040040>;
|
||||
qcom,msi-gicm-base = <0x160>;
|
||||
qcom,ext-ref-clk;
|
||||
|
|
|
@ -67,6 +67,7 @@ Optional properties:
|
|||
- qcom,complete-ramdump: Boolean. If set, complete ramdump i.e. region between start address of
|
||||
first segment to end address of last segment will be collected without
|
||||
leaving any hole in between.
|
||||
- qcom,ignore-ssr-failure: Boolean. If set, SSR failures are not considered fatal.
|
||||
|
||||
Example:
|
||||
qcom,venus@fdce0000 {
|
||||
|
|
|
@ -96,6 +96,14 @@ First Level Node - FG Gen3 device
|
|||
This value has to be specified in negative values for
|
||||
the charging current.
|
||||
|
||||
- qcom,fg-chg-term-base-current
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Battery current (in mA) upper boundary at which the fuel
|
||||
gauge will issue an end of charge during discharging. If
|
||||
this property is not specified, then the default value used
|
||||
will be 75mA.
|
||||
|
||||
- qcom,fg-delta-soc-thr
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
|
@ -137,22 +145,44 @@ First Level Node - FG Gen3 device
|
|||
|
||||
- qcom,fg-esr-timer-charging
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Number of cycles between ESR pulses while the battery is
|
||||
charging.
|
||||
charging. Array of 2 elements if specified.
|
||||
Element 0 - Retry value for timer
|
||||
Element 1 - Maximum value for timer
|
||||
|
||||
- qcom,fg-esr-timer-awake
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Number of cycles between ESR pulses while the system is
|
||||
awake and the battery is discharging.
|
||||
awake and the battery is discharging. Array of 2 elements
|
||||
if specified.
|
||||
Element 0 - Retry value for timer
|
||||
Element 1 - Maximum value for timer
|
||||
|
||||
- qcom,fg-esr-timer-asleep
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Number of cycles between ESR pulses while the system is
|
||||
asleep and the battery is discharging. This option requires
|
||||
qcom,fg-esr-timer-awake to be defined.
|
||||
qcom,fg-esr-timer-awake to be defined. Array of 2 elements
|
||||
if specified.
|
||||
Element 0 - Retry value for timer
|
||||
Element 1 - Maximum value for timer
|
||||
|
||||
- qcom,fg-esr-pulse-thresh-ma
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: ESR pulse qualification threshold in mA. If this is not
|
||||
specified, a default value of 110 mA will be configured.
|
||||
Allowed values are from 1 to 997.
|
||||
|
||||
- qcom,fg-esr-meas-curr-ma
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: ESR measurement current in mA. If this is not specified,
|
||||
a default value of 120 mA will be configured. Allowed
|
||||
values are 60, 120, 180 and 240.
|
||||
|
||||
- qcom,cycle-counter-en
|
||||
Usage: optional
|
||||
|
|
|
@ -35,11 +35,6 @@ Charger specific properties:
|
|||
addition battery properties will be faked such that the device
|
||||
assumes normal operation.
|
||||
|
||||
- qcom,external-vconn
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: Boolean flag which indicates VCONN is sourced externally.
|
||||
|
||||
- qcom,fcc-max-ua
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
|
@ -169,6 +164,24 @@ Charger specific properties:
|
|||
Definition: Boolean flag which when present enables intput suspend for
|
||||
debug battery.
|
||||
|
||||
- qcom,min-freq-khz
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Specifies the minimum charger buck/boost switching frequency
|
||||
in KHz. It overrides the min frequency defined for the charger.
|
||||
|
||||
- qcom,max-freq-khz
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Specifies the maximum charger buck/boost switching frequency in
|
||||
KHz. It overrides the max frequency defined for the charger.
|
||||
|
||||
- qcom,otg-deglitch-time-ms
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Specifies the deglitch interval for OTG detection.
|
||||
If the value is not present, 50 msec is used as default.
|
||||
|
||||
=============================================
|
||||
Second Level Nodes - SMB2 Charger Peripherals
|
||||
=============================================
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
ON Semiconductor NCP6335d regulator
|
||||
|
||||
NCP6335d is able to deliver up to 5.0 A, with programmable output voltage from
|
||||
0.6 V to 1.87 V in 10mV steps, with synchronous rectification and automatic PWM/
|
||||
PFM transitions, enable pins and power good/fail signaling.
|
||||
|
||||
The NCP6335d interface is via I2C bus.
|
||||
|
||||
Required Properties:
|
||||
- compatible: Must be "onnn,ncp6335d-regulator".
|
||||
- reg: The device 8-bit I2C address.
|
||||
- regulator-min-microvolt: Minimum voltage in microvolts supported by this
|
||||
regulator.
|
||||
- regulator-max-microvolt: Maximum voltage in microvolts supported by this
|
||||
regulator.
|
||||
- onnn,min-setpoint: Minimum setpoint voltage in microvolts supported
|
||||
by this regulator.
|
||||
- onnn,step-size: The step size of the regulator, in uV.
|
||||
- onnn,min-slew-ns: Minimum time in ns needed to change voltage by
|
||||
one step size. This value corresponds to DVS
|
||||
mode bit of 00b in command register.
|
||||
- onnn,max-slew-ns: Maximum time in ns needed to change voltage by
|
||||
one step size. This value corresponds to DVS
|
||||
mode bit of 11b in command register.
|
||||
- onnn,vsel: Working vsel register. Supported value are 0
|
||||
or 1.
|
||||
- onnn,slew-ns: Time in ns needed to change voltage by one step
|
||||
size. Supported value are 333, 666, 1333, 2666.
|
||||
|
||||
Optional Properties:
|
||||
- onnn,discharge-enable: Present: discharge enabled.
|
||||
Not Present: discharge disabled.
|
||||
- onnn,restore-reg: Present: Restore vsel register from backup register.
|
||||
Not Present: No restore.
|
||||
- onnn,vsel-gpio: Present: GPIO connects to the VSEL pin and set the
|
||||
VSEL pin according to device tree flag.
|
||||
Not Present: No GPIO is connected to vsel pin.
|
||||
- pinctrl-names: The state name of the VSEL pin configuration.
|
||||
Only support: "default"
|
||||
- pinctrl-0: The phandles of the pin configuration node in
|
||||
pinctrl for VSEL pin.
|
||||
For details of pinctrl properties, please refer to:
|
||||
"Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt"
|
||||
- onnn,sleep-enable: Present: Forced in sleep mode when EN and VSEL
|
||||
pins are low.
|
||||
Not Present: Low quiescent current mode when EN and VSEL
|
||||
pins are low.
|
||||
- onnn,mode: A string which specifies the initial mode to use for the regulator.
|
||||
Supported values are "pwm" and "auto". PWM mode is more
|
||||
robust, but draws more current than auto mode. If this propery
|
||||
is not specified, then the regulator will be in the hardware default mode.
|
||||
|
||||
Example:
|
||||
i2c_0 {
|
||||
ncp6335d-regulator@1c {
|
||||
compatible = "onnn,ncp6335d-regulator";
|
||||
reg = <0x1c>;
|
||||
onnn,vsel = <0>;
|
||||
onnn,slew-rate-ns = <2666>;
|
||||
onnn,discharge-enable;
|
||||
onnn,step-size = <10000>;
|
||||
onnn,min-slew-ns = <333>;
|
||||
onnn,max-slew-ns = <2666>;
|
||||
pintrl-names = "default";
|
||||
pinctrl-0 = <&ext_buck_vsel_default>;
|
||||
|
||||
regulator-min-microvolt = <1050000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
onnn,min-setpoint = <600000>;
|
||||
onnn,vsel-gpio = <&msmgpio 2 1>;
|
||||
};
|
||||
};
|
|
@ -86,11 +86,11 @@ LAB subnode required properties:
|
|||
40 and 50.
|
||||
- interrupts: Specify the interrupts as per the interrupt
|
||||
encoding.
|
||||
Currently "lab-vreg-ok" is required for
|
||||
LCD mode in pmi8998. For AMOLED mode,
|
||||
"lab-vreg-ok" is required only when SWIRE
|
||||
control is enabled and skipping 2nd SWIRE
|
||||
pulse is required in pmi8952/8996.
|
||||
Currently "lab-vreg-ok" is required and "lab-sc_err"
|
||||
is optional for LCD mode in pmi8998.
|
||||
For AMOLED mode, "lab-vreg-ok" is required
|
||||
only when SWIRE control is enabled and skipping
|
||||
2nd SWIRE pulse is required in pmi8952/8996.
|
||||
- interrupt-names: Interrupt names to match up 1-to-1 with
|
||||
the interrupts specified in 'interrupts'
|
||||
property.
|
||||
|
@ -151,6 +151,10 @@ LAB subnode optional properties:
|
|||
any value in the allowed limit.
|
||||
- qcom,notify-lab-vreg-ok-sts: A boolean property which upon set will
|
||||
poll and notify the lab_vreg_ok status.
|
||||
- qcom,qpnp-lab-sc-wait-time-ms: This property is used to specify the time
|
||||
(in ms) to poll for the short circuit
|
||||
detection. If not specified the default time
|
||||
is 5 sec.
|
||||
|
||||
Following properties are available only for PM660A:
|
||||
|
||||
|
@ -207,6 +211,14 @@ IBB subnode required properties:
|
|||
|
||||
IBB subnode optional properties:
|
||||
|
||||
- interrupts: Specify the interrupts as per the interrupt
|
||||
encoding.
|
||||
Currently "ibb-sc-err" could be used for LCD mode
|
||||
in pmi8998 to detect the short circuit fault.
|
||||
- interrupt-names: Interrupt names to match up 1-to-1 with
|
||||
the interrupts specified in 'interrupts'
|
||||
property.
|
||||
|
||||
- qcom,qpnp-ibb-discharge-resistor: The discharge resistor in Kilo Ohms which
|
||||
controls the soft start time. Supported values
|
||||
are 300, 64, 32 and 16.
|
||||
|
|
|
@ -14,6 +14,11 @@ Required Node Structure
|
|||
Value type: <string>
|
||||
Definition: should be "qcom,qpnp-oledb-regulator".
|
||||
|
||||
- qcom,pmic-revid
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
Definition: Used to identify the PMIC subtype.
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
|
@ -57,13 +62,6 @@ Required Node Structure
|
|||
rail. This property is applicable only if qcom,ext-pin-ctl
|
||||
property is specified and it is specific to PM660A.
|
||||
|
||||
- qcom,force-pd-control
|
||||
Usage: optional
|
||||
Value type: <bool>
|
||||
Definition: Used to enable the pull down control forcibly via SPMI by
|
||||
disabling the pull down configuration done by hardware
|
||||
automatically through SWIRE pulses.
|
||||
|
||||
- qcom,pbs-client
|
||||
Usage: optional
|
||||
Value type: <phandle>
|
||||
|
@ -224,6 +222,7 @@ pm660a_oledb: qpnp-oledb@e000 {
|
|||
compatible = "qcom,qpnp-oledb-regulator";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
qcom,pmic-revid = <&pm660l_revid>;
|
||||
reg = <0xe000 0x100>;
|
||||
|
||||
label = "oledb";
|
||||
|
|
|
@ -104,6 +104,12 @@ Optional properties:
|
|||
parameter. Only one pin may be specified per
|
||||
regulator. This property only applies to BoB
|
||||
type regulators.
|
||||
- qcom,pwm-threshold-current: Minimum current in mA which requires regulator
|
||||
to be in PWM mode. Load currents below this
|
||||
threshold use AUTO mode. This property only
|
||||
applies to BoB and SMPS type regulators.
|
||||
If this property is not specified, then the
|
||||
hardware default mode will be used all the time.
|
||||
- qcom,always-send-voltage: Flag which indicates that updates to the
|
||||
voltage, voltage corner or voltage level set
|
||||
point should always be sent immediately to the
|
||||
|
|
|
@ -76,6 +76,10 @@ Optional properties when qcom,actuator-type is "lra"
|
|||
at End of Pattern
|
||||
- qcom,lra-res-cal-period : Auto resonance calibration period. The values range from
|
||||
4 to 32(default)
|
||||
- qcom,lra-auto-mode : If this property is specified, haptics mode for LRA
|
||||
actuators will be automatically configured along with
|
||||
other required settings runtime based on the duration
|
||||
of the pattern.
|
||||
- qcom,perform-lra-auto-resonance-search : boolean, define this property if:
|
||||
a) the underlying PMI chip does not have a register in the MISC block to
|
||||
read the error percentage in RC clock
|
||||
|
|
|
@ -182,6 +182,12 @@ Optional properties:
|
|||
- qcom,msm-pcm-loopback-low-latency : Flag indicating whether
|
||||
the device node is of type low latency.
|
||||
|
||||
* msm-transcode-loopback
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "qcom,msm-transcode-loopback"
|
||||
|
||||
* msm-dai-q6
|
||||
|
||||
[First Level Nodes]
|
||||
|
@ -1245,12 +1251,9 @@ Required properties:
|
|||
When clock rate is set to zero,
|
||||
then external clock is assumed.
|
||||
|
||||
[Second Level Nodes]
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "qcom,msm-dai-q6-tdm"
|
||||
- qcom,msm-dai-q6-mi2s-dev-id: TDM port ID.
|
||||
- qcom,msm-cpudai-tdm-clk-internal: Clock Source.
|
||||
0 - EBIT clock from clk tree
|
||||
1 - IBIT clock from clk tree
|
||||
|
||||
- qcom,msm-cpudai-tdm-sync-mode: Synchronization setting.
|
||||
0 - Short sync bit mode
|
||||
|
@ -1275,6 +1278,13 @@ Required properties:
|
|||
1 - 1 bit clock cycle
|
||||
2 - 2 bit clock cycle
|
||||
|
||||
[Second Level Nodes]
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "qcom,msm-dai-q6-tdm"
|
||||
- qcom,msm-dai-q6-mi2s-dev-id: TDM port ID.
|
||||
|
||||
- qcom,msm-cpudai-tdm-data-align: Indicate how data is packed
|
||||
within the slot. For example, 32 slot width in case of
|
||||
sample bit width is 24.
|
||||
|
@ -1309,17 +1319,18 @@ Example:
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&quat_tdm_active &quat_tdm_dout_active>;
|
||||
pinctrl-1 = <&quat_tdm_sleep &quat_tdm_dout_sleep>;
|
||||
dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
qcom,msm-cpudai-tdm-header-start-offset = <0>;
|
||||
qcom,msm-cpudai-tdm-header-width = <2>;
|
||||
|
@ -2396,14 +2407,15 @@ Example:
|
|||
qcom,tasha-mclk-clk-freq = <9600000>;
|
||||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>;
|
||||
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
|
||||
<&trans_loopback>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-cpe-lsm",
|
||||
"msm-compr-dsp";
|
||||
"msm-compr-dsp","msm-transcode-loopback";
|
||||
asoc-cpu = <&dai_hdmi>,
|
||||
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
|
||||
<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
|
||||
|
|
|
@ -42,6 +42,9 @@ Required properties:
|
|||
cell 4: interrupt flags indicating level-sense information, as defined in
|
||||
dt-bindings/interrupt-controller/irq.h
|
||||
|
||||
Optional properties:
|
||||
- qcom,reserved-chan : Reserved channel for debug purpose
|
||||
|
||||
Example V1 PMIC-Arbiter:
|
||||
|
||||
spmi {
|
||||
|
@ -56,6 +59,7 @@ Example V1 PMIC-Arbiter:
|
|||
|
||||
qcom,ee = <0>;
|
||||
qcom,channel = <0>;
|
||||
qcom,reserved-chan = <511>;
|
||||
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -212,6 +212,8 @@ Optional properties:
|
|||
- qcom,hold-reset: Indicates that hold QUSB PHY into reset state.
|
||||
- qcom,phy-clk-scheme: Should be one of "cml" or "cmos" if ref_clk_addr is provided.
|
||||
- qcom,major-rev: provide major revision number to differentiate power up sequence. default is 2.0
|
||||
- qcom,vdda33-voltage-level: A list of three integer values (min, op, max) representing
|
||||
specific voltages (in microvolts) used for the vdda33 supply.
|
||||
|
||||
Example:
|
||||
qusb_phy: qusb@f9b39000 {
|
||||
|
|
|
@ -2692,6 +2692,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
we can turn it on.
|
||||
on: enable the feature
|
||||
|
||||
page_poison= [KNL] Boot-time parameter changing the state of
|
||||
poisoning on the buddy allocator.
|
||||
off: turn off poisoning
|
||||
on: turn on poisoning
|
||||
|
||||
panic= [KNL] Kernel behaviour on panic: delay <timeout>
|
||||
timeout > 0: seconds before rebooting
|
||||
timeout = 0: wait forever
|
||||
|
|
|
@ -1418,11 +1418,20 @@ accept_ra_pinfo - BOOLEAN
|
|||
Functional default: enabled if accept_ra is enabled.
|
||||
disabled if accept_ra is disabled.
|
||||
|
||||
accept_ra_rt_info_min_plen - INTEGER
|
||||
Minimum prefix length of Route Information in RA.
|
||||
|
||||
Route Information w/ prefix smaller than this variable shall
|
||||
be ignored.
|
||||
|
||||
Functional default: 0 if accept_ra_rtr_pref is enabled.
|
||||
-1 if accept_ra_rtr_pref is disabled.
|
||||
|
||||
accept_ra_rt_info_max_plen - INTEGER
|
||||
Maximum prefix length of Route Information in RA.
|
||||
|
||||
Route Information w/ prefix larger than or equal to this
|
||||
variable shall be ignored.
|
||||
Route Information w/ prefix larger than this variable shall
|
||||
be ignored.
|
||||
|
||||
Functional default: 0 if accept_ra_rtr_pref is enabled.
|
||||
-1 if accept_ra_rtr_pref is disabled.
|
||||
|
|
|
@ -1,332 +0,0 @@
|
|||
This file documents how to use memory mapped I/O with netlink.
|
||||
|
||||
Author: Patrick McHardy <kaber@trash.net>
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
Memory mapped netlink I/O can be used to increase throughput and decrease
|
||||
overhead of unicast receive and transmit operations. Some netlink subsystems
|
||||
require high throughput, these are mainly the netfilter subsystems
|
||||
nfnetlink_queue and nfnetlink_log, but it can also help speed up large
|
||||
dump operations of f.i. the routing database.
|
||||
|
||||
Memory mapped netlink I/O used two circular ring buffers for RX and TX which
|
||||
are mapped into the processes address space.
|
||||
|
||||
The RX ring is used by the kernel to directly construct netlink messages into
|
||||
user-space memory without copying them as done with regular socket I/O,
|
||||
additionally as long as the ring contains messages no recvmsg() or poll()
|
||||
syscalls have to be issued by user-space to get more message.
|
||||
|
||||
The TX ring is used to process messages directly from user-space memory, the
|
||||
kernel processes all messages contained in the ring using a single sendmsg()
|
||||
call.
|
||||
|
||||
Usage overview
|
||||
--------------
|
||||
|
||||
In order to use memory mapped netlink I/O, user-space needs three main changes:
|
||||
|
||||
- ring setup
|
||||
- conversion of the RX path to get messages from the ring instead of recvmsg()
|
||||
- conversion of the TX path to construct messages into the ring
|
||||
|
||||
Ring setup is done using setsockopt() to provide the ring parameters to the
|
||||
kernel, then a call to mmap() to map the ring into the processes address space:
|
||||
|
||||
- setsockopt(fd, SOL_NETLINK, NETLINK_RX_RING, ¶ms, sizeof(params));
|
||||
- setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, ¶ms, sizeof(params));
|
||||
- ring = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)
|
||||
|
||||
Usage of either ring is optional, but even if only the RX ring is used the
|
||||
mapping still needs to be writable in order to update the frame status after
|
||||
processing.
|
||||
|
||||
Conversion of the reception path involves calling poll() on the file
|
||||
descriptor, once the socket is readable the frames from the ring are
|
||||
processed in order until no more messages are available, as indicated by
|
||||
a status word in the frame header.
|
||||
|
||||
On kernel side, in order to make use of memory mapped I/O on receive, the
|
||||
originating netlink subsystem needs to support memory mapped I/O, otherwise
|
||||
it will use an allocated socket buffer as usual and the contents will be
|
||||
copied to the ring on transmission, nullifying most of the performance gains.
|
||||
Dumps of kernel databases automatically support memory mapped I/O.
|
||||
|
||||
Conversion of the transmit path involves changing message construction to
|
||||
use memory from the TX ring instead of (usually) a buffer declared on the
|
||||
stack and setting up the frame header appropriately. Optionally poll() can
|
||||
be used to wait for free frames in the TX ring.
|
||||
|
||||
Structured and definitions for using memory mapped I/O are contained in
|
||||
<linux/netlink.h>.
|
||||
|
||||
RX and TX rings
|
||||
----------------
|
||||
|
||||
Each ring contains a number of continuous memory blocks, containing frames of
|
||||
fixed size dependent on the parameters used for ring setup.
|
||||
|
||||
Ring: [ block 0 ]
|
||||
[ frame 0 ]
|
||||
[ frame 1 ]
|
||||
[ block 1 ]
|
||||
[ frame 2 ]
|
||||
[ frame 3 ]
|
||||
...
|
||||
[ block n ]
|
||||
[ frame 2 * n ]
|
||||
[ frame 2 * n + 1 ]
|
||||
|
||||
The blocks are only visible to the kernel, from the point of view of user-space
|
||||
the ring just contains the frames in a continuous memory zone.
|
||||
|
||||
The ring parameters used for setting up the ring are defined as follows:
|
||||
|
||||
struct nl_mmap_req {
|
||||
unsigned int nm_block_size;
|
||||
unsigned int nm_block_nr;
|
||||
unsigned int nm_frame_size;
|
||||
unsigned int nm_frame_nr;
|
||||
};
|
||||
|
||||
Frames are grouped into blocks, where each block is a continuous region of memory
|
||||
and holds nm_block_size / nm_frame_size frames. The total number of frames in
|
||||
the ring is nm_frame_nr. The following invariants hold:
|
||||
|
||||
- frames_per_block = nm_block_size / nm_frame_size
|
||||
|
||||
- nm_frame_nr = frames_per_block * nm_block_nr
|
||||
|
||||
Some parameters are constrained, specifically:
|
||||
|
||||
- nm_block_size must be a multiple of the architectures memory page size.
|
||||
The getpagesize() function can be used to get the page size.
|
||||
|
||||
- nm_frame_size must be equal or larger to NL_MMAP_HDRLEN, IOW a frame must be
|
||||
able to hold at least the frame header
|
||||
|
||||
- nm_frame_size must be smaller or equal to nm_block_size
|
||||
|
||||
- nm_frame_size must be a multiple of NL_MMAP_MSG_ALIGNMENT
|
||||
|
||||
- nm_frame_nr must equal the actual number of frames as specified above.
|
||||
|
||||
When the kernel can't allocate physically continuous memory for a ring block,
|
||||
it will fall back to use physically discontinuous memory. This might affect
|
||||
performance negatively, in order to avoid this the nm_frame_size parameter
|
||||
should be chosen to be as small as possible for the required frame size and
|
||||
the number of blocks should be increased instead.
|
||||
|
||||
Ring frames
|
||||
------------
|
||||
|
||||
Each frames contain a frame header, consisting of a synchronization word and some
|
||||
meta-data, and the message itself.
|
||||
|
||||
Frame: [ header message ]
|
||||
|
||||
The frame header is defined as follows:
|
||||
|
||||
struct nl_mmap_hdr {
|
||||
unsigned int nm_status;
|
||||
unsigned int nm_len;
|
||||
__u32 nm_group;
|
||||
/* credentials */
|
||||
__u32 nm_pid;
|
||||
__u32 nm_uid;
|
||||
__u32 nm_gid;
|
||||
};
|
||||
|
||||
- nm_status is used for synchronizing processing between the kernel and user-
|
||||
space and specifies ownership of the frame as well as the operation to perform
|
||||
|
||||
- nm_len contains the length of the message contained in the data area
|
||||
|
||||
- nm_group specified the destination multicast group of message
|
||||
|
||||
- nm_pid, nm_uid and nm_gid contain the netlink pid, UID and GID of the sending
|
||||
process. These values correspond to the data available using SOCK_PASSCRED in
|
||||
the SCM_CREDENTIALS cmsg.
|
||||
|
||||
The possible values in the status word are:
|
||||
|
||||
- NL_MMAP_STATUS_UNUSED:
|
||||
RX ring: frame belongs to the kernel and contains no message
|
||||
for user-space. Approriate action is to invoke poll()
|
||||
to wait for new messages.
|
||||
|
||||
TX ring: frame belongs to user-space and can be used for
|
||||
message construction.
|
||||
|
||||
- NL_MMAP_STATUS_RESERVED:
|
||||
RX ring only: frame is currently used by the kernel for message
|
||||
construction and contains no valid message yet.
|
||||
Appropriate action is to invoke poll() to wait for
|
||||
new messages.
|
||||
|
||||
- NL_MMAP_STATUS_VALID:
|
||||
RX ring: frame contains a valid message. Approriate action is
|
||||
to process the message and release the frame back to
|
||||
the kernel by setting the status to
|
||||
NL_MMAP_STATUS_UNUSED or queue the frame by setting the
|
||||
status to NL_MMAP_STATUS_SKIP.
|
||||
|
||||
TX ring: the frame contains a valid message from user-space to
|
||||
be processed by the kernel. After completing processing
|
||||
the kernel will release the frame back to user-space by
|
||||
setting the status to NL_MMAP_STATUS_UNUSED.
|
||||
|
||||
- NL_MMAP_STATUS_COPY:
|
||||
RX ring only: a message is ready to be processed but could not be
|
||||
stored in the ring, either because it exceeded the
|
||||
frame size or because the originating subsystem does
|
||||
not support memory mapped I/O. Appropriate action is
|
||||
to invoke recvmsg() to receive the message and release
|
||||
the frame back to the kernel by setting the status to
|
||||
NL_MMAP_STATUS_UNUSED.
|
||||
|
||||
- NL_MMAP_STATUS_SKIP:
|
||||
RX ring only: user-space queued the message for later processing, but
|
||||
processed some messages following it in the ring. The
|
||||
kernel should skip this frame when looking for unused
|
||||
frames.
|
||||
|
||||
The data area of a frame begins at a offset of NL_MMAP_HDRLEN relative to the
|
||||
frame header.
|
||||
|
||||
TX limitations
|
||||
--------------
|
||||
|
||||
As of Jan 2015 the message is always copied from the ring frame to an
|
||||
allocated buffer due to unresolved security concerns.
|
||||
See commit 4682a0358639b29cf ("netlink: Always copy on mmap TX.").
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
Ring setup:
|
||||
|
||||
unsigned int block_size = 16 * getpagesize();
|
||||
struct nl_mmap_req req = {
|
||||
.nm_block_size = block_size,
|
||||
.nm_block_nr = 64,
|
||||
.nm_frame_size = 16384,
|
||||
.nm_frame_nr = 64 * block_size / 16384,
|
||||
};
|
||||
unsigned int ring_size;
|
||||
void *rx_ring, *tx_ring;
|
||||
|
||||
/* Configure ring parameters */
|
||||
if (setsockopt(fd, SOL_NETLINK, NETLINK_RX_RING, &req, sizeof(req)) < 0)
|
||||
exit(1);
|
||||
if (setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, &req, sizeof(req)) < 0)
|
||||
exit(1)
|
||||
|
||||
/* Calculate size of each individual ring */
|
||||
ring_size = req.nm_block_nr * req.nm_block_size;
|
||||
|
||||
/* Map RX/TX rings. The TX ring is located after the RX ring */
|
||||
rx_ring = mmap(NULL, 2 * ring_size, PROT_READ | PROT_WRITE,
|
||||
MAP_SHARED, fd, 0);
|
||||
if ((long)rx_ring == -1L)
|
||||
exit(1);
|
||||
tx_ring = rx_ring + ring_size:
|
||||
|
||||
Message reception:
|
||||
|
||||
This example assumes some ring parameters of the ring setup are available.
|
||||
|
||||
unsigned int frame_offset = 0;
|
||||
struct nl_mmap_hdr *hdr;
|
||||
struct nlmsghdr *nlh;
|
||||
unsigned char buf[16384];
|
||||
ssize_t len;
|
||||
|
||||
while (1) {
|
||||
struct pollfd pfds[1];
|
||||
|
||||
pfds[0].fd = fd;
|
||||
pfds[0].events = POLLIN | POLLERR;
|
||||
pfds[0].revents = 0;
|
||||
|
||||
if (poll(pfds, 1, -1) < 0 && errno != -EINTR)
|
||||
exit(1);
|
||||
|
||||
/* Check for errors. Error handling omitted */
|
||||
if (pfds[0].revents & POLLERR)
|
||||
<handle error>
|
||||
|
||||
/* If no new messages, poll again */
|
||||
if (!(pfds[0].revents & POLLIN))
|
||||
continue;
|
||||
|
||||
/* Process all frames */
|
||||
while (1) {
|
||||
/* Get next frame header */
|
||||
hdr = rx_ring + frame_offset;
|
||||
|
||||
if (hdr->nm_status == NL_MMAP_STATUS_VALID) {
|
||||
/* Regular memory mapped frame */
|
||||
nlh = (void *)hdr + NL_MMAP_HDRLEN;
|
||||
len = hdr->nm_len;
|
||||
|
||||
/* Release empty message immediately. May happen
|
||||
* on error during message construction.
|
||||
*/
|
||||
if (len == 0)
|
||||
goto release;
|
||||
} else if (hdr->nm_status == NL_MMAP_STATUS_COPY) {
|
||||
/* Frame queued to socket receive queue */
|
||||
len = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
|
||||
if (len <= 0)
|
||||
break;
|
||||
nlh = buf;
|
||||
} else
|
||||
/* No more messages to process, continue polling */
|
||||
break;
|
||||
|
||||
process_msg(nlh);
|
||||
release:
|
||||
/* Release frame back to the kernel */
|
||||
hdr->nm_status = NL_MMAP_STATUS_UNUSED;
|
||||
|
||||
/* Advance frame offset to next frame */
|
||||
frame_offset = (frame_offset + frame_size) % ring_size;
|
||||
}
|
||||
}
|
||||
|
||||
Message transmission:
|
||||
|
||||
This example assumes some ring parameters of the ring setup are available.
|
||||
A single message is constructed and transmitted, to send multiple messages
|
||||
at once they would be constructed in consecutive frames before a final call
|
||||
to sendto().
|
||||
|
||||
unsigned int frame_offset = 0;
|
||||
struct nl_mmap_hdr *hdr;
|
||||
struct nlmsghdr *nlh;
|
||||
struct sockaddr_nl addr = {
|
||||
.nl_family = AF_NETLINK,
|
||||
};
|
||||
|
||||
hdr = tx_ring + frame_offset;
|
||||
if (hdr->nm_status != NL_MMAP_STATUS_UNUSED)
|
||||
/* No frame available. Use poll() to avoid. */
|
||||
exit(1);
|
||||
|
||||
nlh = (void *)hdr + NL_MMAP_HDRLEN;
|
||||
|
||||
/* Build message */
|
||||
build_message(nlh);
|
||||
|
||||
/* Fill frame header: length and status need to be set */
|
||||
hdr->nm_len = nlh->nlmsg_len;
|
||||
hdr->nm_status = NL_MMAP_STATUS_VALID;
|
||||
|
||||
if (sendto(fd, NULL, 0, 0, &addr, sizeof(addr)) < 0)
|
||||
exit(1);
|
||||
|
||||
/* Advance frame offset to next frame */
|
||||
frame_offset = (frame_offset + frame_size) % ring_size;
|
|
@ -265,6 +265,13 @@ aio-nr can grow to.
|
|||
|
||||
==============================================================
|
||||
|
||||
mount-max:
|
||||
|
||||
This denotes the maximum number of mounts that may exist
|
||||
in a mount namespace.
|
||||
|
||||
==============================================================
|
||||
|
||||
|
||||
2. /proc/sys/fs/binfmt_misc
|
||||
----------------------------------------------------------
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
timer_stats - timer usage statistics
|
||||
------------------------------------
|
||||
|
||||
timer_stats is a debugging facility to make the timer (ab)usage in a Linux
|
||||
system visible to kernel and userspace developers. If enabled in the config
|
||||
but not used it has almost zero runtime overhead, and a relatively small
|
||||
data structure overhead. Even if collection is enabled runtime all the
|
||||
locking is per-CPU and lookup is hashed.
|
||||
|
||||
timer_stats should be used by kernel and userspace developers to verify that
|
||||
their code does not make unduly use of timers. This helps to avoid unnecessary
|
||||
wakeups, which should be avoided to optimize power consumption.
|
||||
|
||||
It can be enabled by CONFIG_TIMER_STATS in the "Kernel hacking" configuration
|
||||
section.
|
||||
|
||||
timer_stats collects information about the timer events which are fired in a
|
||||
Linux system over a sample period:
|
||||
|
||||
- the pid of the task(process) which initialized the timer
|
||||
- the name of the process which initialized the timer
|
||||
- the function where the timer was initialized
|
||||
- the callback function which is associated to the timer
|
||||
- the number of events (callbacks)
|
||||
|
||||
timer_stats adds an entry to /proc: /proc/timer_stats
|
||||
|
||||
This entry is used to control the statistics functionality and to read out the
|
||||
sampled information.
|
||||
|
||||
The timer_stats functionality is inactive on bootup.
|
||||
|
||||
To activate a sample period issue:
|
||||
# echo 1 >/proc/timer_stats
|
||||
|
||||
To stop a sample period issue:
|
||||
# echo 0 >/proc/timer_stats
|
||||
|
||||
The statistics can be retrieved by:
|
||||
# cat /proc/timer_stats
|
||||
|
||||
While sampling is enabled, each readout from /proc/timer_stats will see
|
||||
newly updated statistics. Once sampling is disabled, the sampled information
|
||||
is kept until a new sample period is started. This allows multiple readouts.
|
||||
|
||||
Sample output of /proc/timer_stats:
|
||||
|
||||
Timerstats sample period: 3.888770 s
|
||||
12, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick)
|
||||
15, 1 swapper hcd_submit_urb (rh_timer_func)
|
||||
4, 959 kedac schedule_timeout (process_timeout)
|
||||
1, 0 swapper page_writeback_init (wb_timer_fn)
|
||||
28, 0 swapper hrtimer_stop_sched_tick (hrtimer_sched_tick)
|
||||
22, 2948 IRQ 4 tty_flip_buffer_push (delayed_work_timer_fn)
|
||||
3, 3100 bash schedule_timeout (process_timeout)
|
||||
1, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
|
||||
1, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
|
||||
1, 1 swapper neigh_table_init_no_netlink (neigh_periodic_timer)
|
||||
1, 2292 ip __netdev_watchdog_up (dev_watchdog)
|
||||
1, 23 events/1 do_cache_clean (delayed_work_timer_fn)
|
||||
90 total events, 30.0 events/sec
|
||||
|
||||
The first column is the number of events, the second column the pid, the third
|
||||
column is the name of the process. The forth column shows the function which
|
||||
initialized the timer and in parenthesis the callback function which was
|
||||
executed on expiry.
|
||||
|
||||
Thomas, Ingo
|
||||
|
||||
Added flag to indicate 'deferrable timer' in /proc/timer_stats. A deferrable
|
||||
timer will appear as follows
|
||||
10D, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
|
||||
|
16
MAINTAINERS
16
MAINTAINERS
|
@ -2657,6 +2657,22 @@ F: drivers/net/ieee802154/cc2520.c
|
|||
F: include/linux/spi/cc2520.h
|
||||
F: Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
|
||||
|
||||
CEC DRIVER
|
||||
M: Hans Verkuil <hans.verkuil@cisco.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
W: http://linuxtv.org
|
||||
S: Supported
|
||||
F: Documentation/cec.txt
|
||||
F: Documentation/DocBook/media/v4l/cec*
|
||||
F: drivers/staging/media/cec/
|
||||
F: drivers/media/cec-edid.c
|
||||
F: drivers/media/rc/keymaps/rc-cec.c
|
||||
F: include/media/cec.h
|
||||
F: include/media/cec-edid.h
|
||||
F: include/linux/cec.h
|
||||
F: include/linux/cec-funcs.h
|
||||
|
||||
CELL BROADBAND ENGINE ARCHITECTURE
|
||||
M: Arnd Bergmann <arnd@arndb.de>
|
||||
L: linuxppc-dev@lists.ozlabs.org
|
||||
|
|
10
Makefile
10
Makefile
|
@ -1,6 +1,6 @@
|
|||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
SUBLEVEL = 55
|
||||
SUBLEVEL = 70
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
|
@ -146,7 +146,7 @@ PHONY += $(MAKECMDGOALS) sub-make
|
|||
$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
||||
@:
|
||||
|
||||
sub-make: FORCE
|
||||
sub-make:
|
||||
$(Q)$(MAKE) -C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR) \
|
||||
-f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
|
||||
|
||||
|
@ -1005,7 +1005,7 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
|
|||
|
||||
archprepare: archheaders archscripts prepare1 scripts_basic
|
||||
|
||||
prepare0: archprepare FORCE
|
||||
prepare0: archprepare
|
||||
$(Q)$(MAKE) $(build)=.
|
||||
|
||||
# All the preparing..
|
||||
|
@ -1050,7 +1050,7 @@ INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware
|
|||
export INSTALL_FW_PATH
|
||||
|
||||
PHONY += firmware_install
|
||||
firmware_install: FORCE
|
||||
firmware_install:
|
||||
@mkdir -p $(objtree)/firmware
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install
|
||||
|
||||
|
@ -1070,7 +1070,7 @@ PHONY += archscripts
|
|||
archscripts:
|
||||
|
||||
PHONY += __headers
|
||||
__headers: $(version_h) scripts_basic asm-generic archheaders archscripts FORCE
|
||||
__headers: $(version_h) scripts_basic asm-generic archheaders archscripts
|
||||
$(Q)$(MAKE) $(build)=scripts build_unifdef
|
||||
|
||||
PHONY += headers_install_all
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
# KEEP ALPHABETICALLY SORTED
|
||||
# CONFIG_DEVKMEM is not set
|
||||
# CONFIG_DEVMEM is not set
|
||||
# CONFIG_FHANDLE is not set
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_MODULES is not set
|
||||
# CONFIG_OABI_COMPAT is not set
|
||||
# CONFIG_SYSVIPC is not set
|
||||
# CONFIG_USELIB is not set
|
||||
CONFIG_ANDROID=y
|
||||
CONFIG_ANDROID_BINDER_IPC=y
|
||||
CONFIG_ANDROID_BINDER_DEVICES=binder,hwbinder,vndbinder
|
||||
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
|
||||
CONFIG_ARMV8_DEPRECATED=y
|
||||
CONFIG_ASHMEM=y
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
|
@ -19,13 +20,13 @@ CONFIG_CGROUP_DEBUG=y
|
|||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_CP15_BARRIER_EMULATION=y
|
||||
CONFIG_DM_CRYPT=y
|
||||
CONFIG_DM_VERITY=y
|
||||
CONFIG_DM_VERITY_FEC=y
|
||||
CONFIG_DEFAULT_SECURITY_SELINUX=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_INET6_AH=y
|
||||
CONFIG_INET6_ESP=y
|
||||
CONFIG_INET6_IPCOMP=y
|
||||
|
@ -42,7 +43,6 @@ CONFIG_IPV6=y
|
|||
CONFIG_IPV6_MIP6=y
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_OPTIMISTIC_DAD=y
|
||||
CONFIG_IPV6_PRIVACY=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
|
@ -64,10 +64,12 @@ CONFIG_IP_NF_TARGET_MASQUERADE=y
|
|||
CONFIG_IP_NF_TARGET_NETMAP=y
|
||||
CONFIG_IP_NF_TARGET_REDIRECT=y
|
||||
CONFIG_IP_NF_TARGET_REJECT=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_TPROXY=y
|
||||
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
|
||||
|
@ -83,7 +85,6 @@ CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
|
|||
CONFIG_NETFILTER_XT_MATCH_POLICY=y
|
||||
CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
|
||||
CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
|
||||
CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
|
||||
CONFIG_NETFILTER_XT_MATCH_QUOTA=y
|
||||
CONFIG_NETFILTER_XT_MATCH_SOCKET=y
|
||||
CONFIG_NETFILTER_XT_MATCH_STATE=y
|
||||
|
@ -157,16 +158,15 @@ CONFIG_STAGING=y
|
|||
CONFIG_SWP_EMULATION=y
|
||||
CONFIG_SYNC=y
|
||||
CONFIG_TUN=y
|
||||
CONFIG_UID_CPUTIME=y
|
||||
CONFIG_UID_SYS_STATS=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_CONFIGFS=y
|
||||
CONFIG_USB_CONFIGFS_F_FS=y
|
||||
CONFIG_USB_CONFIGFS_F_MTP=y
|
||||
CONFIG_USB_CONFIGFS_F_PTP=y
|
||||
CONFIG_USB_CONFIGFS_F_ACC=y
|
||||
CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
|
||||
CONFIG_USB_CONFIGFS_UEVENT=y
|
||||
CONFIG_USB_CONFIGFS_F_FS=y
|
||||
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||
CONFIG_USB_OTG_WAKELOCK=y
|
||||
CONFIG_USB_CONFIGFS_F_MTP=y
|
||||
CONFIG_USB_CONFIGFS_F_PTP=y
|
||||
CONFIG_USB_CONFIGFS_UEVENT=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_XFRM_USER=y
|
||||
|
|
|
@ -7,16 +7,22 @@
|
|||
# CONFIG_PM_WAKELOCKS_GC is not set
|
||||
# CONFIG_VT is not set
|
||||
CONFIG_ANDROID_TIMED_GPIO=y
|
||||
CONFIG_ARM64_SW_TTBR0_PAN=y
|
||||
CONFIG_ARM_KERNMEM_PERMS=y
|
||||
CONFIG_ARM64_SW_TTBR0_PAN=y
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_CC_STACKPROTECTOR_STRONG=y
|
||||
CONFIG_COMPACTION=y
|
||||
CONFIG_CPU_SW_DOMAIN_PAN=y
|
||||
CONFIG_DEBUG_RODATA=y
|
||||
CONFIG_DM_CRYPT=y
|
||||
CONFIG_DM_UEVENT=y
|
||||
CONFIG_DM_VERITY=y
|
||||
CONFIG_DM_VERITY_FEC=y
|
||||
CONFIG_DRAGONRISE_FF=y
|
||||
CONFIG_ENABLE_DEFAULT_TRACERS=y
|
||||
CONFIG_EXT4_FS=y
|
||||
|
@ -92,6 +98,7 @@ CONFIG_LOGIRUMBLEPAD2_FF=y
|
|||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEMORY_STATE_TIME=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_PANIC_TIMEOUT=5
|
||||
CONFIG_PANTHERLORD_FF=y
|
||||
|
@ -121,7 +128,6 @@ CONFIG_TIMER_STATS=y
|
|||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_MEMORY_STATE_TIME=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_HIDDEV=y
|
||||
|
|
|
@ -1188,8 +1188,10 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options,
|
|||
if (!access_ok(VERIFY_WRITE, ur, sizeof(*ur)))
|
||||
return -EFAULT;
|
||||
|
||||
err = 0;
|
||||
err |= put_user(status, ustatus);
|
||||
err = put_user(status, ustatus);
|
||||
if (ret < 0)
|
||||
return err ? err : ret;
|
||||
|
||||
err |= __put_user(r.ru_utime.tv_sec, &ur->ru_utime.tv_sec);
|
||||
err |= __put_user(r.ru_utime.tv_usec, &ur->ru_utime.tv_usec);
|
||||
err |= __put_user(r.ru_stime.tv_sec, &ur->ru_stime.tv_sec);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
;
|
||||
; Now manually save: r12, sp, fp, gp, r25
|
||||
|
||||
PUSH r30
|
||||
PUSH r12
|
||||
|
||||
; Saving pt_regs->sp correctly requires some extra work due to the way
|
||||
|
@ -72,6 +73,7 @@
|
|||
POPAX AUX_USER_SP
|
||||
1:
|
||||
POP r12
|
||||
POP r30
|
||||
|
||||
.endm
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ struct pt_regs {
|
|||
unsigned long fp;
|
||||
unsigned long sp; /* user/kernel sp depending on where we came from */
|
||||
|
||||
unsigned long r12;
|
||||
unsigned long r12, r30;
|
||||
|
||||
/*------- Below list auto saved by h/w -----------*/
|
||||
unsigned long r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11;
|
||||
|
|
|
@ -113,7 +113,7 @@ if ARM_DMA_USE_IOMMU
|
|||
config ARM_DMA_IOMMU_ALIGNMENT
|
||||
int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers"
|
||||
range 4 9
|
||||
default 8
|
||||
default 9
|
||||
help
|
||||
DMA mapping framework by default aligns all buffers to the smallest
|
||||
PAGE_SIZE order which is greater than or equal to the requested buffer
|
||||
|
|
|
@ -69,7 +69,7 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE
|
|||
|
||||
$(obj)/zImage-dtb: $(obj)/zImage $(DTB_OBJS) FORCE
|
||||
$(call if_changed,cat)
|
||||
@echo ' Kernel: $@ is ready'
|
||||
@$(kecho) ' Kernel: $@ is ready'
|
||||
|
||||
endif
|
||||
|
||||
|
|
|
@ -162,9 +162,10 @@
|
|||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
atmel,adc-vref = <3300>;
|
||||
atmel,adc-channels-used = <0xfe>;
|
||||
pinctrl-0 = <
|
||||
&pinctrl_adc0_adtrg
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
|
@ -172,8 +173,6 @@
|
|||
&pinctrl_adc0_ad5
|
||||
&pinctrl_adc0_ad6
|
||||
&pinctrl_adc0_ad7
|
||||
&pinctrl_adc0_ad8
|
||||
&pinctrl_adc0_ad9
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -114,6 +114,30 @@ dtb-$(CONFIG_ARCH_MSM8996) += msm8996-v2-pmi8994-cdp.dtb \
|
|||
apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dtb \
|
||||
apq8096-v3-pmi8996-dragonboard.dtb
|
||||
|
||||
dtb-$(CONFIG_MSM_GVM_QUIN) += vplatform-lfv-msm8996.dtb
|
||||
|
||||
ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y)
|
||||
dtbo-$(CONFIG_ARCH_MSM8998) += \
|
||||
msm8998-cdp-overlay.dtbo \
|
||||
msm8998-mtp-overlay.dtbo \
|
||||
msm8998-v2-cdp-overlay.dtbo \
|
||||
msm8998-v2-mtp-overlay.dtbo \
|
||||
msm8998-v2.1-cdp-overlay.dtbo \
|
||||
msm8998-v2.1-mtp-overlay.dtbo \
|
||||
msm8998-qrd-overlay.dtbo \
|
||||
msm8998-qrd-vr1-overlay.dtbo \
|
||||
msm8998-qrd-skuk-overlay.dtbo
|
||||
|
||||
msm8998-cdp-overlay.dtbo-base := msm8998.dtb
|
||||
msm8998-mtp-overlay.dtbo-base := msm8998.dtb
|
||||
msm8998-v2-cdp-overlay.dtbo-base := msm8998-v2.dtb
|
||||
msm8998-v2-mtp-overlay.dtbo-base := msm8998-v2.dtb
|
||||
msm8998-v2.1-cdp-overlay.dtbo-base := msm8998-v2.1.dtb
|
||||
msm8998-v2.1-mtp-overlay.dtbo-base := msm8998-v2.1.dtb
|
||||
msm8998-qrd-overlay.dtbo-base := msm8998-qrd.dtb
|
||||
msm8998-qrd-vr1-overlay.dtbo-base := msm8998-qrd-vr1.dtb
|
||||
msm8998-qrd-skuk-overlay.dtbo-base := msm8998-qrd-skuk.dtb
|
||||
else
|
||||
dtb-$(CONFIG_ARCH_MSM8998) += msm8998-sim.dtb \
|
||||
msm8998-rumi.dtb \
|
||||
msm8998-cdp.dtb \
|
||||
|
@ -130,22 +154,24 @@ dtb-$(CONFIG_ARCH_MSM8998) += msm8998-sim.dtb \
|
|||
msm8998-v2-qrd-vr1.dtb \
|
||||
msm8998-v2-qrd-skuk-evt3.dtb \
|
||||
msm8998-v2-qrd-skuk-hdk.dtb \
|
||||
apq8998-mtp.dtb \
|
||||
apq8998-cdp.dtb \
|
||||
apq8998-v2-mtp.dtb \
|
||||
apq8998-v2-cdp.dtb \
|
||||
apq8998-v2-qrd.dtb \
|
||||
apq8998-v2-qrd-skuk-hdk.dtb \
|
||||
apq8098-mtp.dtb \
|
||||
apq8098-cdp.dtb \
|
||||
apq8098-v2-mtp.dtb \
|
||||
apq8098-v2-cdp.dtb \
|
||||
apq8098-v2-qrd.dtb \
|
||||
apq8098-v2-qrd-skuk-hdk.dtb \
|
||||
msm8998-v2.1-mtp.dtb \
|
||||
msm8998-v2.1-mtp-4k-display.dtb \
|
||||
msm8998-v2.1-cdp.dtb \
|
||||
msm8998-v2.1-qrd.dtb \
|
||||
apq8998-v2.1-mtp.dtb \
|
||||
apq8998-v2.1-cdp.dtb \
|
||||
apq8998-v2.1-qrd.dtb \
|
||||
apq8998-v2.1-mediabox.dtb \
|
||||
apq8098-v2.1-mtp.dtb \
|
||||
apq8098-v2.1-cdp.dtb \
|
||||
apq8098-v2.1-qrd.dtb \
|
||||
apq8098-v2.1-mediabox.dtb \
|
||||
msm8998-v2.1-interposer-sdm660-cdp.dtb \
|
||||
msm8998-v2.1-interposer-sdm660-mtp.dtb \
|
||||
msm8998-v2.1-interposer-sdm660-qrd.dtb
|
||||
endif
|
||||
|
||||
dtb-$(CONFIG_ARCH_MSMHAMSTER) += msmhamster-rumi.dtb
|
||||
|
||||
|
@ -173,6 +199,7 @@ dtb-$(CONFIG_ARCH_SDM660) += sdm660-sim.dtb \
|
|||
sda660-pm660a-cdp.dtb \
|
||||
sda660-pm660a-mtp.dtb \
|
||||
sda660-pm660a-rcm.dtb \
|
||||
sda660-pm660a-qrd-hdk.dtb \
|
||||
sdm660-headset-jacktype-no-cdp.dtb \
|
||||
sdm660-headset-jacktype-no-rcm.dtb \
|
||||
sdm660-pm660a-headset-jacktype-no-cdp.dtb \
|
||||
|
@ -223,6 +250,7 @@ dtb-$(CONFIG_ARCH_SDM630) += sdm630-rumi.dtb \
|
|||
sda630-pm660a-mtp.dtb \
|
||||
sda630-pm660a-cdp.dtb \
|
||||
sda630-pm660a-rcm.dtb \
|
||||
sda630-pm660a-qrd-hdk.dtb \
|
||||
sdm630-headset-jacktype-no-cdp.dtb \
|
||||
sdm630-headset-jacktype-no-rcm.dtb \
|
||||
sdm630-pm660a-headset-jacktype-no-cdp.dtb \
|
||||
|
@ -230,6 +258,7 @@ dtb-$(CONFIG_ARCH_SDM630) += sdm630-rumi.dtb \
|
|||
|
||||
ifeq ($(CONFIG_ARM64),y)
|
||||
always := $(dtb-y)
|
||||
always += $(dtbo-y)
|
||||
subdir-y := $(dts-dirs)
|
||||
else
|
||||
targets += dtbs
|
||||
|
@ -240,4 +269,4 @@ $(obj)/../%.dtb: $(src)/%.dts FORCE
|
|||
|
||||
dtbs: $(addprefix $(obj)/../,$(dtb-y))
|
||||
endif
|
||||
clean-files := *.dtb
|
||||
clean-files := *.dtbo *.dtb
|
||||
|
|
|
@ -339,6 +339,77 @@
|
|||
|
||||
&mdss_mdp {
|
||||
qcom,mdss-pref-prim-intf = "dsi";
|
||||
qcom,sde-plane-id-map {
|
||||
qcom,sde-plane-id@0 {
|
||||
reg = <0x0>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "rgb0", "rgb1";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@1 {
|
||||
reg = <0x1>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "vig0", "vig1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@2 {
|
||||
reg = <0x2>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "cursor0";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@3 {
|
||||
reg = <0x3>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "rgb2";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@4 {
|
||||
reg = <0x4>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "vig2";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@5 {
|
||||
reg = <0x5>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "dma0";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@6 {
|
||||
reg = <0x6>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "cursor1";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@7 {
|
||||
reg = <0x7>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "rgb3";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@8 {
|
||||
reg = <0x8>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "vig3";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@9 {
|
||||
reg = <0x9>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "dma1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdss_dsi {
|
||||
|
@ -627,14 +698,14 @@
|
|||
|
||||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&compr>,
|
||||
<&afe>, <&lsm>, <&routing>, <&pcmnoirq>,
|
||||
<&loopback1>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-compr-dsp",
|
||||
"msm-pcm-routing", "msm-pcm-dsp-noirq",
|
||||
"msm-pcm-loopback.1";
|
||||
asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>,
|
||||
<&dai_mi2s_sec>, <&dai_mi2s>, <&dai_mi2s_quat>,
|
||||
|
@ -705,22 +776,9 @@
|
|||
};
|
||||
|
||||
qcom,msm-dai-tdm-tert-rx {
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <5>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
|
||||
36902 36904>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&tert_tdm_dout_active>;
|
||||
pinctrl-1 = <&tert_tdm_dout_sleep>;
|
||||
dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36904>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
qcom,msm-dai-tdm-quat-rx {
|
||||
|
@ -809,7 +867,7 @@
|
|||
qcom,vin-sel = <2>; /* 1.8 */
|
||||
qcom,out-strength = <1>;
|
||||
qcom,src-sel = <0>; /* GPIO */
|
||||
qcom,master-en = <1>; /* Enable GPIO */
|
||||
qcom,master-en = <0>; /* Disable GPIO */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -22,7 +22,7 @@
|
|||
model = "Qualcomm Technologies, Inc. MSM 8996pro AUTO ADP";
|
||||
compatible = "qcom,apq8096-adp", "qcom,msm8996", "qcom,adp";
|
||||
qcom,msm-id = <316 0x10001>;
|
||||
qcom,board-id = <0x02010019 0>;
|
||||
qcom,board-id = <0x02010019 0>, <0x00010001 0>;
|
||||
};
|
||||
|
||||
&spi_9 {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -21,7 +21,7 @@
|
|||
model = "Qualcomm Technologies, Inc. APQ 8096 pro v1.1 AUTO CDP";
|
||||
compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp";
|
||||
qcom,msm-id = <316 0x10001>;
|
||||
qcom,board-id = <0x03010001 0>;
|
||||
qcom,board-id = <0x03010001 0>, <0x00010001 0>;
|
||||
};
|
||||
|
||||
&spi_9 {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.dtsi"
|
||||
#include "apq8098.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2 CDP";
|
||||
compatible = "qcom,apq8998-cdp", "qcom,apq8998", "qcom,cdp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 CDP";
|
||||
compatible = "qcom,apq8098-cdp", "qcom,apq8098", "qcom,cdp";
|
||||
qcom,board-id = <1 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.1.dtsi"
|
||||
#include "apq8098.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-mtp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2.1 MTP";
|
||||
compatible = "qcom,apq8998-mtp", "qcom,apq8998", "qcom,mtp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 MTP";
|
||||
compatible = "qcom,apq8098-mtp", "qcom,apq8098", "qcom,mtp";
|
||||
qcom,board-id = <8 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.1.dtsi"
|
||||
#include "apq8098-v2.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2.1 CDP";
|
||||
compatible = "qcom,apq8998-cdp", "qcom,apq8998", "qcom,cdp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2 CDP";
|
||||
compatible = "qcom,apq8098-cdp", "qcom,apq8098", "qcom,cdp";
|
||||
qcom,board-id = <1 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.dtsi"
|
||||
#include "apq8098-v2.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-mtp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2 MTP";
|
||||
compatible = "qcom,apq8998-mtp", "qcom,apq8998", "qcom,mtp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2 MTP";
|
||||
compatible = "qcom,apq8098-mtp", "qcom,apq8098", "qcom,mtp";
|
||||
qcom,board-id = <8 0>;
|
||||
};
|
|
@ -13,11 +13,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.dtsi"
|
||||
#include "apq8098-v2.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-qrd-skuk-hdk.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 SKUK HDK";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 SKUK HDK";
|
||||
compatible = "qcom,msm8998-qrd", "qcom,msm8998", "qcom,qrd";
|
||||
qcom,board-id = <0x06000b 0x10>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.dtsi"
|
||||
#include "apq8098-v2.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-qrd.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2 QRD";
|
||||
compatible = "qcom,apq8998-qrd", "qcom,apq8998", "qcom,qrd";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2 QRD";
|
||||
compatible = "qcom,apq8098-qrd", "qcom,apq8098", "qcom,qrd";
|
||||
qcom,board-id = <11 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998.dtsi"
|
||||
#include "apq8098-v2.1.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 CDP";
|
||||
compatible = "qcom,apq8998-cdp", "qcom,apq8998", "qcom,cdp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2.1 CDP";
|
||||
compatible = "qcom,apq8098-cdp", "qcom,apq8098", "qcom,cdp";
|
||||
qcom,board-id = <1 0>;
|
||||
};
|
|
@ -12,12 +12,13 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.1.dtsi"
|
||||
#include "apq8098-v2.1.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2.1 mediabox";
|
||||
compatible = "qcom,apq8998-cdp", "qcom,apq8998", "qcom,cdp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2.1 mediabox";
|
||||
compatible = "qcom,apq8098-cdp", "qcom,apq8098", "qcom,cdp";
|
||||
qcom,board-id = <8 1>;
|
||||
};
|
||||
|
||||
|
@ -30,14 +31,9 @@
|
|||
};
|
||||
|
||||
&mdss_mdp {
|
||||
status = "disabled";
|
||||
qcom,mdss-pref-prim-intf = "hdmi";
|
||||
};
|
||||
|
||||
&msm_gpu {
|
||||
dma-coherent;
|
||||
};
|
||||
|
||||
&sde_hdmi {
|
||||
qcom,display-type = "primary";
|
||||
};
|
||||
|
@ -91,3 +87,34 @@
|
|||
&tspp {
|
||||
qcom,lpass-timer-tts = <1>;
|
||||
};
|
||||
|
||||
&snd_9335 {
|
||||
qcom,msm-mi2s-master = <1>, <1>, <1>, <0>;
|
||||
};
|
||||
|
||||
&wcd_usbc_analog_en1_gpio {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&wcd_usbc_analog_en2n_gpio {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&soc {
|
||||
qcom,msm-dai-mi2s {
|
||||
dai_mi2s3: qcom,msm-dai-q6-mi2s-quat {
|
||||
/* SD0 (1 << 0) | SD1 (1 << 1) | SD2 (1 << 2) */
|
||||
qcom,msm-mi2s-rx-lines = <0>;
|
||||
qcom,msm-mi2s-tx-lines = <15>; /* SD3 (1 << 3) */
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active
|
||||
&quat_mi2s_sd1_active
|
||||
&quat_mi2s_sd2_active
|
||||
&quat_mi2s_sd3_active>;
|
||||
pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_sd0_sleep
|
||||
&quat_mi2s_sd1_sleep
|
||||
&quat_mi2s_sd2_sleep
|
||||
&quat_mi2s_sd3_sleep>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998.dtsi"
|
||||
#include "apq8098-v2.1.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-mtp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 MTP";
|
||||
compatible = "qcom,apq8998-mtp", "qcom,apq8998", "qcom,mtp";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2.1 MTP";
|
||||
compatible = "qcom,apq8098-mtp", "qcom,apq8098", "qcom,mtp";
|
||||
qcom,board-id = <8 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -12,11 +12,12 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "apq8998-v2.1.dtsi"
|
||||
#include "apq8098-v2.1.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-qrd.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2.1 QRD";
|
||||
compatible = "qcom,apq8998-qrd", "qcom,apq8998", "qcom,qrd";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2.1 QRD";
|
||||
compatible = "qcom,apq8098-qrd", "qcom,apq8098", "qcom,qrd";
|
||||
qcom,board-id = <11 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -13,6 +13,6 @@
|
|||
#include "msm8998-v2.1.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2.1";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2.1";
|
||||
qcom,msm-id = <319 0x20001>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -13,6 +13,6 @@
|
|||
#include "msm8998-v2.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998 V2";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098 V2";
|
||||
qcom,msm-id = <319 0x20000>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -13,7 +13,7 @@
|
|||
#include "msm8998.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. APQ 8998";
|
||||
model = "Qualcomm Technologies, Inc. APQ 8098";
|
||||
qcom,msm-id = <319 0x10000>;
|
||||
};
|
||||
|
|
@ -15,6 +15,7 @@
|
|||
qcom,mdss-dsi-panel-name = "JDI a407 wqhd cmd mode dsi panel";
|
||||
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
|
||||
qcom,mdss-dsi-panel-framerate = <60>;
|
||||
qcom,mdss-dsi-panel-clockrate = <838600000>;
|
||||
qcom,mdss-dsi-virtual-channel-id = <0>;
|
||||
qcom,mdss-dsi-stream = <0>;
|
||||
qcom,mdss-dsi-panel-width = <720>;
|
||||
|
@ -79,6 +80,8 @@
|
|||
qcom,adjust-timer-wakeup-ms = <1>;
|
||||
qcom,mdss-dsi-reset-sequence = <1 20>, <0 10>, <1 20>;
|
||||
|
||||
qcom,dcs-cmd-by-left;
|
||||
|
||||
qcom,config-select = <&dsi_dual_jdi_a407_cmd_config0>;
|
||||
|
||||
dsi_dual_jdi_a407_cmd_config0: config0 {
|
||||
|
|
|
@ -192,8 +192,8 @@
|
|||
15 01 00 00 00 00 02 0b 55
|
||||
15 01 00 00 00 00 02 0c 14
|
||||
15 01 00 00 00 00 02 0d 28
|
||||
15 01 00 00 00 00 02 0e 00
|
||||
15 01 00 00 00 00 02 0f 00
|
||||
15 01 00 00 00 00 02 0e 40
|
||||
15 01 00 00 00 00 02 0f 80
|
||||
15 01 00 00 00 00 02 10 00
|
||||
15 01 00 00 00 00 02 11 22
|
||||
15 01 00 00 00 00 02 12 0a
|
||||
|
@ -208,17 +208,17 @@
|
|||
15 01 00 00 00 00 02 1d 00
|
||||
15 01 00 00 00 00 02 1e 80
|
||||
15 01 00 00 00 00 02 1f 00
|
||||
15 01 00 00 00 00 02 20 00
|
||||
15 01 00 00 00 00 02 20 03
|
||||
15 01 00 00 00 00 02 21 03
|
||||
15 01 00 00 00 00 02 22 22
|
||||
15 01 00 00 00 00 02 22 25
|
||||
15 01 00 00 00 00 02 23 25
|
||||
15 01 00 00 00 00 02 24 00
|
||||
15 01 00 00 00 00 02 25 a7
|
||||
15 01 00 00 00 00 02 26 00
|
||||
15 01 00 00 00 00 02 26 80
|
||||
15 01 00 00 00 00 02 27 a5
|
||||
15 01 00 00 00 00 02 28 06
|
||||
15 01 00 00 00 00 02 29 85
|
||||
15 01 00 00 00 00 02 2a 3f
|
||||
15 01 00 00 00 00 02 2a 30
|
||||
15 01 00 00 00 00 02 2b 97
|
||||
15 01 00 00 00 00 02 2f 25
|
||||
15 01 00 00 00 00 02 30 26
|
||||
|
@ -240,7 +240,7 @@
|
|||
15 01 00 00 00 00 02 45 00
|
||||
15 01 00 00 00 00 02 46 00
|
||||
15 01 00 00 00 00 02 47 00
|
||||
15 01 00 00 00 00 02 48 00
|
||||
15 01 00 00 00 00 02 48 03
|
||||
15 01 00 00 00 00 02 49 03
|
||||
15 01 00 00 00 00 02 4a 00
|
||||
15 01 00 00 00 00 02 4b 00
|
||||
|
@ -250,7 +250,7 @@
|
|||
15 01 00 00 00 00 02 4f 4c
|
||||
15 01 00 00 00 00 02 50 0d
|
||||
15 01 00 00 00 00 02 51 0e
|
||||
15 01 00 00 00 00 02 52 23
|
||||
15 01 00 00 00 00 02 52 20
|
||||
15 01 00 00 00 00 02 53 97
|
||||
15 01 00 00 00 00 02 54 4b
|
||||
15 01 00 00 00 00 02 55 4c
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
qcom,mdss-dsi-stream = <0>;
|
||||
qcom,mdss-dsi-panel-width = <1080>;
|
||||
qcom,mdss-dsi-panel-height = <1920>;
|
||||
qcom,mdss-dsi-h-front-porch = <32>;
|
||||
qcom,mdss-dsi-h-back-porch = <40>;
|
||||
qcom,mdss-dsi-h-pulse-width = <8>;
|
||||
qcom,mdss-dsi-h-front-porch = <120>;
|
||||
qcom,mdss-dsi-h-back-porch = <60>;
|
||||
qcom,mdss-dsi-h-pulse-width = <12>;
|
||||
qcom,mdss-dsi-h-sync-skew = <0>;
|
||||
qcom,mdss-dsi-v-back-porch = <16>;
|
||||
qcom,mdss-dsi-v-back-porch = <12>;
|
||||
qcom,mdss-dsi-v-front-porch = <8>;
|
||||
qcom,mdss-dsi-v-pulse-width = <4>;
|
||||
qcom,mdss-dsi-h-left-border = <0>;
|
||||
|
@ -37,6 +37,7 @@
|
|||
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
|
||||
qcom,mdss-dsi-on-command = [
|
||||
15 01 00 00 00 00 02 fe 0d
|
||||
15 01 00 00 00 00 02 0b c0
|
||||
15 01 00 00 00 00 02 42 00
|
||||
15 01 00 00 00 00 02 18 08
|
||||
15 01 00 00 00 00 02 08 41
|
||||
|
@ -52,8 +53,12 @@
|
|||
15 01 00 00 00 00 02 28 40
|
||||
15 01 00 00 02 00 02 29 4f
|
||||
15 01 00 00 00 00 02 fe 04
|
||||
15 01 00 00 00 00 02 0a d8
|
||||
15 01 00 00 00 00 02 0c e6
|
||||
15 01 00 00 00 00 02 4e 20
|
||||
15 01 00 00 00 00 02 4f 1b
|
||||
15 01 00 00 02 00 02 50 2f
|
||||
15 01 00 00 00 00 02 50 2f
|
||||
15 01 00 00 02 00 02 51 08
|
||||
15 01 00 00 00 00 02 fe 09
|
||||
15 01 00 00 00 00 02 00 08
|
||||
15 01 00 00 00 00 02 01 08
|
||||
|
@ -104,6 +109,8 @@
|
|||
qcom,mdss-dsi-lane-1-state;
|
||||
qcom,mdss-dsi-lane-2-state;
|
||||
qcom,mdss-dsi-lane-3-state;
|
||||
qcom,mdss-dsi-t-clk-post = <0x0d>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x2f>;
|
||||
qcom,mdss-dsi-wr-mem-start = <0x2c>;
|
||||
qcom,mdss-dsi-wr-mem-continue = <0x3c>;
|
||||
qcom,mdss-dsi-te-pin-select = <1>;
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&mdss_mdp {
|
||||
dsi_sharp_split_link_wuxga_video:
|
||||
qcom,mdss_dsi_sharp_split_link_wuxga_video {
|
||||
qcom,mdss-dsi-panel-name =
|
||||
"SHARP split DSI video mode dsi panel";
|
||||
qcom,mdss-dsi-panel-type = "dsi_video_mode";
|
||||
qcom,mdss-dsi-panel-framerate = <60>;
|
||||
qcom,mdss-dsi-virtual-channel-id = <0>;
|
||||
qcom,mdss-dsi-stream = <0>;
|
||||
qcom,mdss-dsi-panel-width = <600>;
|
||||
qcom,mdss-dsi-panel-height = <1920>;
|
||||
qcom,mdss-dsi-h-front-porch = <54>;
|
||||
qcom,mdss-dsi-h-back-porch = <4>;
|
||||
qcom,mdss-dsi-h-pulse-width = <6>;
|
||||
qcom,mdss-dsi-h-sync-skew = <0>;
|
||||
qcom,mdss-dsi-v-back-porch = <6>;
|
||||
qcom,mdss-dsi-v-front-porch = <12>;
|
||||
qcom,mdss-dsi-v-pulse-width = <2>;
|
||||
qcom,mdss-dsi-bpp = <24>;
|
||||
qcom,mdss-dsi-underflow-color = <0x654321>;
|
||||
qcom,mdss-dsi-border-color = <0>;
|
||||
qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00];
|
||||
qcom,mdss-dsi-pre-off-command = [05 01 00 00 02 00 02 28 00
|
||||
05 01 00 00 a0 00 02 10 00];
|
||||
qcom,mdss-dsi-post-panel-on-command =
|
||||
[05 01 00 00 a0 00 02 29 00];
|
||||
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
|
||||
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
|
||||
qcom,mdss-dsi-h-sync-pulse = <0>;
|
||||
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
|
||||
qcom,mdss-dsi-bllp-eof-power-mode;
|
||||
qcom,mdss-dsi-bllp-power-mode;
|
||||
qcom,mdss-dsi-lane-0-state;
|
||||
qcom,mdss-dsi-lane-1-state;
|
||||
qcom,mdss-dsi-lane-2-state;
|
||||
qcom,mdss-dsi-lane-3-state;
|
||||
qcom,mdss-dsi-panel-timings =
|
||||
[00 24 07 08 0e 14 07 09 07 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x0e>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x35>;
|
||||
qcom,mdss-dsi-bl-min-level = <1>;
|
||||
qcom,mdss-dsi-bl-max-level = <4095>;
|
||||
qcom,mdss-dsi-dma-trigger = "trigger_sw";
|
||||
qcom,mdss-dsi-mdp-trigger = "none";
|
||||
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
|
||||
qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>;
|
||||
qcom,mdss-dsi-bl-pmic-bank-select = <2>;
|
||||
qcom,mdss-dsi-reset-sequence = <1 2>, <0 5>, <1 120>;
|
||||
qcom,mdss-pan-physical-width-dimension = <83>;
|
||||
qcom,mdss-pan-physical-height-dimension = <133>;
|
||||
qcom,mdss-dsi-tx-eot-append;
|
||||
qcom,split-link-enabled = <1>;
|
||||
qcom,sublinks-count = <2>;
|
||||
qcom,lanes-per-sublink = <2>;
|
||||
};
|
||||
};
|
52
arch/arm/boot/dts/qcom/external-mdm9640.dtsi
Normal file
52
arch/arm/boot/dts/qcom/external-mdm9640.dtsi
Normal file
|
@ -0,0 +1,52 @@
|
|||
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&soc {
|
||||
mdm0: qcom,mdm0 {
|
||||
compatible = "qcom,ext-mdm9x45";
|
||||
cell-index = <0>;
|
||||
#address-cells = <0>;
|
||||
interrupt-parent = <&mdm0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0xffffffff>;
|
||||
interrupt-names =
|
||||
"err_fatal_irq",
|
||||
"status_irq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdm1: qcom,mdm1 {
|
||||
compatible = "qcom,ext-mdm9x45";
|
||||
cell-index = <0>;
|
||||
#address-cells = <0>;
|
||||
interrupt-parent = <&mdm1>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0xffffffff>;
|
||||
interrupt-names =
|
||||
"err_fatal_irq",
|
||||
"status_irq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdm2: qcom,mdm2 {
|
||||
compatible = "qcom,ext-mdm9x45";
|
||||
cell-index = <0>;
|
||||
#address-cells = <0>;
|
||||
interrupt-parent = <&mdm2>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0xffffffff>;
|
||||
interrupt-names =
|
||||
"err_fatal_irq",
|
||||
"status_irq";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
|
@ -157,6 +157,7 @@
|
|||
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>;
|
||||
qcom,deferred-regulator-disable-delay = <80>;
|
||||
vdd-supply = <&gdsc_gpu_cx>;
|
||||
clocks = <&clock_gcc GCC_GPU_CFG_AHB_CLK>,
|
||||
<&clock_gcc GCC_BIMC_GFX_CLK>,
|
||||
|
|
|
@ -176,4 +176,16 @@
|
|||
*/
|
||||
iommus = <&mmss_smmu 42>;
|
||||
};
|
||||
|
||||
iommu_coherent_test_device {
|
||||
compatible = "iommu-debug-test";
|
||||
/*
|
||||
* 43 shouldn't be used by anyone on the mmss_smmu. We just
|
||||
* need _something_ here to get this node recognized by the
|
||||
* SMMU driver. Our test uses ATOS, which doesn't use SIDs
|
||||
* anyways, so using a dummy value is ok.
|
||||
*/
|
||||
iommus = <&mmss_smmu 43>;
|
||||
dma-coherent;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -85,6 +85,10 @@
|
|||
compatible = "qcom,msm-pcm-loopback";
|
||||
};
|
||||
|
||||
trans_loopback: qcom,msm-transcode-loopback {
|
||||
compatible = "qcom,msm-transcode-loopback";
|
||||
};
|
||||
|
||||
qcom,msm-dai-mi2s {
|
||||
compatible = "qcom,msm-dai-mi2s";
|
||||
dai_mi2s0: qcom,msm-dai-q6-mi2s-prim {
|
||||
|
@ -377,14 +381,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36864>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36864>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -395,14 +400,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36865>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36865>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -413,14 +419,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36880>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36880>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -431,14 +438,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36881>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36881>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -449,14 +457,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36896>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -467,14 +476,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36897 >;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36897 >;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -485,14 +495,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -503,14 +514,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36913 >;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36913 >;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -445,14 +445,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36864>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36864>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -463,14 +464,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36865>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36865>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -481,14 +483,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36880>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36880>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -499,14 +502,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36881>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36881>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -517,14 +521,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36896>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -535,14 +540,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36897 >;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36897 >;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -553,14 +559,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -571,14 +578,15 @@
|
|||
qcom,msm-cpudai-tdm-group-num-ports = <1>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36913 >;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36913 >;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <1>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <1>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <1>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
interrupt-names = "kpdpwr", "resin",
|
||||
"resin-bark", "kpdpwr-resin-bark";
|
||||
qcom,pon-dbc-delay = <15625>;
|
||||
qcom,kpdpwr-sw-debounce;
|
||||
qcom,system-reset;
|
||||
qcom,store-hard-reset-reason;
|
||||
|
||||
|
@ -287,6 +288,18 @@
|
|||
qcom,vadc-thermal-node;
|
||||
};
|
||||
|
||||
chan@4f {
|
||||
label = "pa_therm0";
|
||||
reg = <0x4f>;
|
||||
qcom,decimation = <2>;
|
||||
qcom,pre-div-channel-scaling = <0>;
|
||||
qcom,calibration-type = "ratiometric";
|
||||
qcom,scale-function = <2>;
|
||||
qcom,hw-settle-time = <2>;
|
||||
qcom,fast-avg-setup = <0>;
|
||||
qcom,vadc-thermal-node;
|
||||
};
|
||||
|
||||
chan@1d {
|
||||
label = "drax_temp";
|
||||
reg = <0x1d>;
|
||||
|
@ -325,11 +338,12 @@
|
|||
|
||||
qcom,chgr@1000 {
|
||||
reg = <0x1000 0x100>;
|
||||
interrupts = <0x0 0x10 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x10 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x10 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x10 0x3 IRQ_TYPE_NONE>,
|
||||
<0x0 0x10 0x4 IRQ_TYPE_NONE>;
|
||||
interrupts =
|
||||
<0x0 0x10 0x0 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x10 0x1 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x10 0x2 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x10 0x3 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x10 0x4 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
interrupt-names = "chg-error",
|
||||
"chg-state-change",
|
||||
|
@ -340,10 +354,10 @@
|
|||
|
||||
qcom,otg@1100 {
|
||||
reg = <0x1100 0x100>;
|
||||
interrupts = <0x0 0x11 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x11 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x11 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x11 0x3 IRQ_TYPE_NONE>;
|
||||
interrupts = <0x0 0x11 0x0 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x11 0x1 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x11 0x2 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x11 0x3 IRQ_TYPE_EDGE_BOTH>;
|
||||
|
||||
interrupt-names = "otg-fail",
|
||||
"otg-overcurrent",
|
||||
|
@ -353,12 +367,13 @@
|
|||
|
||||
qcom,bat-if@1200 {
|
||||
reg = <0x1200 0x100>;
|
||||
interrupts = <0x0 0x12 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x12 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x12 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x12 0x3 IRQ_TYPE_NONE>,
|
||||
<0x0 0x12 0x4 IRQ_TYPE_NONE>,
|
||||
<0x0 0x12 0x5 IRQ_TYPE_NONE>;
|
||||
interrupts =
|
||||
<0x0 0x12 0x0 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x12 0x1 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x12 0x5 IRQ_TYPE_EDGE_BOTH>;
|
||||
|
||||
interrupt-names = "bat-temp",
|
||||
"bat-ocp",
|
||||
|
@ -370,14 +385,15 @@
|
|||
|
||||
qcom,usb-chgpth@1300 {
|
||||
reg = <0x1300 0x100>;
|
||||
interrupts = <0x0 0x13 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x3 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x4 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x5 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x6 IRQ_TYPE_NONE>,
|
||||
<0x0 0x13 0x7 IRQ_TYPE_NONE>;
|
||||
interrupts =
|
||||
<0x0 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x13 0x5 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x13 0x7 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
interrupt-names = "usbin-collapse",
|
||||
"usbin-lt-3p6v",
|
||||
|
@ -391,13 +407,14 @@
|
|||
|
||||
qcom,dc-chgpth@1400 {
|
||||
reg = <0x1400 0x100>;
|
||||
interrupts = <0x0 0x14 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x3 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x4 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x5 IRQ_TYPE_NONE>,
|
||||
<0x0 0x14 0x6 IRQ_TYPE_NONE>;
|
||||
interrupts =
|
||||
<0x0 0x14 0x0 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x1 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x2 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x3 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x4 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x5 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x14 0x6 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
interrupt-names = "dcin-collapse",
|
||||
"dcin-lt-3p6v",
|
||||
|
@ -410,14 +427,15 @@
|
|||
|
||||
qcom,chgr-misc@1600 {
|
||||
reg = <0x1600 0x100>;
|
||||
interrupts = <0x0 0x16 0x0 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x1 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x2 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x3 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x4 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x5 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x6 IRQ_TYPE_NONE>,
|
||||
<0x0 0x16 0x7 IRQ_TYPE_NONE>;
|
||||
interrupts =
|
||||
<0x0 0x16 0x0 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x0 0x16 0x2 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x16 0x3 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x16 0x4 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x16 0x5 IRQ_TYPE_EDGE_BOTH>,
|
||||
<0x0 0x16 0x6 IRQ_TYPE_EDGE_FALLING>,
|
||||
<0x0 0x16 0x7 IRQ_TYPE_EDGE_BOTH>;
|
||||
|
||||
interrupt-names = "wdog-snarl",
|
||||
"wdog-bark",
|
||||
|
@ -527,11 +545,14 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
qcom,pmic-revid = <&pm660_revid>;
|
||||
io-channels = <&pm660_rradc 0>;
|
||||
io-channel-names = "rradc_batt_id";
|
||||
io-channels = <&pm660_rradc 0>,
|
||||
<&pm660_rradc 7>;
|
||||
io-channel-names = "rradc_batt_id",
|
||||
"rradc_die_temp";
|
||||
qcom,rradc-base = <0x4500>;
|
||||
qcom,fg-esr-timer-awake = <96>;
|
||||
qcom,fg-esr-timer-asleep = <256>;
|
||||
qcom,fg-esr-timer-awake = <96 96>;
|
||||
qcom,fg-esr-timer-asleep = <256 256>;
|
||||
qcom,fg-esr-timer-charging = <0 96>;
|
||||
qcom,cycle-counter-en;
|
||||
status = "okay";
|
||||
|
||||
|
|
|
@ -330,9 +330,6 @@
|
|||
qcom,ires-ua = <12500>;
|
||||
qcom,hdrm-voltage-mv = <325>;
|
||||
qcom,hdrm-vol-hi-lo-win-mv = <100>;
|
||||
pinctrl-names = "led_enable","led_disable";
|
||||
pinctrl-0 = <&led_enable>;
|
||||
pinctrl-1 = <&led_disable>;
|
||||
};
|
||||
|
||||
pm660l_torch0: qcom,torch_0 {
|
||||
|
@ -369,9 +366,6 @@
|
|||
qcom,ires-ua = <12500>;
|
||||
qcom,hdrm-voltage-mv = <325>;
|
||||
qcom,hdrm-vol-hi-lo-win-mv = <100>;
|
||||
pinctrl-names = "led_enable","led_disable";
|
||||
pinctrl-0 = <&led_enable>;
|
||||
pinctrl-1 = <&led_disable>;
|
||||
};
|
||||
|
||||
pm660l_switch0: qcom,led_switch_0 {
|
||||
|
@ -418,7 +412,9 @@
|
|||
compatible = "qcom,qpnp-oledb-regulator";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
qcom,pmic-revid = <&pm660l_revid>;
|
||||
reg = <0xe000 0x100>;
|
||||
qcom,pbs-client = <&pm660l_pbs>;
|
||||
|
||||
label = "oledb";
|
||||
regulator-name = "regulator-oledb";
|
||||
|
@ -466,6 +462,8 @@
|
|||
qcom,qpnp-lab-slew-rate = <5000>;
|
||||
qcom,qpnp-lab-init-voltage = <4600000>;
|
||||
qcom,qpnp-lab-init-amoled-voltage = <4600000>;
|
||||
|
||||
qcom,notify-lab-vreg-ok-sts;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -337,8 +337,9 @@
|
|||
io-channels = <&pmi8998_rradc 0>;
|
||||
io-channel-names = "rradc_batt_id";
|
||||
qcom,rradc-base = <0x4500>;
|
||||
qcom,fg-esr-timer-awake = <96>;
|
||||
qcom,fg-esr-timer-asleep = <256>;
|
||||
qcom,fg-esr-timer-awake = <96 96>;
|
||||
qcom,fg-esr-timer-asleep = <256 256>;
|
||||
qcom,fg-esr-timer-charging = <0 96>;
|
||||
qcom,cycle-counter-en;
|
||||
status = "okay";
|
||||
|
||||
|
@ -540,6 +541,10 @@
|
|||
regulator-min-microvolt = <4600000>;
|
||||
regulator-max-microvolt = <6000000>;
|
||||
|
||||
interrupts = <0x3 0xdc 0x2
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ibb-sc-err";
|
||||
|
||||
qcom,qpnp-ibb-min-voltage = <1400000>;
|
||||
qcom,qpnp-ibb-step-size = <100000>;
|
||||
qcom,qpnp-ibb-slew-rate = <2000000>;
|
||||
|
@ -573,8 +578,11 @@
|
|||
regulator-max-microvolt = <6000000>;
|
||||
|
||||
interrupts = <0x3 0xde 0x0
|
||||
IRQ_TYPE_EDGE_RISING>,
|
||||
<0x3 0xde 0x1
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "lab-vreg-ok";
|
||||
interrupt-names = "lab-vreg-ok", "lab-sc-err";
|
||||
|
||||
qcom,qpnp-lab-min-voltage = <4600000>;
|
||||
qcom,qpnp-lab-step-size = <100000>;
|
||||
qcom,qpnp-lab-slew-rate = <5000>;
|
||||
|
@ -712,9 +720,6 @@
|
|||
qcom,ires-ua = <12500>;
|
||||
qcom,hdrm-voltage-mv = <325>;
|
||||
qcom,hdrm-vol-hi-lo-win-mv = <100>;
|
||||
pinctrl-names = "led_enable","led_disable";
|
||||
pinctrl-0 = <&led_enable>;
|
||||
pinctrl-1 = <&led_disable>;
|
||||
};
|
||||
|
||||
pmi8998_torch0: qcom,torch_0 {
|
||||
|
@ -751,9 +756,6 @@
|
|||
qcom,ires-ua = <12500>;
|
||||
qcom,hdrm-voltage-mv = <325>;
|
||||
qcom,hdrm-vol-hi-lo-win-mv = <100>;
|
||||
pinctrl-names = "led_enable","led_disable";
|
||||
pinctrl-0 = <&led_enable>;
|
||||
pinctrl-1 = <&led_disable>;
|
||||
};
|
||||
|
||||
pmi8998_switch0: qcom,led_switch_0 {
|
||||
|
|
|
@ -548,6 +548,77 @@
|
|||
|
||||
&mdss_mdp {
|
||||
qcom,mdss-pref-prim-intf = "dsi";
|
||||
qcom,sde-plane-id-map {
|
||||
qcom,sde-plane-id@0 {
|
||||
reg = <0x0>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "rgb0", "rgb1";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@1 {
|
||||
reg = <0x1>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "vig0", "vig1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@2 {
|
||||
reg = <0x2>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "cursor0";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@3 {
|
||||
reg = <0x3>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "rgb2";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@4 {
|
||||
reg = <0x4>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "vig2";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@5 {
|
||||
reg = <0x5>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "dma0";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@6 {
|
||||
reg = <0x6>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "cursor1";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@7 {
|
||||
reg = <0x7>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "rgb3";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@8 {
|
||||
reg = <0x8>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "vig3";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@9 {
|
||||
reg = <0x9>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "dma1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dsi_adv_7533_1 {
|
||||
|
@ -797,6 +868,13 @@
|
|||
|
||||
qcom,ntn-rst-delay-msec = <100>;
|
||||
qcom,ntn-rc-num = <1>;
|
||||
|
||||
qcom,msm-bus,name = "ntn";
|
||||
qcom,msm-bus,num-cases = <2>;
|
||||
qcom,msm-bus,num-paths = <1>;
|
||||
qcom,msm-bus,vectors-KBps =
|
||||
<100 512 0 0>,
|
||||
<100 512 207108 14432000>;
|
||||
};
|
||||
|
||||
i2c@75ba000 {
|
||||
|
@ -919,14 +997,14 @@
|
|||
|
||||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&compr>,
|
||||
<&afe>, <&lsm>, <&routing>, <&pcmnoirq>,
|
||||
<&loopback1>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-compr-dsp",
|
||||
"msm-pcm-routing", "msm-pcm-dsp-noirq",
|
||||
"msm-pcm-loopback.1";
|
||||
asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>,
|
||||
<&dai_mi2s_sec>, <&dai_mi2s>, <&dai_mi2s_quat>,
|
||||
|
@ -1010,22 +1088,9 @@
|
|||
};
|
||||
|
||||
qcom,msm-dai-tdm-tert-rx {
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <5>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
|
||||
36902 36904>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&tert_tdm_dout_active>;
|
||||
pinctrl-1 = <&tert_tdm_dout_sleep>;
|
||||
dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36904>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
qcom,msm-dai-tdm-quat-rx {
|
||||
|
@ -1125,7 +1190,7 @@
|
|||
qcom,vin-sel = <2>; /* 1.8 */
|
||||
qcom,out-strength = <1>;
|
||||
qcom,src-sel = <0>; /* GPIO */
|
||||
qcom,master-en = <1>; /* Enable GPIO */
|
||||
qcom,master-en = <0>; /* Disable GPIO */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -1173,9 +1238,6 @@
|
|||
|
||||
&usb2s {
|
||||
status = "ok";
|
||||
dwc3@7600000 {
|
||||
dr_mode = "host";
|
||||
};
|
||||
};
|
||||
|
||||
&usb3 {
|
||||
|
|
|
@ -302,7 +302,7 @@
|
|||
&mdss_hdmi_cec_suspend>;
|
||||
};
|
||||
|
||||
#include "msm8996-mdss-panels.dtsi"
|
||||
#include "msm8996-sde-display.dtsi"
|
||||
|
||||
&pmx_mdss {
|
||||
mdss_dsi_active: mdss_dsi_active {
|
||||
|
@ -335,32 +335,201 @@
|
|||
|
||||
&mdss_mdp {
|
||||
qcom,mdss-pref-prim-intf = "dsi";
|
||||
qcom,sde-plane-id-map {
|
||||
qcom,sde-plane-id@0 {
|
||||
reg = <0x0>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "rgb0", "rgb1";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@1 {
|
||||
reg = <0x1>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "vig0", "vig1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@2 {
|
||||
reg = <0x2>;
|
||||
qcom,display-type = "primary";
|
||||
qcom,plane-name = "cursor0";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@3 {
|
||||
reg = <0x3>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "rgb2";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@4 {
|
||||
reg = <0x4>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "vig2";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@5 {
|
||||
reg = <0x5>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "dma0";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@6 {
|
||||
reg = <0x6>;
|
||||
qcom,display-type = "secondary";
|
||||
qcom,plane-name = "cursor1";
|
||||
qcom,plane-type = "cursor";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@7 {
|
||||
reg = <0x7>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "rgb3";
|
||||
qcom,plane-type = "primary";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@8 {
|
||||
reg = <0x8>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "vig3";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
|
||||
qcom,sde-plane-id@9 {
|
||||
reg = <0x9>;
|
||||
qcom,display-type = "tertiary";
|
||||
qcom,plane-name = "dma1";
|
||||
qcom,plane-type = "overlay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dsi_adv_7533_1 {
|
||||
qcom,dsi-display-active;
|
||||
qcom,dsi-panel = <&dsi_adv7533_1080p>;
|
||||
|
||||
qcom,panel-supply-entries {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,panel-supply-entry@0 {
|
||||
reg = <0>;
|
||||
qcom,supply-name = "vdd";
|
||||
qcom,supply-min-voltage = <3300000>;
|
||||
qcom,supply-max-voltage = <3300000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
|
||||
qcom,panel-supply-entry@1 {
|
||||
reg = <1>;
|
||||
qcom,supply-name = "vddio";
|
||||
qcom,supply-min-voltage = <1800000>;
|
||||
qcom,supply-max-voltage = <1800000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dsi_adv_7533_2 {
|
||||
qcom,dsi-display-active;
|
||||
qcom,dsi-panel = <&dsi_adv7533_1080p>;
|
||||
|
||||
qcom,panel-supply-entries {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,panel-supply-entry@0 {
|
||||
reg = <0>;
|
||||
qcom,supply-name = "vdd";
|
||||
qcom,supply-min-voltage = <3300000>;
|
||||
qcom,supply-max-voltage = <3300000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
|
||||
qcom,panel-supply-entry@1 {
|
||||
reg = <1>;
|
||||
qcom,supply-name = "vddio";
|
||||
qcom,supply-min-voltage = <1800000>;
|
||||
qcom,supply-max-voltage = <1800000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdss_dsi {
|
||||
hw-config = "split_dsi";
|
||||
hw-config = "dual_dsi";
|
||||
};
|
||||
|
||||
&mdss_dsi0 {
|
||||
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_video>;
|
||||
qcom,dsi-pref-prim-pan = <&dsi_adv7533_1080p>;
|
||||
pinctrl-names = "mdss_default", "mdss_sleep";
|
||||
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
|
||||
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
|
||||
qcom,platform-enable-gpio = <&tlmm 70 0>;
|
||||
qcom,platform-te-gpio = <&tlmm 10 0>;
|
||||
qcom,platform-reset-gpio = <&tlmm 8 0>;
|
||||
qcom,platform-bklight-en-gpio = <&pm8994_gpios 10 0>;
|
||||
qcom,display-id = "primary";
|
||||
qcom,bridge-index = <0>;
|
||||
|
||||
qcom,panel-supply-entries {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,panel-supply-entry@0 {
|
||||
reg = <0>;
|
||||
qcom,supply-name = "vdd";
|
||||
qcom,supply-min-voltage = <3300000>;
|
||||
qcom,supply-max-voltage = <3300000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
|
||||
qcom,panel-supply-entry@1 {
|
||||
reg = <1>;
|
||||
qcom,supply-name = "vddio";
|
||||
qcom,supply-min-voltage = <1800000>;
|
||||
qcom,supply-max-voltage = <1800000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdss_dsi1 {
|
||||
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_video>;
|
||||
qcom,dsi-pref-prim-pan = <&dsi_adv7533_1080p>;
|
||||
pinctrl-names = "mdss_default", "mdss_sleep";
|
||||
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
|
||||
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
|
||||
qcom,platform-enable-gpio = <&tlmm 70 0>;
|
||||
qcom,platform-te-gpio = <&tlmm 10 0>;
|
||||
qcom,platform-reset-gpio = <&tlmm 8 0>;
|
||||
qcom,platform-bklight-en-gpio = <&pm8994_gpios 10 0>;
|
||||
qcom,display-id = "tertiary";
|
||||
qcom,bridge-index = <1>;
|
||||
|
||||
qcom,panel-supply-entries {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,panel-supply-entry@0 {
|
||||
reg = <0>;
|
||||
qcom,supply-name = "vdd";
|
||||
qcom,supply-min-voltage = <3300000>;
|
||||
qcom,supply-max-voltage = <3300000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
|
||||
qcom,panel-supply-entry@1 {
|
||||
reg = <1>;
|
||||
qcom,supply-name = "vddio";
|
||||
qcom,supply-min-voltage = <1800000>;
|
||||
qcom,supply-max-voltage = <1800000>;
|
||||
qcom,supply-enable-load = <100000>;
|
||||
qcom,supply-disable-load = <100>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dsi_dual_sharp_video {
|
||||
|
@ -454,7 +623,7 @@
|
|||
};
|
||||
|
||||
&soc {
|
||||
qcom,ntn_avb {
|
||||
ntn1: ntn_avb@1 { /* Neutrno device on RC1*/
|
||||
compatible = "qcom,ntn_avb";
|
||||
|
||||
ntn-rst-gpio = <&pm8994_gpios 13 0>;
|
||||
|
@ -465,6 +634,28 @@
|
|||
|
||||
qcom,ntn-rst-delay-msec = <100>;
|
||||
qcom,ntn-rc-num = <1>;
|
||||
qcom,ntn-bus-num = <1>;
|
||||
|
||||
qcom,msm-bus,name = "ntn";
|
||||
qcom,msm-bus,num-cases = <2>;
|
||||
qcom,msm-bus,num-paths = <1>;
|
||||
qcom,msm-bus,vectors-KBps =
|
||||
<100 512 0 0>,
|
||||
<100 512 207108 14432000>;
|
||||
};
|
||||
|
||||
ntn2: ntn_avb@2 { /*Neutrino device on RC2*/
|
||||
compatible = "qcom,ntn_avb";
|
||||
qcom,ntn-rst-delay-msec = <100>;
|
||||
qcom,ntn-rc-num = <2>;
|
||||
qcom,ntn-bus-num = <1>;
|
||||
|
||||
qcom,msm-bus,name = "ntn";
|
||||
qcom,msm-bus,num-cases = <2>;
|
||||
qcom,msm-bus,num-paths = <1>;
|
||||
qcom,msm-bus,vectors-KBps =
|
||||
<108 512 0 0>,
|
||||
<108 512 207108 14432000>;
|
||||
};
|
||||
|
||||
i2c@75ba000 {
|
||||
|
@ -509,9 +700,8 @@
|
|||
pinctrl-1 = <&adv7533_0_int_suspend
|
||||
&adv7533_0_hpd_int_suspend
|
||||
&adv7533_0_switch_suspend>;
|
||||
adi,irq-gpio = <&tlmm 106 0x2002>;
|
||||
adi,hpd-irq-gpio = <&tlmm 106 0x2003>;
|
||||
adi,switch-gpio = <&tlmm 105 0x1>;
|
||||
adi,irq-gpio = <&tlmm 71 0x2002>;
|
||||
adi,switch-gpio = <&tlmm 72 0x1>;
|
||||
};
|
||||
|
||||
adv7533@39 {
|
||||
|
@ -530,9 +720,8 @@
|
|||
pinctrl-1 = <&adv7533_1_int_suspend
|
||||
&adv7533_1_hpd_int_suspend
|
||||
&adv7533_1_switch_suspend>;
|
||||
adi,irq-gpio = <&tlmm 108 0x2002>;
|
||||
adi,hpd-irq-gpio = <&tlmm 106 0x2003>;
|
||||
adi,switch-gpio = <&tlmm 107 0x0>;
|
||||
adi,irq-gpio = <&tlmm 73 0x2002>;
|
||||
adi,switch-gpio = <&tlmm 74 0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -631,14 +820,14 @@
|
|||
|
||||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&compr>,
|
||||
<&afe>, <&lsm>, <&routing>, <&pcmnoirq>,
|
||||
<&loopback1>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-compr-dsp",
|
||||
"msm-pcm-routing", "msm-pcm-dsp-noirq",
|
||||
"msm-pcm-loopback.1";
|
||||
asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>,
|
||||
<&dai_mi2s_sec>, <&dai_mi2s>, <&dai_mi2s_quat>,
|
||||
|
@ -725,22 +914,9 @@
|
|||
};
|
||||
|
||||
qcom,msm-dai-tdm-tert-rx {
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <5>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
|
||||
36902 36904>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&tert_tdm_dout_active>;
|
||||
pinctrl-1 = <&tert_tdm_dout_sleep>;
|
||||
dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36904>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
qcom,msm-dai-tdm-quat-rx {
|
||||
|
@ -840,7 +1016,7 @@
|
|||
qcom,vin-sel = <2>; /* 1.8 */
|
||||
qcom,out-strength = <1>;
|
||||
qcom,src-sel = <0>; /* GPIO */
|
||||
qcom,master-en = <1>; /* Enable GPIO */
|
||||
qcom,master-en = <0>; /* Disable GPIO */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -1017,6 +1193,7 @@
|
|||
qcom,msi-gicm-addr = <0x09BD0040>;
|
||||
qcom,msi-gicm-base = <0x240>;
|
||||
|
||||
/delete-property/ qcom,boot-option;
|
||||
/delete-property/ qcom,l1-supported;
|
||||
/delete-property/ qcom,l1ss-supported;
|
||||
/delete-property/ qcom,aux-clk-sync;
|
||||
|
@ -1027,6 +1204,7 @@
|
|||
perst-gpio = <&tlmm 90 0>;
|
||||
wake-gpio = <&tlmm 54 0>;
|
||||
|
||||
/delete-property/ qcom,boot-option;
|
||||
/delete-property/ qcom,l1-supported;
|
||||
/delete-property/ qcom,l1ss-supported;
|
||||
/delete-property/ qcom,aux-clk-sync;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -128,9 +128,9 @@
|
|||
cam_vio-supply = <&pm8994_lvs1>;
|
||||
cam_vana-supply = <&pm8994_l17>;
|
||||
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
|
||||
qcom,cam-vreg-min-voltage = <1300000 0 2500000>;
|
||||
qcom,cam-vreg-max-voltage = <1300000 0 2500000>;
|
||||
qcom,cam-vreg-op-mode = <105000 0 80000>;
|
||||
qcom,cam-vreg-min-voltage = <1300000 0 1800000>;
|
||||
qcom,cam-vreg-max-voltage = <1300000 0 1800000>;
|
||||
qcom,cam-vreg-op-mode = <1300000 0 1800000>;
|
||||
qcom,gpio-no-mux = <0>;
|
||||
pinctrl-names = "cam_default", "cam_suspend";
|
||||
pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>;
|
||||
|
@ -167,9 +167,9 @@
|
|||
cam_vio-supply = <&pm8994_lvs1>;
|
||||
cam_vana-supply = <&pmi8994_boostbypass>;
|
||||
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
|
||||
qcom,cam-vreg-min-voltage = <1000000 0 3150000>;
|
||||
qcom,cam-vreg-max-voltage = <1000000 0 3600000>;
|
||||
qcom,cam-vreg-op-mode = <105000 0 80000>;
|
||||
qcom,cam-vreg-min-voltage = <800000 0 3150000>;
|
||||
qcom,cam-vreg-max-voltage = <800000 0 3600000>;
|
||||
qcom,cam-vreg-op-mode = <800000 0 80000>;
|
||||
qcom,gpio-no-mux = <0>;
|
||||
pinctrl-names = "cam_default", "cam_suspend";
|
||||
pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>;
|
||||
|
@ -208,9 +208,9 @@
|
|||
cam_vio-supply = <&pm8994_lvs1>;
|
||||
cam_vana-supply = <&pm8994_l29>;
|
||||
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
|
||||
qcom,cam-vreg-min-voltage = <1000000 0 2800000>;
|
||||
qcom,cam-vreg-max-voltage = <1000000 0 2800000>;
|
||||
qcom,cam-vreg-op-mode = <105000 0 80000>;
|
||||
qcom,cam-vreg-min-voltage = <800000 0 2500000>;
|
||||
qcom,cam-vreg-max-voltage = <800000 0 2500000>;
|
||||
qcom,cam-vreg-op-mode = <800000 0 2500000>;
|
||||
qcom,gpio-no-mux = <0>;
|
||||
pinctrl-names = "cam_default", "cam_suspend";
|
||||
pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>;
|
||||
|
|
|
@ -280,6 +280,7 @@
|
|||
0 0 0 0
|
||||
0 0 0
|
||||
0 0 0>;
|
||||
qcom,clock-cntl-support;
|
||||
qcom,clock-control = "NO_SET_RATE", "NO_SET_RATE",
|
||||
"NO_SET_RATE", "NO_SET_RATE",
|
||||
"INIT_RATE",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -523,14 +523,14 @@
|
|||
|
||||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&compr>,
|
||||
<&afe>, <&lsm>, <&routing>, <&pcmnoirq>,
|
||||
<&loopback1>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-compr-dsp",
|
||||
"msm-pcm-routing", "msm-pcm-dsp-noirq",
|
||||
"msm-pcm-loopback.1";
|
||||
asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>,
|
||||
<&dai_mi2s_sec>, <&dai_mi2s>, <&dai_mi2s_quat>,
|
||||
|
@ -595,22 +595,9 @@
|
|||
};
|
||||
|
||||
qcom,msm-dai-tdm-tert-rx {
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <5>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
|
||||
36902 36904>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&tert_tdm_dout_active>;
|
||||
pinctrl-1 = <&tert_tdm_dout_sleep>;
|
||||
dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36904>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
qcom,msm-dai-tdm-quat-rx {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2014-2016, 2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -1950,4 +1950,21 @@
|
|||
regulator-ramp-delay = <500>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ncp6335d_vreg: ncp6335d-regulator@68 {
|
||||
compatible = "onnn,ncp6335d-regulator";
|
||||
reg = <0x68>;
|
||||
vin-supply = <&hl7509_en_vreg>;
|
||||
onnn,vsel = <0>;
|
||||
onnn,slew-ns = <2666>;
|
||||
onnn,step-size = <6250>;
|
||||
onnn,min-slew-ns = <333>;
|
||||
onnn,max-slew-ns = <2666>;
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1143750>;
|
||||
onnn,min-setpoint = <600000>;
|
||||
onnn,discharge-enable;
|
||||
onnn,restore-reg;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1385,7 +1385,7 @@
|
|||
|
||||
iommus = <&anoc0_smmu>;
|
||||
|
||||
qcom,ep-wakeirq;
|
||||
qcom,boot-option = <0x1>;
|
||||
|
||||
linux,pci-domain = <0>;
|
||||
|
||||
|
@ -1538,7 +1538,7 @@
|
|||
|
||||
iommus = <&anoc0_smmu>;
|
||||
|
||||
qcom,ep-wakeirq;
|
||||
qcom,boot-option = <0x1>;
|
||||
|
||||
qcom,ep-latency = <10>;
|
||||
|
||||
|
@ -1691,7 +1691,7 @@
|
|||
|
||||
iommus = <&anoc0_smmu>;
|
||||
|
||||
qcom,ep-wakeirq;
|
||||
qcom,boot-option = <0x1>;
|
||||
|
||||
qcom,ep-latency = <10>;
|
||||
|
||||
|
@ -1737,6 +1737,7 @@
|
|||
|
||||
mhi: qcom,mhi {
|
||||
compatible = "qcom,mhi";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
qcom,ipc-spinlock@740000 {
|
||||
|
@ -3356,48 +3357,34 @@
|
|||
qcom,msm-cpudai-tdm-group-id = <37137>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <4>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36881 36883 36885 36887>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <0>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36881>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_sec_tdm_tx_1: qcom,msm-dai-q6-tdm-sec-tx-1 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36883>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_sec_tdm_tx_2: qcom,msm-dai-q6-tdm-sec-tx-2 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36885>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_sec_tdm_tx_3: qcom,msm-dai-q6-tdm-sec-tx-3 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36887>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -3405,50 +3392,43 @@
|
|||
qcom,msm-dai-tdm-tert-rx {
|
||||
compatible = "qcom,msm-dai-tdm";
|
||||
qcom,msm-cpudai-tdm-group-id = <37152>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <4>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900 36902>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <0>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <5>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
|
||||
36902 36904>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36896>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_rx_1: qcom,msm-dai-q6-tdm-tert-rx-1 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36898>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_rx_2: qcom,msm-dai-q6-tdm-tert-rx-2 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36900>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_rx_3: qcom,msm-dai-q6-tdm-tert-rx-3 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36902>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36904>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -3458,48 +3438,34 @@
|
|||
qcom,msm-cpudai-tdm-group-id = <37153>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <4>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36897 36899 36901 36903>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <0>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36897>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_tx_1: qcom,msm-dai-q6-tdm-tert-tx-1 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36899>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_tx_2: qcom,msm-dai-q6-tdm-tert-tx-2 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36901>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_tert_tdm_tx_3: qcom,msm-dai-q6-tdm-tert-tx-3 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36903>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -3509,48 +3475,34 @@
|
|||
qcom,msm-cpudai-tdm-group-id = <37168>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <4>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36912 36914 36916 36918>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <0>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36912>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_rx_1: qcom,msm-dai-q6-tdm-quat-rx-1 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36914>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_rx_2: qcom,msm-dai-q6-tdm-quat-rx-2 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36916>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_rx_3: qcom,msm-dai-q6-tdm-quat-rx-3 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36918>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -3560,48 +3512,34 @@
|
|||
qcom,msm-cpudai-tdm-group-id = <37169>;
|
||||
qcom,msm-cpudai-tdm-group-num-ports = <4>;
|
||||
qcom,msm-cpudai-tdm-group-port-id = <36913 36915 36917 36919>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <0>;
|
||||
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
|
||||
qcom,msm-cpudai-tdm-clk-internal = <0>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36913>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_tx_1: qcom,msm-dai-q6-tdm-quat-tx-1 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36915>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_tx_2: qcom,msm-dai-q6-tdm-quat-tx-2 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36917>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
|
||||
dai_quat_tdm_tx_3: qcom,msm-dai-q6-tdm-quat-tx-3 {
|
||||
compatible = "qcom,msm-dai-q6-tdm";
|
||||
qcom,msm-cpudai-tdm-dev-id = <36919>;
|
||||
qcom,msm-cpudai-tdm-sync-mode = <1>;
|
||||
qcom,msm-cpudai-tdm-sync-src = <0>;
|
||||
qcom,msm-cpudai-tdm-data-out = <0>;
|
||||
qcom,msm-cpudai-tdm-invert-sync = <0>;
|
||||
qcom,msm-cpudai-tdm-data-delay = <0>;
|
||||
qcom,msm-cpudai-tdm-data-align = <0>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1505,5 +1505,62 @@
|
|||
qcom,bus-max = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevels-2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
qcom,speed-bin = <2>;
|
||||
|
||||
qcom,initial-pwrlevel = <3>;
|
||||
|
||||
qcom,gpu-pwrlevel@0 {
|
||||
reg = <0>;
|
||||
qcom,gpu-freq = <510000000>;
|
||||
qcom,bus-freq = <11>;
|
||||
qcom,bus-min = <11>;
|
||||
qcom,bus-max = <11>;
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevel@1 {
|
||||
reg = <1>;
|
||||
qcom,gpu-freq = <401800000>;
|
||||
qcom,bus-freq = <8>;
|
||||
qcom,bus-min = <7>;
|
||||
qcom,bus-max = <9>;
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevel@2 {
|
||||
reg = <2>;
|
||||
qcom,gpu-freq = <315000000>;
|
||||
qcom,bus-freq = <6>;
|
||||
qcom,bus-min = <5>;
|
||||
qcom,bus-max = <7>;
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevel@3 {
|
||||
reg = <3>;
|
||||
qcom,gpu-freq = <214000000>;
|
||||
qcom,bus-freq = <4>;
|
||||
qcom,bus-min = <3>;
|
||||
qcom,bus-max = <5>;
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevel@4 {
|
||||
reg = <4>;
|
||||
qcom,gpu-freq = <133000000>;
|
||||
qcom,bus-freq = <3>;
|
||||
qcom,bus-min = <2>;
|
||||
qcom,bus-max = <4>;
|
||||
};
|
||||
|
||||
qcom,gpu-pwrlevel@5 {
|
||||
reg = <5>;
|
||||
qcom,gpu-freq = <27000000>;
|
||||
qcom,bus-freq = <0>;
|
||||
qcom,bus-min = <0>;
|
||||
qcom,bus-max = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
|
||||
<&pcm_noirq>, <&cpe3>;
|
||||
<&pcm_noirq>, <&cpe3>, <&trans_loopback>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
|
@ -97,7 +97,7 @@
|
|||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-cpe-lsm",
|
||||
"msm-compr-dsp", "msm-pcm-dsp-noirq",
|
||||
"msm-cpe-lsm.3";
|
||||
"msm-cpe-lsm.3", "msm-transcode-loopback";
|
||||
asoc-cpu = <&dai_hdmi>, <&dai_dp>,
|
||||
<&dai_mi2s0>, <&dai_mi2s1>,
|
||||
<&dai_mi2s2>, <&dai_mi2s3>,
|
||||
|
@ -222,14 +222,15 @@
|
|||
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
|
||||
<&loopback>, <&compress>, <&hostless>,
|
||||
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
|
||||
<&pcm_noirq>;
|
||||
<&pcm_noirq>, <&trans_loopback>;
|
||||
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
|
||||
"msm-pcm-dsp.2", "msm-voip-dsp",
|
||||
"msm-pcm-voice", "msm-pcm-loopback",
|
||||
"msm-compress-dsp", "msm-pcm-hostless",
|
||||
"msm-pcm-afe", "msm-lsm-client",
|
||||
"msm-pcm-routing", "msm-cpe-lsm",
|
||||
"msm-compr-dsp", "msm-pcm-dsp-noirq";
|
||||
"msm-compr-dsp", "msm-pcm-dsp-noirq",
|
||||
"msm-transcode-loopback";
|
||||
asoc-cpu = <&dai_hdmi>, <&dai_dp>,
|
||||
<&dai_mi2s0>, <&dai_mi2s1>,
|
||||
<&dai_mi2s2>, <&dai_mi2s3>,
|
||||
|
|
|
@ -334,19 +334,22 @@
|
|||
qcom,gpio-no-mux = <0>;
|
||||
pinctrl-names = "cam_default", "cam_suspend";
|
||||
pinctrl-0 = <&cam_sensor_mclk1_active
|
||||
&cam_sensor_front_active>;
|
||||
&cam_sensor_front_active &led_enable>;
|
||||
pinctrl-1 = <&cam_sensor_mclk1_suspend
|
||||
&cam_sensor_front_suspend>;
|
||||
&cam_sensor_front_suspend &led_disable>;
|
||||
gpios = <&tlmm 14 0>,
|
||||
<&tlmm 28 0>,
|
||||
<&pm8998_gpios 9 0>;
|
||||
<&pm8998_gpios 9 0>,
|
||||
<&tlmm 21 0>;
|
||||
qcom,gpio-reset = <1>;
|
||||
qcom,gpio-vdig = <2>;
|
||||
qcom,gpio-req-tbl-num = <0 1 2>;
|
||||
qcom,gpio-req-tbl-flags = <1 0 0>;
|
||||
qcom,gpio-flash-en = <3>;
|
||||
qcom,gpio-req-tbl-num = <0 1 2 3>;
|
||||
qcom,gpio-req-tbl-flags = <1 0 0 0>;
|
||||
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
|
||||
"CAM_RESET2",
|
||||
"CAM_VDIG";
|
||||
"CAM_VDIG",
|
||||
"FLASH_EN";
|
||||
qcom,sensor-position = <1>;
|
||||
qcom,sensor-mode = <0>;
|
||||
qcom,cci-master = <1>;
|
||||
|
@ -356,6 +359,45 @@
|
|||
clock-names = "cam_src_clk", "cam_clk";
|
||||
qcom,clock-rates = <24000000 0>;
|
||||
};
|
||||
|
||||
qcom,camera@3 {
|
||||
cell-index = <3>;
|
||||
compatible = "qcom,camera";
|
||||
reg = <0x03>;
|
||||
qcom,csiphy-sd-index = <1>;
|
||||
qcom,csid-sd-index = <1>;
|
||||
qcom,mount-angle = <270>;
|
||||
qcom,led-flash-src = <&led_flash1>;
|
||||
cam_vio-supply = <&pm8998_lvs1>;
|
||||
cam_vana-supply = <&pm8998_l22>;
|
||||
cam_vdig-supply = <&pm8998_s3>;
|
||||
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
|
||||
qcom,cam-vreg-min-voltage =
|
||||
<0 2864000 1352000>;
|
||||
qcom,cam-vreg-max-voltage =
|
||||
<0 2864000 1352000>;
|
||||
qcom,cam-vreg-op-mode = <0 80000 105000>;
|
||||
qcom,gpio-no-mux = <0>;
|
||||
pinctrl-names = "cam_default", "cam_suspend";
|
||||
pinctrl-0 = <&cam_sensor_mclk3_active
|
||||
&cam_sensor_front_iris_active>;
|
||||
pinctrl-1 = <&cam_sensor_mclk3_suspend
|
||||
&cam_sensor_front_iris_suspend>;
|
||||
gpios = <&tlmm 16 0>,
|
||||
<&tlmm 23 0>;
|
||||
qcom,gpio-reset = <1>;
|
||||
qcom,gpio-req-tbl-num = <0 1>;
|
||||
qcom,gpio-req-tbl-flags = <1 0>;
|
||||
qcom,gpio-req-tbl-label = "CAMIF_MCLK3",
|
||||
"CAM_RESET3";
|
||||
qcom,sensor-position = <1>;
|
||||
qcom,sensor-mode = <0>;
|
||||
qcom,cci-master = <1>;
|
||||
clocks = <&clock_mmss clk_mclk3_clk_src>,
|
||||
<&clock_mmss clk_mmss_camss_mclk3_clk>;
|
||||
clock-names = "cam_src_clk", "cam_clk";
|
||||
qcom,clock-rates = <24000000 0>;
|
||||
};
|
||||
};
|
||||
&pm8998_gpios {
|
||||
gpio@c800 { /* GPIO 9 - CAMERA SENSOR 2 VDIG */
|
||||
|
|
29
arch/arm/boot/dts/qcom/msm8998-cdp-overlay.dts
Normal file
29
arch/arm/boot/dts/qcom/msm8998-cdp-overlay.dts
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/clock/msm-clocks-8998.h>
|
||||
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. MSM 8998 v1 CDP";
|
||||
compatible = "qcom,msm8998-cdp", "qcom,msm8998", "qcom,cdp";
|
||||
qcom,msm-id = <292 0x0>;
|
||||
qcom,board-id = <1 0>;
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -14,6 +14,7 @@
|
|||
/dts-v1/;
|
||||
|
||||
#include "msm8998.dtsi"
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-cdp.dtsi"
|
||||
|
||||
/ {
|
||||
|
|
|
@ -10,9 +10,8 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "msm8998-pinctrl.dtsi"
|
||||
#include "msm8998-camera-sensor-cdp.dtsi"
|
||||
/ {
|
||||
&vendor {
|
||||
bluetooth: bt_wcn3990 {
|
||||
compatible = "qca,wcn3990";
|
||||
qca,bt-vdd-io-supply = <&pm8998_s3>;
|
||||
|
@ -258,6 +257,8 @@
|
|||
qcom,mdss-dsi-bl-max-level = <4095>;
|
||||
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
|
||||
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
|
||||
qcom,partial-update-enabled = "single_roi";
|
||||
qcom,panel-roi-alignment = <720 256 720 256 1440 256>;
|
||||
};
|
||||
|
||||
&dsi_dual_nt35597_truly_video {
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&soc {
|
||||
/delete-node/qcom,camera-flash@0;
|
||||
/delete-node/qcom,camera-flash@1;
|
||||
/delete-node/gpio-regulator@0;
|
||||
};
|
||||
|
||||
&soc {
|
||||
tlmm: pinctrl@03400000 {
|
||||
cam_sensor_rear_active: cam_sensor_rear_active {
|
||||
|
@ -132,19 +138,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
/delete-node/gpio-regulator@0;
|
||||
};
|
||||
|
||||
&cci {
|
||||
/delete-node/qcom,camera@0;
|
||||
/delete-node/qcom,camera@1;
|
||||
/delete-node/qcom,camera@2;
|
||||
/delete-node/qcom,camera@3;
|
||||
/delete-node/qcom,eeprom@0;
|
||||
/delete-node/qcom,eeprom@1;
|
||||
/delete-node/qcom,eeprom@2;
|
||||
/delete-node/qcom,actuator@0;
|
||||
/delete-node/qcom,actuator@1;
|
||||
/delete-node/qcom,tof@0;
|
||||
/delete-node/qcom,ois@0;
|
||||
};
|
||||
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&soc {
|
||||
/delete-node/qcom,camera-flash@0;
|
||||
/delete-node/qcom,camera-flash@1;
|
||||
/delete-node/gpio-regulator@0;
|
||||
};
|
||||
|
||||
&soc {
|
||||
tlmm: pinctrl@03400000 {
|
||||
cam_sensor_rear_active: cam_sensor_rear_active {
|
||||
|
@ -170,19 +176,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
/delete-node/gpio-regulator@0;
|
||||
};
|
||||
|
||||
&cci {
|
||||
/delete-node/qcom,camera@0;
|
||||
/delete-node/qcom,camera@1;
|
||||
/delete-node/qcom,camera@2;
|
||||
/delete-node/qcom,camera@3;
|
||||
/delete-node/qcom,eeprom@0;
|
||||
/delete-node/qcom,eeprom@1;
|
||||
/delete-node/qcom,eeprom@2;
|
||||
/delete-node/qcom,actuator@0;
|
||||
/delete-node/qcom,actuator@1;
|
||||
/delete-node/qcom,tof@0;
|
||||
/delete-node/qcom,ois@0;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -1590,7 +1590,7 @@
|
|||
|
||||
qcom,ep-latency = <10>;
|
||||
|
||||
qcom,ep-wakeirq;
|
||||
qcom,boot-option = <0x1>;
|
||||
|
||||
linux,pci-domain = <0>;
|
||||
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "dsi-panel-sim-video.dtsi"
|
||||
#include "dsi-panel-sim-dualmipi-video.dtsi"
|
||||
#include "dsi-panel-nt35597-dualmipi-wqxga-video.dtsi"
|
||||
#include "dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi"
|
||||
#include "dsi-panel-nt35597-truly-dualmipi-wqxga-video.dtsi"
|
||||
|
@ -85,21 +83,39 @@
|
|||
};
|
||||
|
||||
&dsi_dual_nt35597_video {
|
||||
qcom,mdss-dsi-panel-timings = [00 1c 08 07 23 22 07 07 05 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x0d>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x2d>;
|
||||
qcom,mdss-dsi-panel-timings = [00 1a 04 06 0a 0a 05 06 05 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x07>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x25>;
|
||||
qcom,mdss-dsi-tx-eot-append;
|
||||
qcom,cmd-sync-wait-broadcast;
|
||||
qcom,esd-check-enabled;
|
||||
qcom,mdss-dsi-panel-status-check-mode = "bta_check";
|
||||
qcom,mdss-dsi-min-refresh-rate = <55>;
|
||||
qcom,mdss-dsi-max-refresh-rate = <60>;
|
||||
qcom,mdss-dsi-pan-enable-dynamic-fps;
|
||||
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
|
||||
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
|
||||
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
|
||||
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
|
||||
qcom,mdss-dsi-panel-status-value = <0x9c>;
|
||||
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
|
||||
qcom,mdss-dsi-panel-status-read-length = <1>;
|
||||
qcom,mdss-dsi-panel-max-error-count = <3>;
|
||||
};
|
||||
|
||||
&dsi_dual_nt35597_cmd {
|
||||
qcom,mdss-dsi-panel-timings = [00 1c 08 07 23 22 07 07 05 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x0d>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x2d>;
|
||||
qcom,mdss-dsi-tx-eot-append;
|
||||
qcom,cmd-sync-wait-broadcast;
|
||||
qcom,esd-check-enabled;
|
||||
qcom,mdss-dsi-panel-status-check-mode = "bta_check";
|
||||
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
|
||||
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
|
||||
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
|
||||
qcom,mdss-dsi-panel-status-value = <0x9c>;
|
||||
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
|
||||
qcom,mdss-dsi-panel-status-read-length = <1>;
|
||||
qcom,mdss-dsi-panel-max-error-count = <3>;
|
||||
};
|
||||
|
||||
&dsi_dual_nt35597_truly_video {
|
||||
|
@ -118,6 +134,7 @@
|
|||
qcom,mdss-dsi-panel-timings = [00 11 04 04 07 0c 04 04 03 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x05>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x1b>;
|
||||
qcom,mdss-dsi-tx-eot-append;
|
||||
qcom,esd-check-enabled;
|
||||
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
|
||||
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
|
||||
|
@ -126,12 +143,17 @@
|
|||
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
|
||||
qcom,mdss-dsi-panel-status-read-length = <1>;
|
||||
qcom,mdss-dsi-panel-max-error-count = <3>;
|
||||
qcom,mdss-dsi-min-refresh-rate = <55>;
|
||||
qcom,mdss-dsi-max-refresh-rate = <60>;
|
||||
qcom,mdss-dsi-pan-enable-dynamic-fps;
|
||||
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
|
||||
};
|
||||
|
||||
&dsi_nt35597_dsc_cmd {
|
||||
qcom,mdss-dsi-panel-timings = [00 11 04 04 07 0c 04 04 03 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x05>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x1b>;
|
||||
qcom,mdss-dsi-tx-eot-append;
|
||||
qcom,esd-check-enabled;
|
||||
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
|
||||
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
|
||||
|
@ -146,6 +168,10 @@
|
|||
qcom,mdss-dsi-panel-timings = [00 35 0a 0c 15 1b 09 0d 0a 03 04 00];
|
||||
qcom,mdss-dsi-t-clk-post = <0x0d>;
|
||||
qcom,mdss-dsi-t-clk-pre = <0x26>;
|
||||
qcom,mdss-dsi-min-refresh-rate = <55>;
|
||||
qcom,mdss-dsi-max-refresh-rate = <60>;
|
||||
qcom,mdss-dsi-pan-enable-dynamic-fps;
|
||||
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
|
||||
};
|
||||
|
||||
&dsi_sharp_4k_dsc_cmd {
|
||||
|
|
|
@ -212,7 +212,7 @@
|
|||
|
||||
qcom,mdss-pp-offsets {
|
||||
qcom,mdss-sspp-mdss-igc-lut-off = <0x2000>;
|
||||
qcom,mdss-sspp-vig-pcc-off = <0x1780>;
|
||||
qcom,mdss-sspp-vig-pcc-off = <0x1b00>;
|
||||
qcom,mdss-sspp-rgb-pcc-off = <0x380>;
|
||||
qcom,mdss-sspp-dma-pcc-off = <0x380>;
|
||||
qcom,mdss-lm-pgc-off = <0x3c0>;
|
||||
|
@ -335,6 +335,7 @@
|
|||
qcom,supply-max-voltage = <0>;
|
||||
qcom,supply-enable-load = <0>;
|
||||
qcom,supply-disable-load = <0>;
|
||||
qcom,supply-lp-mode-disable-allowed;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -363,6 +364,7 @@
|
|||
qcom,supply-max-voltage = <880000>;
|
||||
qcom,supply-enable-load = <73400>;
|
||||
qcom,supply-disable-load = <32>;
|
||||
qcom,supply-lp-mode-disable-allowed;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -385,6 +387,8 @@
|
|||
qcom,mdss-mdp = <&mdss_mdp>;
|
||||
qcom,mdss-fb-map = <&mdss_fb0>;
|
||||
|
||||
qcom,null-insertion-enabled;
|
||||
|
||||
clocks = <&clock_mmss clk_mmss_mdss_byte0_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_pclk0_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_esc0_clk>,
|
||||
|
@ -423,6 +427,8 @@
|
|||
qcom,mdss-mdp = <&mdss_mdp>;
|
||||
qcom,mdss-fb-map = <&mdss_fb0>;
|
||||
|
||||
qcom,null-insertion-enabled;
|
||||
|
||||
clocks = <&clock_mmss clk_mmss_mdss_byte1_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_pclk1_clk>,
|
||||
<&clock_mmss clk_mmss_mdss_esc1_clk>,
|
||||
|
@ -502,7 +508,16 @@
|
|||
|
||||
qcom,msm_ext_disp = <&msm_ext_disp>;
|
||||
|
||||
qcom,aux-cfg-settings = [00 13 00 10 0a 26 0a 03 8b 03];
|
||||
qcom,aux-cfg0-settings = [1c 00];
|
||||
qcom,aux-cfg1-settings = [20 13 23 1d];
|
||||
qcom,aux-cfg2-settings = [24 00];
|
||||
qcom,aux-cfg3-settings = [28 00];
|
||||
qcom,aux-cfg4-settings = [2c 0a];
|
||||
qcom,aux-cfg5-settings = [30 26];
|
||||
qcom,aux-cfg6-settings = [34 0a];
|
||||
qcom,aux-cfg7-settings = [38 03];
|
||||
qcom,aux-cfg8-settings = [3c bb];
|
||||
qcom,aux-cfg9-settings = [40 03];
|
||||
qcom,logical2physical-lane-map = [02 03 01 00];
|
||||
|
||||
qcom,core-supply-entries {
|
||||
|
@ -651,5 +666,3 @@
|
|||
qcom,pluggable;
|
||||
};
|
||||
};
|
||||
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
|
|
29
arch/arm/boot/dts/qcom/msm8998-mtp-overlay.dts
Normal file
29
arch/arm/boot/dts/qcom/msm8998-mtp-overlay.dts
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/clock/msm-clocks-8998.h>
|
||||
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "msm8998-mdss-panels.dtsi"
|
||||
#include "msm8998-mtp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. MSM 8998 v1 MTP";
|
||||
compatible = "qcom,msm8998-mtp", "qcom,msm8998", "qcom,mtp";
|
||||
qcom,msm-id = <292 0x0>;
|
||||
qcom,board-id = <8 0>;
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue