#
# Copyright (C) 2018 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# The modem image is mounted at /vendor/firmware_mnt
firmware_directories /vendor/firmware_mnt/image/

# the DIAG device node is not world writable/readable.
/dev/diag                 0660   system     diag

/dev/wlan                 0666   system     system
/dev/kgsl-3d0             0666   system     system
/dev/ion                  0664   system     system
/dev/rtc0                 0660   system     system
/dev/smd7                 0660   bluetooth  bluetooth
/dev/ipa                  0660   system     radio
/dev/wwan_ioctl           0660   system     radio
/dev/ipaNatTable          0660   system     radio
/dev/rmnet_ctrl           0660   usb        usb
/dev/dpl_ctrl             0660   usb        usb
/dev/ipa_odl_ctl          0660   radio      radio
/dev/ipa_adpl             0660   system     oem_2905

#permissions for CSVT
/dev/smd11                0660   radio      radio

/dev/smdcntl8             0640   radio      radio
/dev/at_usb0              0640   radio      radio
/dev/at_mdm0              0640   radio      radio

/dev/video*               0660   system     camera
/dev/media*               0660   system     camera
/dev/v4l-subdev*          0660   system     camera

/dev/qseecom              0660   system     drmrpc
/dev/qsee_ipc_irq_spss    0660   system     drmrpc
/dev/smcinvoke            0660   system     drmrpc
/dev/qce                  0660   system     drmrpc
/dev/seemplog             0660   system     system
/dev/spcom                0660   system     system
/dev/sp_kernel            0660   system     system
/dev/sp_ssr               0660   system     system
/dev/sp_keymaster         0660   system     system
/dev/sec_nvm_*            0660   system     system

/dev/jpeg0                0660   system     camera
/dev/adsprpc-smd          0664   system     system
/dev/adsprpc-smd-secure   0644   system     system

/dev/sdsprpc-smd          0660   system     system

/dev/wcd-dsp-glink        0660   system     audio
/dev/wcd_dsp0_control     0660   system     audio
/dev/wcd-spi-ac-client    0660   system     audio
/dev/iaxxx-odsp-celldrv   0660   system     audio
/dev/tunnel0              0660   system     audio

/dev/msm_qcelp            0660   system     audio
/dev/msm_evrc             0660   system     audio
/dev/msm_wma              0660   system     audio
/dev/msm_wmapro           0660   system     audio
/dev/msm_alac             0660   system     audio
/dev/msm_ape              0660   system     audio
/dev/msm_amrnb            0660   system     audio
/dev/msm_amrwb            0660   system     audio
/dev/msm_amrwbplus        0660   system     audio
/dev/msm_aac              0660   system     audio
/dev/msm_mp3*             0660   system     audio
/dev/msm_multi_aac        0660   system     audio
/dev/msm_aac_in           0660   system     audio
/dev/msm_qcelp_in         0660   system     audio
/dev/msm_evrc_in          0660   system     audio
/dev/msm_amrnb_in         0640   system     audio
/dev/msm_a2dp_in          0660   system     audio
/dev/msm_ac3              0660   system     audio
/dev/msm_audio_cal        0660   system     audio
/dev/msm_hweffects        0660   system     audio
/dev/msm_rtac             0660   system     audio
/dev/msm_cirrus_playback  0660   system     audio

/dev/i2c-5                0660   media      media
/dev/avtimer              0660   system     audio

/dev/uio0                 0660   system     system
/dev/uio1                 0660   system     system

# SSR devices
/dev/subsys_*             0640   system     system

# Ramdump devices
/dev/ramdump_*            0640   system     system

# Citadel
/dev/citadel0             0660    hsm         hsm

# Storage: for factory reset protection feature
/dev/block/platform/soc/1d84000.ufshc/by-name/frp       0660   system     system

# fuel gauge history
/dev/maxfg_history        0644   system system

# BT
/dev/ttyMSM0              0600   bluetooth  bluetooth
/dev/ttyHS0               0660   bluetooth  net_bt
/dev/btpower              0660   bluetooth  net_bt

# NFC
/dev/st21nfc              0660   nfc    nfc

#eSE device
/dev/st54j_se             0660   secure_element secure_element

# Airbrush
/dev/ab_sm                0600   vendor_airbrush vendor_airbrush

# TPU
/dev/abc-pcie-tpu_0       0660   system system

# Face Authentication
/dev/faceauth             0660   system system

# IPU
/dev/ipu                  0666   cameraserver camera

# AB DRAM
/dev/ab-dram              0666   cameraserver camera

# ABC PCIE DMA
/dev/abc-pcie-dma         0666   cameraserver camera

# fpc fingerprint
/sys/devices/platform/soc/soc:fp_fpc*        irq               0600  system system
/sys/devices/platform/soc/soc:fp_fpc*        wakeup_enable     0200  system system
/sys/devices/platform/soc/soc:fp_fpc*        hw_reset          0600  system system

# logbuffer
/dev/logbuffer_tcpm       0640   system system
/dev/logbuffer_usbpd      0640   system system
/dev/logbuffer_pps        0640   system system
/dev/logbuffer_ssoc       0640   system system
/dev/logbuffer_smblib     0640   system system
/dev/logbuffer_ttf        0640   system system
/dev/logbuffer_wireless   0640   system system
/dev/logbuffer_rtx        0640   system system

# pixelstat
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,usb-pdphy@1700/usbpd0/typec/port0/port0-partner identity/id_header 0444 system system
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,usb-pdphy@1700/usbpd0/typec/port0/port0-partner identity/product 0444 system system

# Input
/sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.2.auto/usb1/1-1/*/*/leds/* brightness 0660 system system
/sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.2.auto/usb1/1-1/*/*/leds/* multi_intensity 0660 system system

